247432273528114323565311711163514172354114131564222321412111431114273181153443365832146447353442232514131253254234422345133442225243125431332623111812145145413165565161643121441371251131565323621146423275811826447262232323413353377212546232413444452213543443323211553241613758624316351144141121811212265514331431143216332437747362125134358536537123526242114148125553251216236223341511765663421523315153626273213167141115182141543551213627312633155132234155253121315512232331252276445243642237333124246112324166211673227156147632152435231111162323542564562413216131244346311452134315362281325233111111231546563253522423376531432174315444226632634255177863661514741222857114236222235462221823554112427451662142435255323572515811352322151172532842757415435346341711274212453316374314114136663565536231112514514762214735315266611416132365741317454211212232861615312454636352411371414332421722434121311132112138226222563573316113442242134771111415172232273533263637135734642376452234111422816134111366325361261337212341115521223225323126461133662314261773411212446124114212513321211615424222351145222152251122355551323452624211232632171331234214756343671111231826358241531313433116112524434231211123663136382151672211152412155514624612668248145472347572812325331622143223425654455227224632213375165225221324353124244631414472531614731534361425322111225213325526464457354111572463251113121231271523433115265741336533566252225251713161261157222652667327523741517562113364514214146832773124243541124381121482122452536425511212513256114221524344526231325517621121843432335427322312441683216214874118675551211512161152337283611132572253253525273521381564623132623373314512412343751211525284236121652437122274337144736316131123122564251322231423744143212233157677215325644442341741527124123254234212121242432525441212142587116546426677413324114532451113454135255123116215562423314671454253531263213212123125724486324341783561313316221256481452216511315117136421345523434225153164355214325163645327432716426831417114415672215531348341362132232314311115612217122333361113327423633355131324514266722254411421364313455371827424766562112271562156212424225421232133351321575565523532137151361716115424236222124133645526415116244448312663118257123271212624452513147125845132246413326227118814242736424414455121411333311251121426418565232754771465521125612243472331513311213531125541213522512215652511253314434115412272133224561311145247617352623224213775212512124422741354614412217714553547241332644543123421341135132733261324253176337612433258741512231737425315122667137245426652382512321841241627427123361412164644242258132535637282558432418763623364512251241171713256271445127738371212254635443625526831432112161323223256422626317124323545622164151743262221361417171251221235365114171143556454253284614211133247414112645435853574434634111551645413321235375862253211351522512725554215162232413855231261334362423844533556147221623224215213254871424312685822412317413635222144413141731521312217433343117172585128331283611562762212163382151711342111245346641554225126123112733116418412175536625541113233556333523814611353332433132421525225417312444324441132825267153545332311313341611818342221723312531222672152157422165181313223742132522454854342111712451646172425176713112353244466423232234455264121351464163165216522474232423621443233466636321361233132125331113712142713113446122213411117874643513273335174634423231113453434736256111322143353611211612136254713776152225424221521215151513211173124244176333121124253381167821512132341314613467682452221445163124334572421313353283146322553567172213231141182221251427144135231322534541525744335735435472241521661574261461464272215176322724425764115112333145474832565211613222253354428135333236451235631212548146181256514263314157432121461232526153217462452618321783536436431233312354325413132115153434423341422435763133431514626264574175611264521213322152215342345623335151233562816754341757272438123141447152213221316432434184326445324314513845763557353514151641134161112762223454878842147544411244274334215465547338862461122522324224522865365735712615153157162215446511311166243651682183242626761731124211516242414213344451156251461255236678448132221231543244272621311611151832122288422632114743814552662342124175363122334841133383632361617313412132422652615513616655114411311315137111151631366311477372531326221375512131411172132456732323374234864127363133251177421331521743341264431411311666313625633512324312233567421775242671527762312133775512348411545512483116211551231211774464456512341154131623275244231624462145113523145277336682835134261641552132233113636313754443561132265422113341414715823857112362358141721143115353146445434142435235434114161122675411246413132311623646585332648448375212132426152273233431171126111411655623725631632223546212556141156331243251412351645351525347442211643845343331321414733266423555231611553421441622338177142441244362742355222168144743514381373664131813141332357211411241187772414442422215454535332825545142113751141342343245233111145223133545512612715413621874231734162216643631133811331562144513324154345574213145472331131121121212223251347163121235423775475623438741376711333617231356162152333754454743221163315113332212613333531431241125314332525737323761771626213463634727413225152111334725314444253421135766463342412145173134372326261213151741212115451362123313125745535541171253518252134212434214146583362314133264213421655221213126677326616215111621111241161511233212324158236834143447328254382211144861453134151814117433124655433131163241855225113512134237523335146415431152526533262336248111344761423252545216471421215542515854411642623284431422617112225233512846533752453655141211324382235223232324123164221314216255652313284661417114454521436153223213143121237147414323141833252235116156714231435512128311562421552166733727421134615334117153411643146313212116343135416432364845484331344633317618445731276226135341373212365153321155268232446153365325525474312734334213532713341253376462811311614262863214353214412721223421222165563854533334473626712232137331163322535223118156472753643152665151352536453124644221137711655823141124523433317421373234821257511321121226781511231422536521118285265351222211153112723243211136674312843225513844155734523335271817684156234121542713211532631112156115152465254344143728334656124211346214253112635116662424216461133173444116512845343715362245713716423583351323141311612635212226421133511211464685626334662161151433223332336123432524421611114113812561173256515515111154333183351417231173342141756315562452161434142682151612442111212233216722413571285547621432452223521461133224816361151221341515342752714123133251361142715513241153324124376665722325643344552122223132364225677267822353216227313743113176316334752312374442722382167412532775311471141737416545151341124584712332263276746427542216428221714123873241183335543421222731861412143342122285625126333611746111282331231121141615523211355374222721837133131246151351523333725323477242733117526145337352724612714513334331453343516612431511712611141424381521314671341225212115237572133211113116242114335525434136314444225354333243354632581146764155423656425436816837211411325111235331118221177311314232114616331162226152152364222115531111353112274133332634533116216324582156412232222314538317231163624342161221431265641231118217726751564411215214556217811533113258211143761653643214461243234415711131326256232225115452342112432517211226372121527262114461141143224282742413511135665314431455251313211411644236153327632661124644112642136214116842832516125335135221214571586322135862133423521212141514246224126342331533426332346371142253211121575433543311356213255658214553151315271111213142323661221111244142316312244651121413223255186121623622332143112234765164212431121331213153648258215412141551641664322327444113233767425116451231674332812232431143263586332427213132431545547265751333262511413232675843513551661253645222633743714315272345632112312264453557113182361843514372161343312121471251153446154245151111547261228611125336341122711237431141361354513218133322434121215436221521751372145331122211426315752613611715327444271137462843121211434645343371114312776531661816725572117264252541411245152242146263226477513251235355354145581126283253233256228146414513756442132526147426784721516182324211461331561256151161554346663144231373522242345126872265152711573475322162418221635326621511544251411333141123451451432116551181514165556163544342212411384255713714111116736157463114412222713142871612422334234112135634511512124214123524153282248332213176325524653722547321124634131412612334634841244335731341473141111372132126222763223121142525631343214735554246487363421314552276863416122517653347113721512331415616327118613526131156335463176345723415641122223265614213622712416831437662722132452214113513274331384313536221343285346522653441474123174381141211423351353612123336464421315266552321771232542541155615613374512324312241131832664112115262442244342648231467453424122125515155121584473425111352364631211161417212566134114154621243132423122544364512124136274167376323714737436347551334481415221412426226235256131213226223625425527781322542375463537573814133124326654325514245232515517251154222212123832172521232822284215817123416122112176314112854232451221624852343124143161417533241114313165237265643134111643334112442213316127277314111576154355565731166541413544222216147312514622622311362375315331631712315338522111714233263162537221362462153813315361313721214135421171222413222621137541251221224435134571166237114273213362632121511772435415427358145112271441381134872857287511241211542716735422721726514155233536632236213582236618373316221363417572244241112242135214837521671424336173118313543271154128364472574623243452565136536151351721225223336533322251134242333345512211331712255262112365242535124461417752511343228437274423322474115271772522463542243723741847625573234455736513331123522663448762266651323645742636432412521374453561384331161418227421432711676134214142272321244311612132726213352136323221242354125641441125651135512142632442321341661341456514573243112441338262341231216275473665823447334663356123722123562252766232224233545112722371151333752116326114351134655212687221551323453231614233543224115463211613541437664416215413682133322326143114242321341341241228537261653111272145445123514213813261213524423133551613252133378125531233741133332415551454833251463127424512145511251715517566374511273134551574721251546272418353775551122713313225561221852814341427437622141153315614586521142771716431435113352114362173416231111237174346684253822325332553441153447225151721335583455853135442371286342314425536441271213227423163115214464423255344135174441351114546563716321534261213422132244231145132618113463562426283732315244144753241125433353751376154671221252414112555223332822365434112421631315612246325624141454117412337125272331212312138361117522111631333153133561445141423555582153236322422235115214164124844476511548176127531111223752226423546353673142232264683425445135155263547224772623551232537335134531323352141234255414425311122312832537361231513131323543561224132341242152212235533423516151852241624431351276138245121624124531532247455316323353544151871364351677211152511557427232444173435565132126518424224333765621356563413612822228352641171233346611274134377518546136221235421257324513365412713354617186254422541315212443753261525454363811435177311815344132511152171324535457637536521363418112365513123146257633244722517182171336177233374712631858231152751143352235563325143651341525531122423836714613351215316452613321115535133111212532411721314432415211135652484672611134116123155161154237354217341514127255746841534323564853157411416125626433111312164531852451251111723353721215171441733813711341835111653412241155524347311125284711235412546433641561112512165313634447453111221164273231162311537515312313315571122642714224611312542138244242322713184116132253763364448537372344661382537212528452821133413243125826427372552643215434612436442111625546741251246247212113571214717612222415833221111263155126733431537261532541317625112382213222732172131112122127243242131712424311477316311252314154681243471511223432383173351722111331241431353423335156635643441816514717852413464312163641227323211555144342414242226412652216387123772222167113251121224745513422157237524156313521616216466633248334226612225543165164135362313511342343213571131413268172255136587671123741152342114132243313722123713282446133336552373365441247117128435421824344334231321441233254643375117242254423622542535562252132434342635543733343163651611821324172172773613133614162442214346427621643536336411451326641315381261447278731521343246213345343644556212118547414411464334112111756232441234556724616413131533522118253244283335235543315453717442332447533161153415136361426122154112216422632715311423451175434314254472153245242611112344328452324111545157161124821555211473641161723116325115142224481338834212574212421375243232832127342341573531517554253263751126145223323753168115668112333825215531382442187761842341211262125535122282752638554213645127274477136752725374361224173214212131332511141416446222361452741755336424644122276255351311431751438123155424321325123581734722144156512853611283354213817423253371234112112231135232256283423152613258612126425117412143712313164412323143524533752531232712213325842835173615333247355262652232677231221146222814216412136315642331413266111258444327332124363125644113361547452312753131143214343253341631412323153256823557624316273481364523321573151715421212455341616345743348152722323511421163525511333331714556171424416126215656632123251146264511453456151231212151282572255121713562421271647154117643113456133317424121524124321331828443632777532141162423432346632222122315311326145517441431421132514257547413225323187324145231873341153631318735315113271445546421447345731445218411132184332272423271431212342312118252112125163261131622212534322175732236435563157522653711532314752712121443322327534332424838432118113116353326274222423162313318132232132621313355532343128314146824111333737132531511556355532552133211231433125224512544314373423241711434134121715627531378311531581311715335321161212212364112542124436131283517163321174433616237121123732315316268712315656242722323544375565732166214325251382263571845162558543164512253662338222622614231117435424438281124826411131278232232137333124724124255211444131114552612356821557754322242152652535634312322436342112813212217644434215434154315321133242323411235425444285442225583444645286213366217522222445221564141422523721733326324726247286223815514511432512424335132857341523517275255214231331262217524114116315423341335211452214275621317521624433128243831545312223214244537755723314433441241131156644122432343132542415442211225413311613252252426714422133412224721831125612211144344216831221331466162626321243525216322223212543751871461761342234232262852181411155324571354227723211412354223514315423571348615443742174735333814238123215513212813123511142423221282711483484361374148112122743112213547324681326216342623271711163523413344526211433465143313445116512343531651125566124126351563415213356725376313264465125636713611832822142144674832448311271423311315634144621251167114341242124362231842383336111713351225371112322551238372218332331762571613515167723212333263183213123233727562211125325516343712222831212832132364272513231161321517353364423366376217568112163674213623411751356243315481648322153662242223532124542642317138711157211218538252253652167356612142213414328222514434165327141266683127213461414214111236153372124132346435275232111221618721573231814121737434265151322333242842641574342631223242625124246522531131142211727365331156451261728725311134621332441344473272651774116611671831611313525727144562271425113346125633742183452732211535165335156532282222713615241663222141821425642221216625581331547144248114811473145524521738133513422311366142123731542554323658113214333833553152212244276283351367816244753134161141628644421551371243644631473142644481541351442511221231615252223211114512542282562244122521113122862214224844216333211212215273444832642143112622563521217631677168217147637824341312131572152111112151353513372515154355585574341142128262314243124224733652524423145716343114261313222214524125134448233131111426426232624546441274665142275323235663652615253714243342362117327652843515443353114133531325411511331414118513524312312411281213216424385136543422322672817116242255135132142511365134232341163421152152521311321246511571231462231511375625431123562567271644132552612217631515533132317262111111431724654662111361442322153115844381788224412248136543214383734214211321822331326713845232311614134154211645462346122471215151143114761354434322124117274224144842623116633117142122224114414142113433542372411425321348261313413614632223648674261322563352236811263242111224224131441142683535356732342633673126646731622426422444222742241321255525132114674313278315558484338111122435642314641532455111132112451821311162325341356332342566221115372344631348313134585141151371634346157124532264111147572133553216527515145375721434124446413576211621126213821311235312362751165147218343243345244141231233353231131146688441237311112565332161342163613314175213744454413332422121377524573162133347721176181261816143361661351636122422161173112333433213114661354523234313641341122245463544261323511632312112667148575515114614672671314226445572532517124164154314321447222463153661512213413221131215551423814382311353524447428136414323131225124327212363351414854311222433133756441145611271312465263473233228363324255146363113642353754111748217441813143221447225231174331322211243371154215362726131214132431122152214631158313421435831225451753115737526133223258322246165412243267543322212411251667412156712461287322521132513165543132164442521614333624513462376414254151516133453453123625741324115565443223113837346157268265223177114373318321111141274632215212677313631211321364127115353137345437521541263272673336584131351463238157134541164321144372161376265431282162231447423415237372241211547154543314836561542664661368834314121138313252111124411234321642341125223436421763275118152522142231623212573514551181516711255662135332362143341511342412171331115485412281232515211342235223534745311173532536555483432341233533612521531343164241323262134112211428454117342545426434514235312232261621324742256672332257132455326882232375224216415383131133121657131464361173218433461337111422275134148315624522115112332232624464234372373144652121235313154255251621241717422534313427382256137334366158165463182121272236433851154675335114224325235167267442635311512343526447227228431542351566414333211134633153146171432126162265344621124124634117216326643231635843133155452147871158882124221183322438676112232135556612714417223334124216212323241633451321118153234231342421452347763611213343552234233623632511216331146521413157515132383463353116444433524581544132321154251236342463243131135562352452524477213113335323336515232231421347313323245521741111145636145134422351222171751243424261282223431458175171122174138461154321455856223757311142314268234338337582311313256223348261115413281141714118351437435822653325366422173654336184373741644651473567554536444432414131136213612232135816515333141244545551111222233735221117216168615238223458825362711233621441522366452343335246156332253825244232653653263222213145325881615211542171226326114456472463113472264141245831342243116231211233515655311111332513634637155434754142444335582533118551772338431511331211557153146232172368331137415324351112151254332511315622621313321362853424355211521214112116317141234116514643575152557115372554641662322652323332422234261165452826646323453646353161168135326881137616311356314223554757552635363512276241612215645412243484525245551528361144123481254164656263222232351351532113462742232251861463512181324535755763261412234618331461134434333413524352612874332362352512134226413456211125321665224415514511661224761151552251142312511243124214735351716443471354141324642353155516163246515117224232548215181752813155856415111211311244254118216624146184124473558461324423311512754425414654624561812132211411113217564163231332162554631522415853211235813114618132655141244524652263151266112212357728144613148134142524712454442742117631134111532533354241117247555413231325421785325446352222465178531225325212142538161551124135512663842655221154143474434211163373251588718424322211885835531234464436812721113333444334613418437761515231148411453758313562363515157423335411132462511576347322124353832862434121244524721118533412363452121122122234527213457623616252534715325133712833325116332635233112141214517114151622377458354326483421244323142264212655186211621344836431844541331213534144741445622141743473254325521223822216223234514317645228761551136233122213121531113351511112274431422116725453214251144334111114533373275513317235222333312711522624333431535214432346123314133111265523121137155221123272546223411552145336572861314163371383812541121331713414141133246423161423374326682431441813125156573514352424136132581114523328282124433631114284346325121523234314246167312562721551134112111427711543717253331524413113153214737441665361114144542632571121421326221265418346125572725121324386272132221373127276135474511226125134352326116516421561112132421621132283721271231245336113433144653417564115128376746132274262635682561165136461265441115273176236315431613812262242254536574125525431273124234624456533553334322686343715441263254363515121425357324242321555144456316331263613422173446726212618214515216542241353463143144141324371114713252314612223124654414224136277311543722672724111414612615125132131621131471442253112171231825436235753732545615271352582441634413116724411112333514354115614463131228224157531327114133181141176275122713147162513772522112262311223155248113452762121118163233521222514233517515224625347627584181216131513421126427223231144131531412452135733122233341722271625411538822644771147715261135256131237514584151225114281535413342811222733227232347553312373722354257412214252426542122626511264343354521724238431423123131335413675323552785711543454745432451345321243426237661142234124413612424628255321673211851521262134487532537122466544116133243664612241342721172353367155543222661621863732582521481455112755134211525176466413372562666747131112342214323631256153261316727616268715635722243826417718221233212241315712126525231242231542211254113742412214112132312142634155226183314432425143153872822214132471611218364326532273241365357246735223212164121231222362851345175441611331675135311161221835632274147821321126424146421681225182232147626265411231442246122548111316642422332272521325418122226548382532512527636213457113151211134211221742512613316742825141135631152724135457463411115171111222331273326161131337223361566221441422152113733724615342121243152123343331126421246511146524653421331121311223541431223132342164121121146456336426543132142263341342312325214113388511256784283582152125321428753512232231822711326312717461451551126234371416532153215315422814336264265221234646172221265522225712432332153151651614352254443541631152534232231412468135151116354613561331135446541321328111221133544331114525232423112316723363113113322333243246213711434134334154153646274266143236322184621165142188151121151522252713113361214534611215112534334288122126317312213315462242514227521171177411251424336171672423624341472642372125145311231415223254223153325212415524116332413112216422333332322272112218178163556435212414251243331323152642312635331125455134625243715142536134471556532216131221843327428724327841413341533614232242361121338252271536123312412211511634274553241713513143747243644616115423618416112312125322361211471271332254141471253161212222184765634762414425433717553634211122164372724115334152533372324371372234411523366232522612255643234271364213341321332315443322551132226741425671751137122235636514225263315326662522342145414235258723733645187115262313311141822131121213163261214357466121114712374233321152266321125141133316421643454132365446231221347584761262142626512126541311612462421231241256754313532153333473275457425563422144214343513462741523462425644167771311331411415745332131423383231314366421124162615265212483373324617344111521314252114234325444824141811447341427131346238452125117625112122561116626155613253743543421341131265356641551268622311625218211311111613237615523232224543557235128383578537142251772315161232315617767626231232341236512143228843412557532281115355324673527215336422533571114422872141155812112256134324333422164112824175272411181325364611231235252351611831113327121532133442262347123452323445642115364443351217141444525312124174152733141613561224112434425253253814171323116456344121131453112524214675113542124734713222144353832641311425241132243841231371434536225174567157132523232154551223337631231633114315134538453274155535531715555122547131236214215221552675125632241277632614348234542623131754127515512131814152515431334428151117325211175541814521211185237425157153112436246141623433241445136381422146331217447121732136251357564874342852742211433423234451333277323345375514135572472423137127142262715178321362116121542247412113362252744742128118412624535322541544766521412671116317111365542182288723146413655121774322541262711374756376213136432625837637352251641238526213224117243111166352171243862367211431424516515375423621136281345413512625465574712661126121618631473455355336471527213233514414388123631122334176236373523255117722124436255418254113234221762318322233332422422736243533122242752153115363833472624351225221642156742512526736742134213111416112841312623221211121433224122321152124332852421123314753341524661175324213316326233415122621262426342654844113132411564735221365445624848846121222431342742212341321111716121241542355524455552212546428414111843355356121321423612564452433315631351212456443136331516242222372275518612216661443762121233137621517675312541671244152153416535287211367111635224721142257415451461864231733123464236542537154427123518332132444121832333411383711671461332563234823556456324232643336621246125314131624112125333746381642442411134432411343446443382634554661441172364145143521413252631211214421212112333465712421512721153714734531452451574222754132422134143228331133412232332137514214657112211523347264431632142218251446245114241662143213124321316124332412154211143333263215727344231133615552615251631232241156256166114576266416536234382511271414642226352232451641451223517451543134141223441144351314243147112138276362172536143634175132211211122734235516312521545277411514621534257321564227646353184361523241284377332317455421732132425216577561412261254176467538532521347147334381451311342462422311633172411115434434321114112112473242324125252134542613516211261635126242172224311123618168225213632271444247418273543122115635126243315451226363342325131314353733368152387613422344223341231114135422264754451527738252761412223331278421347316423254412517431511425221361462113411252447141113512753356414354711254773213322445522421241513755132162212454352585144161627516731122212682134244134354262633225525615425253211865623442212143815168574342216412116245125651411415426135413541756342314436134323332332121445313415371132342431414242342436463375663437434116731352711723251131136371316554181436651244147162534412513423781638826336282863123423423732427481174363347254521341212635177536214151311831116137352137342226863141432322122261513545127712225337348263236623213273154614735262141137271426412431142532752163442521873466555332364423213545311612552614231127635585714271356311313243615465311557151133352132452425363463245382671311315123616124221345136154345153424228642234381513714417243114524213551432534614553251612862463215656354463216165211115236242141312743312111262147314734135315121222124221411235731651644764165411431543456311512432443572241175362111632241531214615632526116514521661523662261367421714344218141332752756511413523211444212123222381243342321333711322126134554822224325462833121211531632684371245461621562132131155516626441442334424215361354246172633165365142617257222123821741123344472333211442426211121362717632312531464211517212224527737231146656681115252447432163126224543452321786327184131135325442246122443255425113414732624247146422253781452724447613331371345451533344212571538311434236642176344622276213244514371245752313562111525443414541267431242513553118171543124871831516523111382311543155531231814354661253311465617512321571362113342376711123348231254725124244254522422254137152243577131644642132418433723344241731423221223151545332254531342614255273143372451328767311111241521566831211215315131621162352324432164174714537111535115264417143561262561123651745123144154263661551562545676442643215634573426321251284821644111444318581412113725856221251323155463144311334161123123222148543542744755262522123411444188313744536111655231512454171525316524223211627465227214223531222362444134316542417111161257522112441664111346114163212635524464253281412181622335417138274613171151341143122853216281444152444551416255132158131414746352132625445137233175111111121647451314257886514322233353411675411116415224452213242222417536124132243347335432632151281744241321141711311223872153521512443142348637477135131624431312142717723133421247112438343475125111322721661166741121152133614213621612621273363126671616433214343132123531531531253231136231275423675524122334231323612623317235742231431687773417353323646124715425232683346123723245112122571333215162186212627623321437412321635131181231245512172214125114646418153582541321134514135337241312435213175233141142633356152223122575721444252541253441226385222323831476434764851323228322121432551237246173511141751162423366127663212131724442278445257675112224182221236686325153325154325772736545731445342256635417251244312341316413422333222286511223617113712242533332212166121523242132332552216172121561544471473315531421258173254733447127311354328112652116114332712111124254115464475124854615313344231172823623464812621552226121512417212326566131485431247224122335713311236263111525313214565733243123317612125612541443311432451426267316134152256572154266112612323635353454616242424352465331253213262461334611515662136151857515513454451218525722115133631431534111124517236431337733224222111523341222433231133114161212546455247355424162215311652115713261343631134261315262628141313163136261711322664322511172175621622641751314355172424222328517173112322422675531334525116424253713512141221411321444313525624322243211624134122357125623485262721172242231661551141633524535354245145263655523123163523232131333128222635315411111125323621238423512562665313378421131171511143613111422625166331341261412232131312511342562554632236363835537377568255413231812125154313122325212427175344126525151422472562123421321623412416421351137435734214332442341212154143113154557366321211643435842221111248344365647441436823545524162311646221528571461484741863571421361432334672213222753222633415852241261444434553432442512411544323656472433232341184323332431442157111142147211144727367151436561455531252433631314611452476342112542454312241213834214136412425263423144651236553212351611124513146324642457153332252725444123256843116473174161331442365134536727771731425536521564422842311246566452121541133112217624132314632681425754263111263221312261133166221613142115721237353121124644233222382374531461543171171641112312211657182141517541237272162423121311333218272431182317221714151344347336427512241863816116225352151636726431326115641214731821343115342212234235454212321223413323452112515384137438352356718661344224523138824122544132623211283564276446333413322355311342524316142244214421141122681124322331232622215142634112566353511324783263676181575521725153422214242812482711321158244256132551326254124241642325224287325822167141445753613437113124228122262243422633864333225617233133222343164263745544162223646532271172481613513343114748242235553115666334511224245121642118541221113226545123711218122331476223721251421353431413361612333525544286213512322225412124167417235141756114314741234732724461454611262571641222121531122551614172837265333765437133753112343153251415331112126684135534535424654312522411123213212716364136323136213754173332325451515443312175732651655313237427321423131455372213822762552251123268122532427253631873115462413474427311765243715567215211323431112332584671884211613533453512673217411226342411526722551351311333585314631311485774242247252211143171274612633142163532124644325234346228341341532736217255121215122815465545322127152561871358472117153456461426354112628223374231317221246632611363551723124228121154615143112145552341452674247326116732825833413255843456522224522233424415271116416545154364553612141614321612422514263527326171154635612235373543272112144323223116355511214132544411731331165122754517384115451315528165535363665534231213342112233223212753113715211322454121472721213123113224355556631452263486383417212312212632132231451313112143731353473345327158315131515551646263215462733124371834218322422225422714551214166624622841337625371373721416521813437123252775351314325241311322144632454267444114142124413232123655141415235222214111311112831133424853458531211154242533321235445112334624143763643672814735212241231253334146532632476111572123222233312323717611314543474443415133213234325515111322314643212847633351841541444182351412131542815416277112533433122484671821124121121311565722124373322451111716131171243712555555424233144436755344257122371311333265442281147356672221233411412612255434426555322156438611122641227623111333272418822364421685511213458331113425435446312342357654565236312534551733344753172253236111114451214312236543152527156567152331656766361412151346241381146641113714257454173547364611116213453311831517324415333151311461417415425274622424444243123322536513715252121235133245381612348212574323262233231131234583616431111674221222126131714152112124455753351611234352511324321121426152514233663156615226321741514412331486667144313224153312232827717244555221423135461222112134256112411256623236136555721745324344317855146531234271328431144141254155244453575151143111123144411533122255374252242125841211261443512154275763451214512426242412435223811344132126614132311111163334111361441451325546113251328831122551144227216532551174113111234512422335122117234176165561311121231123233141164824634363124566365624322312613114562473424122742523122514323312146611411124663217362243312326217314174316524787222444813281123126728525324727245324363472377713732124166311523234211715241512423512451761621131131525213254252564437244243266313222244357511785433331532126233431241215125115132347721332331532117415444711673221622154653533115332221572166733751551326763522738324113231216123552212531131124152263331255233141527431627113112345222864113413323213315353131111447762172665344848342136414134433313131256751133533431534215368823533124421265376264151426736444321545341473226213113243314125114431414274454133172574712486663373123111854217124511172224333353241371132534115681723262221643427452113226182341573412374432577275661146111154311227467224853134442285462134641335111326765233716335342252424233138136531234225132433288411785235422411142121314571411432371841352333425142178633115253411121141716142536266323337123514412552163514111416434425318621232621464131522148656465113453223635313323187411735131227381224114232544625151451254111421322213221181531714485171133255136142234514211131365646476312755123652761133374824452246416456452111572173334242437161224632336162224236165123236441363655272514645121122282111111437412522157134731151361282233362265433211283863246251415351822231658355321381752344614155125157223616414162726266314721246711342131271633151312331167412322254543121111736326113571213542361322216332615321117112133636121235516521337347712422623133525714131131114236126635643343751531647432772224531424142144313321624211142171466151112212255613355126421212853632512442316517334414523226553251532116271112415161112463323633181346233142647468135431144231414421611534811613142634351262612114432653616134234522117335316118316312142324113121422586541324136213146315222316636625261543342321113526176327132115212152182153346563245111341151415161635126224342125642331274511452334444181111361621321214221414225313251174321152533114611165212164563152421766811235721133222643352823864335321215314613541317361761662671341134222283151511652225316124221843334724354634772121345625533222142122231621324354113242251351117231113231441384835316331662528317132235422152237137324117341553336462246656161311414147344114687412185485852451682435813178334153314516634286233174182451322721317152222125236215241347625233311115242122226336512755468441152663136214135264231441512656822243231543735124246581228625624121151232152864883521533485331132311113311133253212371322533263421572218756331136352217476165782133616322424141645322271133132521425344622213464331211734114187125862242225117321622431771153232245553236342432321212236557411416232642515535213325846114312433211441864515721573773327211422362212343327131141542121362347481632822271461217612354312541133234481114555511451478265541224153724115423155221212421214545221537234374313213535432815261433621341417346121527464364556324522877511223715133823362236133211312225231151411261313532227221533447434514215465235174242215432571231724263175141374327321863425542615283521631744371241522174241421464264121851714152162435716616427627632325111731221372455175431554632432132711432612745564752116156435338233321166217664422324623351154664147113531624362342478743531561112453124412252131542252112121312455457145433548145623266156163724235466211242423543653511116516255353238641372111416413224211362373335267261233273867131374243124523366224451224233211721241412773344142421362331641341374174123511761137132122541211318131223232232744242365711473241213772121523277222331711214312224121365271336343333161212362153513452343423336272761786514424435312441531352364177364113635115123152253536343831323343525514445231122127237141221536372471211614111513113831252314531211427312542542331751155423353451225733543238115415354376256415267364515545221118211618577112532148718813117267333211511112122357114752113532122138118811252652642425415833276242653426214211431423514177752342324241333315442424413452118233184242255142212437655324685335412272145223332123133263215454233114568466133116441267212511112161433125434327252231411155314523531211443755253126551563253441272147171211221132242114311721251252451323131646116552326366125768213522216422322142462267881221227412355712612631831864625211225885513834217211451211124316311454534627431641126325712452155833215135146133741565213422424645164472173361531752812442314221323631772316452453112231451314143113534644328434445126725242352122111524543752214521572713411641674311441628511471115222445235161552321114648222122133313212126334115813144624664341515211221143333223234244836132225425261221124158445521667315321166155224445654821611235114232451311332514525617151512223252143417221122531273271134211171178143325624143413316552436763614411325731343233551414613215471721414131711346321123357433217514656447124112613213126118226156443171247426212221223366124638446811672844377127137511341612832132445467426444353363842252716325221433423653455131635653525327511236216864454245343142531246331274332836427327412231113336142343362118544662517225714262233431441132376172115325131656251663721543251331314112673674423212274123825423326133567748515352514114531826161631255412227164422162741334632545364615351115121111411212262612422217741141215742521543834512356316717114833244266263231515242235131724231111413465524113834424533231181556222551145736473242877417721441554343826448743471712612212222635574533117351416362181347264231243558422121244412216566132423433415137482146213514112425236441533157746237661564567432351113412115571731361434447135344233361242125515545216641423262722514213622314482458524116843822528414212413361515111121346112521242212614622132434427764422136113833341611342614128512351564381361671215276522113122215612133251233243155137511132532112567582153165214536162126121112315621222442147163711311574266532711233331643141316863446553183114512316632435151154212223333554156435443531133233141255511671133153115157176235455713232272226126515326365674521653123121764142318221651425116213264343211224148315231667215145135247515463313541318433421564252273821144164821365155515331235331631136116811621113745662551223231225746714627431811135233221286123142134651252425272262562214372122113335421181521423357137154551234232536415144352634212653132346614114754131332467563115511148168214563175721243311633166128132521724451713836435251317322531625212742411665261366137122621536451311251472135452137755134286216652727762411421163134841433221446416252371122813217455372215136532141215153123432374514528414222551465351615661255314157135136257112246416252163352345445375422438626311247222436245141557113861474323132741445147111341257331344418624121156531114323622312665346421411337872551751636616534143311122125612642118321612255762517256141465616431614432521273152524775414533521272533334566124364117843311154312178361323543642612271321864241351112131363224423726682134161322111746211131152351712353552115124211123733156311142272317246526627213314363453276574327166332232433664124526133253533773523115533153435124123316164343765232364311644633576422111173382211262474424256311218575224147345112347433718435521322432133286411138712643413312434625231337117343212122523365116413772245325435412133121462223453285533325355283451323542444111553444374271247322538122418431344514344632133322131653132261461261332632745116176242125311161531825261346752654236522115216211123121413337137245631511331513313334153641221411332241213242358456332117113311151812251336685745511644227734217614441384321265246214356214116531464741521151347342411124813652343254215441311141252462425321687214112252451453317255121243556121213744467321724174112533722272116564542432215141211224632152483637352253526232111336152231727512121155332463517124521721511547447372226543312313732582623233425234161133722161144153323237524344114216354462612144273135351424614513351461362551662232354512144125181233454233441483625141254452747241153563145164623244711122142553113243725244151611671322123142313532164421351551448423133424526314142242664576144182523676176461413224356154211234213541741142451672143122124533624276348111563161152232618124713316223111263521416747341641216121353362255232511754662112552744153624151342533447421341346511713224333343311418224313421532413214413413381365375222437285136261464154535363216671215533245371757244862483236351118724876536134841442311428272134751341423523631331514546155753376613322632751134714333522275175512276621214511343414212254216314213317134115513251321377612256183122532136142812816225236673441252171326313562124114463142514155215114314223113444316124222232163564462675453635413376571256183513254445417531381144442451172313614124164544413132421212551431176322741331422343516723315331326211216414161265857743361742214556381121153631634251545264224377522724244212241642131523635413712351214346512421472245111726544512415754136114133112555543122213137252433112321161335145644634113228243326223422421255211224661156368144243311212163131352442212413225222241274224114153342314671272245325666275611315467661621586212123211348211153222237526121342344211443213625442233544741127232251425782217464643415341613223364523151612544746817354522434115217258133728551213424331117113144733366422151127322641452224246518121222621136561388421121461577841123534432432611213115431532356717224413111253423524166431164616642451746214531221214532523433166541725412312315512311274672315213788121322511241511163134244363427341216534144635532256524561541136574311447233241112642142453666613734252351442473233122718111416432422741361636227163161528421323645621113747217131373117126372685341313343223233712416122753812611111173242143413567552246147252132424123752732255251413112231111282856414724322323147331227713275422742215513413152251181232334124217412181341315584351242636143418112542265633771174262751525151345611271541147312721323438153155522223257352323618212243113824162413152142843663621214441881333141426211321513485458276786652313131575552162453135534222412241313253312312221611212214522442765744425733635141446426472153123211111246137757211362443817545616122521368124623512151238632724616743673213118243132514517415232263244374121311416213186631335142112133516532574242847173162414431741275863428433531223332378311125213613531621751321132115826254351613511821432533217121442113737445312612132662333645146131231134842223612232115334121315721626417123312312135534212353151173333211126112451134225452315518466634311245158622556161231415112721352526461273323134121742112526213424411235122132123555753433733725211616833541632825236223353211143121625443122423573464612824123253558215722322114261381366162742127451525214162856135546765224411547644231361238413315532164423661413686667411217533323112112434761122568117325415513312414433413127512215371538213156353233373177223325523165122266771542326246511413111161312324416265453347141221881224225456334733321831377131241424147423254112244361137324221311133732453172112421231264286723424234644831341152644323124313274381212763435121343143332213545231424522425217125382223412136532223411215211461365655611611524345711324225455151113135238122212211273123773181221311131138136461343225732144531311125113221411241143816546327323231781761167756162451874344263273771552162327115211115471342273262231875222627425411427233315315215351235755221532712435136115144514244331356412213261716481412333753522745123157765235724152214466346116521663623331112136621243424386216424767333252722414144172781221578213153821112113486546421141841276252528824627425111645145514321258151711225261178226314243211341543624255551121125171214211141125452751511633754221413123321122812476451243563111323521131621753615235321253671311514126172253321155115253161433353644122431524132537611123113253143333236411431281743165242231518454232513553425412646143343264127435525237222115122445822333227141113623414223472212165647586514441151235513341146217721251133672224185116214632711322213214644214336133122411485124513137874124774453242155611112425333144512723561622144751231411135345573133514124554512417477211353145222722354431628352222824636412675242542713735231325112343212412646563125251216122432512562112474451312114487333632325615473321122262461324161141371541361222131151867668346235814265247256373214124411544755435538341452232181254222434222227735213362141156131575271464281635628123342311125145214131533213262521344456215324143122334214113145631172514842341223221312313413711618154222284274342443453513351123531211612461615452517362736635432656173411113123614721413614135711218732426311233223514412224151121122233121243124312427482221447567131212242516148331115214254612526121272412338322236631724422111463321352225825413312254212423257132735641132861736482164147343143614152525127182324134252124651235422321631228426441125622251211763415365415331271312121235421245733332344636465542311124632862172732617331112312631151525636665114356214515214632173421263616714211232222553225144213485361244444512247421422216374153322823421635163444185751325615332366354545214162124251214225117112187324732122233815432536651211262251112151521446133172388324148336581311484234257336143315615411355153231466425352711621122256111411472411421624117663416351633311713751813224563747455354376311516455341123247166331515474655332218872143757124313321116222412421722121285381562376442113312161224146663631434163113353621221336557341262131221733633562421633454722431545422514462241221213351734461446321125532311345165724324766451332325145554152777451334163653314163745314241272451221437315632123481343245652823543165262123411633183321233421417415431114564223452326252153541225338223474135443127645363414172455563771432553632246382335434166412233123171117175221148153416453416542365217537565543445112883665215255487154556377617142322265241436313321541131231132144781834618725125152481214232288624432325163561773225522421235645444665112426143152335123843341523424145676232351737214256711652118453514373556623228213467146216111334465851451561125334124215112122346531472321356723514512342563134334231665431121126782364463115334273111853114171336443732174154185633421114127361333313455323184262353533522122217713255671844233224375223424274671627711334333344212321643421671116725431536421314122241242337133183134143224163282862522163286151227112217144216733281417334732316822137422252832411365348424345242221713253322352124311475241744271124336662212421223512581641157335213161233142115164324112442631652541356212135223452852314131322536173311232117226436315163371231111212435337361231165135231734616263524224534132242112681564512266315326121244544232461321326132571153813127315113435251534246114415532332451313132262223211557633436421744222224532354113131443282211213142724411412227171353156211212712881675364114334322656251111427315234183518851113342416343237123426348432832145732161672633164514121671433636151222122172873121484316523313276115872436584321611322132165412631264734321745114564162111421417314414665324263163283142452512351351315215412171426117511335533332423816157261211352317227314338831676143513234452413314255664542638236641721121314436621655423112453311412111115347238421515425212416535312241642354723211132464622711573131223721123267365811181533273244131144567382311356655726331136837643142154117535434311524274523625652235661745242224242113121624213341741518312344431611842228237225471633174148243413557613522257731112347247121121221214684371717271531354545244111531233322412117441231637231222261753465123617135336158411131241531434132314423711183838331622211326221233223546354427317264153744211251145453423427542733578621214312331331124215216346478263514153564413374521453142374253152324165535224432232131753731137266333165253223465215514424453266237241554321813441271315721733121536432142271154575865242474112167261324242143251225274231621822242175453344531131126531321642134647253322511113343341264757211233121236252543423843714651111211321435417623124432352141221624213412684164211571125241724351834122241611544464116477326151454582122541324526173365226825512211256121162826552227422135231715125744123671375632351711643236182543212286111131621143277161234126322128273224422762422626146653522122615371645522133315212115344224223267134216262111112238332413255123723421213362234551115335354641223416631411632523541113521137122321646121733171134153123273411262134232722655416416474213116153646121511133163251532765744535231214157361115246822334353125651273141234447443738454253535215232324212723162434582324512245445411167154477672212282656254411126337671647621651314336222135331755321263477721712361158242312762137381135421243176331612228381321144261142624531742133714331465311512323171733452133852526513364562462512511144111231112817232336228213242314222574556312532523327133543156224147253411123431134253632452651167451376632111521121512627442214525321272234262155384318553512374426247243251146551352644543233547251326384126142211382382521243224523228272411832234515257111344212323342141258262354663517752121252421736122231156121646411534433113817325614226362331411613133623363213323145664143271114821226641732132877122124214434127544263312518441125111214115721163446433473331426652464683126123247538154711637462273423222684251121571311153433721161837152445145232143164515531416155233273448147113426835272114321146244186413132427321511341461553535647421442234231456454265111122615287222421166511185135553754321322712522471122344826344874624316431121311541652732451416434731346564462231423167222123145638617413221241451475182726163656374125781634323152552144326542413212137611527275841172472722811214422417363535522188244534441121341446463723421282775345213222265436481528532614213414658141533222122112117366335631426243654316621662541731435164161511647154126333265112111111463518612515422214643455325544343672343173144211432143251123426242652257572451257445443614322413322214112453717141326344462366571422831166644251246154331246456251623333162142145714121427121423116525423661636312461332411224533621133233335431234441555222122374151732152322342611131452117652512121253141216252217425341221311521116324134564312632772161267111182546175814432615565718113542725233528338424336313222162541515352443126427243724325122523727334121331361337525121262322711422355165437322224123241122431223221512235231432223554417511431435465622124532221573234253327135765217215571461362614813416553222513314315414612536363325515427522336821141716226121511374136324131133324835422325145315132144453327635111228122143237332311525346241111242531221121112325462216517445433332512431224246146842112133544732536773643133312142274347433331875453125511478241123324212551315231561113138242435413116133423471416735135531717457221113171154533732267513522434856114361572445113152267213171136255221882313473124812325716124165584324651841122824164247458417331876243627145441344255214176454434121881335133146453613182851662542613124251435326127752255121216381316723545412262121113823332318621264121186764321127217135216131525471134731134162322222318324327341525514447386236177245255616621211261533713244431126752436141414135414253673177154454622251472275725652117115422824135424246323481266354732443135223163642135532842117122356134248463211313134656524541225433222648251261736116518335114341521232154432412474263554353135221334132372123221316514175451555583134231162177336142334413721523331121321641334611323224226171215251762283815666241122481544435822125236132638318321612184586351552232141222251152272661153162441142133324217531421315311116336121185367132543133343714666513543517276212122116544153125242641212344111311423211362216335155161617224587616271121358512112736612356436623845143335211411241481322375221633145414123312512524225621217124443641463166545655466364312654212352141233635331223123122111273343244876261751675145554115254114282355342311372543146573241271712522275243175134241111152726476851471167441271334241371528781136114223666861122233725583513142422767786427256663474177655416432712312363217141112544737314325231615476526322112154437227153312111521162441312231742754377411414175212213316671323675622354115261531653521246235134522213271637211116653243538223117311216143723321376723514614664181311214164221446265565288248152531255224154143514123237421144313755437713162131672366384431153226332223141413165125256513412123164565543423411154324722113217435615111147372211264572543166531113376221541143226122151117531513135643251246651614263334645613754431365375322145723343424151425463318476441342435886714232352623243112655161254735511231315257116141111211524535741423522332232526543734224871217186362163741114461772823531232135316422331127171332214524113234712722311614121213221842624311773621511441535632623341222243622624132311313714116682437115648342163715441131734461531763146514325131134763522182476445367347512122164212564524424424332621671223311634129112244373321822322326424353252332743521221322515333241144521131831453352162546122466371612621353531651556241325162141351321111412112481517562623414872115121152631215153412712323244326551223211161661125861161344274512333446425214424416263653167834256224542316232356677224622154516815332322136214225212522221242515142336314272653257374731213142321643122137134411522252462413165132151112443861236425623124124551225223222121352146225226224513122514147252211126422322543137212611573214712312172725631621323114327386512363131224145444531477641561325113726422234511341137123633447454877534421522216245434672612642681323116572126345512231362454155425222513441381215138147412171472622411158268264225124131411631655322131225151522723635612548612522611141122118425152511225252625243561822235634122314637241821212587315721731646611845573347343241384127418137217135515148118161621346611324572221122235671344255323258614463721341811143544423142331542524365231315251622547126317132642217332755226112423532342711162226225674472641414436244351253565416123433152362623224148353112118253523216232266325152424316323443454762185266286255661534812526814451522436231234235211233426324514471111183456315324333412113343347243826123343532622116255343564751471524324122222435611171435663647113461622444525381244515235222146211613523214235721256318111325252131231652212114136113736222141261233531156163122213421822225732235243251151122652431215141326136414444647524224162281524614386154531111765111515256122563212214146113311611213336728262113442541415216122452244242424173541242231247311351253281621443115616611856412766332175217214241163241225446425221164341554611232463333362317323623113213214247335426612458346156156674232265631253215213321545152286265272335434644124111372611636656322847153342546117622833223327231321811333631651232111753754272474343237127312173432523555524422276474522473283113621425111183414412111443353321716254228134433142413823831633272142451427634313462812225123125326138621524322131466215131524863621873165136351425341313258463225131232121235741111564462254512561246211273212225523371421642243133664172228371112235413217521743414163233551261261116132826211153433251363441622633273213844112522143212515174127212231114251324351331124444723351354751342436131731823216313114422884154116144827365435323485743716234548558241258645531262132855311343351641314252131485537222322125551764152718124672715321261513522343313243124512333272231421312223171451122832246222352122511325281414243135143553445511342466412245112545681514124284223223221216435111345246324221534322621421312435475246315333457223321344463321812425423126126612322176146763724355321511425244444438556642233561111142643414362374426723114257422214221812844123132131423143831644263415213712114322423214342744311125217364124462246543521221663141244535142433221842324452462253142312145225335411622781642215444583213465164434752221334575172741254526735654314411324146413441612132742323533312132731553124573724242215315167421721141624535274144448221328177511122425223852415151751274116232222453215411872732415331233751647645111163542752623154176546782515225274715648423425267521564434341122282642521212216525532186883533444314325261431352451144215116414523321646223137444531333731343628148451753713423222311113138333687213132463346167511113524356637323233622234216225325276432331684712711717316123222124412613723242278334222462651311334233455317571343431131225213366425312221562132345311853152183323233253241735221756565731631624634722113631765513411444821783752834636412451325142177177322265262412121225242222116431282231313213634626521241413562413216124126334522723754134141236317352563737255173615625744461621663143421323311413144454415153164333243211133357531231243124762254216253233113233612452612233228631471231618762312226533122252574561225223526233352164247223355454466132213283621136542112613213148664511127321651113647247333116164542161326163272324622152313252345242631714317244511647151331841232516315122351556354711231523113632525534571423213232122341143141551834143133253333812711512132333122454451734522553171122713414512553252514332131111136321246151763272224334346153325312153116282122421242116261141738124152442643236326245158461422431424317442314514611377411432314683624612232122238336332516242113641613226225611411382246262352142423286236137351164132325356513174441514316834741221362145173334442222614212226652641121556316163471625123313242344514177112112261144343864416221545434841146222222135324332381621232322343122115466427433133535422811131683236647144253145251443144223221171752321214362351213435742428365121137455473651367551124122171313515632555371412622624553152636231514321615114724133277181465112521151331226612131115231231177425534213467333115332571212421244151136183316264321641143533431674233126322384243331356222542325353431136548335341246163322722868344665415363132141212144256441813412313661333446862487172334715185458115831122263611442126116161323516356373141124363625518261522321317322824162177511175431773225241635333165114364753122223237246517311142821244322331712483411716141612422236326642741516544121114434525731624242334447212511527371164265322433714511343213124641315243553311633373336232363378134122431233811115344142512226432583342161425322817311544822326524733221233186372741336351232128635252224721338628427412628244311511151633111126531121167112733352462253721422341543141331521511221713153121186611261651133135442212445162632273823528352437328571326428252458214211627254725831247123315112311112383122218514823614161264757227346264161122331642634251423121111773126168722475725731322331236311265442622442241221726573321172343421414225344151313575176411121318442425811513541332433313142714314111552312624313446124612443843151431633146531241812443171277171324255534542162113114155621365253656231542416732141716513327364283565632574115541343631243165858733122425421135211423212626225225131331355557112216621612211564532234541411431643116348211177323526213364454461511412548151143813426331174134652832422112445751554622334613272257216224171258652653287122821115522341148814714276113472212241325633471325132513542432432235445136254712421415866354334317116642328831211122312748131736435543221123842143641782173324263354233415123317316726344118818536342226442416423763146465572528347611211313436424823324283381322144325446544725723412342386155123116132215121423823515553333311135112442111172537141531121414236721243118622214454227562116123112864835212311317151314321337622134151256572213614435521517772367141316162412516444436222546141513154311453343756116216235572365418556334452221247224451872871711456623635222161512114542526213441262212244544841243345146354525725382536115214511517251341115261564226612541314536161552251113441531111261162421375112214281374464547231614435822477315313413245248356235141261242151231213124223742615364425344314216711221511353728454831234611813364461414151425143656127141348125131424312634421411174333633615164754435365441733432714214114217532312143345274343141244111516152342315251564142512232315633543143452276535821464121371133146863248345225651443424217312434342145826226617345111175283126243143534112113464454314347137154453568684343622367242364633133452122121131253411611767123143426371311661373125717442735685625124148613251524141435374122153114173467146163411522315132422761322571413442412217451445561831424475266556423111615111351245441241443324311121431411561124212121233614246143421113132516131222111761113728246253722244324422131273136141765344363261445825611341213373474561112257215754657471655432142242421524148632271525461523655562141835577223115221276611544324373133133122161413641136123715152345115624554128164551343126512143511247121331112641214272842515311441621164512341121217437232252152227131822274433784412325117628114361226222173132741452252518134722343124316534322526342311321163111625542141464142123113173525332277226343333512414143417371412115252746761134613513731151442112133716333211214261647126758417313872165232317667334112235511433754681655546315433772354176226128344835282521226167415621612253214156414113231412345751516252233741246554461527132144236365333214411751271617834423236456372756541115711332252255341332634276563434543261433173242313312511713314423217362364843444562167751821121415365216176436213122762312781561342711362725141123431121122416233551164542523723312514113215315147451123121113362252151317423413412222265333613166425437135111321173546144332824613121412613773223324246424261662413144454361513551127145415524331352641372623233221312613862663131422562211741263262217213436731512145445281311251155211542228452548623731512713218523438384336531246155354221411415312361271523351612121551516172354437232134235225322211467215331411135332536231433152232347136131421741111455545122115213122343411234143311413342812143224175213552157326133332551133511241422415342235323233613231124241751445414333262572242113238137434111342454132122612365356546127312133754313132357524721466165535531841215353424262417151233121311463516414214335131333311315111283123342138423452243123311271323353646113444215551133432243134527227222768224673351175112356126111135314121113423432333144113116316216214485613173331111131231752334656152121422421821142428126312861386254233625814147226388271773315162211327633116453333461552314242735246122153577431312252231135241724468613326552232314234422284144765114131421113312621232711135125413132356773168111162116122321334823343526143114815123234423274471314411522235243434442364134521121221316245551121555313435214522714222316252283351154322324633145332461733351153463127463127534361331414141374116532851111113143561153266521126161233442731323233143853143152323124431127614575225176862633331632125632155411612221156415151225224534424255764552452526827721311135532322525457351315113283382752432173224321456281381348151231314653212131451153442565124825155518476616232232237132354317173523812642311117411116332234146362114342771112344331353476114234233226423117752746215273112253234348412153672472642372126232416312365344125451211412232175432313152715754212637174444142121118148346224811261217162817341233114662522135245214247612224135344581655332854115113223325322136341424742452226241112313727564236674112224438163163217768535152112111252322134432224124415166461145434365521131253514126111232311214113114754315335432471352614135681161114114831263146462712461425422752432651424261112437541221315642433354232445361386153128551764374243123264256122217115554123823135116663451163222456522124321421512277375713438455258173554441116484121123287241421824722431252123134241425348182433453124126125844533457433152552216313414511211115631125243243431121146128121521364814732353212861113171325417211526511311114714416233121641251111315413438663236452842527777222236117712215716511246412355324114743652253633385122347145174331665261336411412124171334314566125224168422233133432232312255531135241631315433221232111142255714524761215522482644626352266121262113712551124317281242242172122623643111454467361232385382432673414111311112264164332623341436414425513132416313211611132317221312442431123614431212171217112124563524652241622532428422526182422451558165111421713341253216212586824118223213122222167422436622427153341775323314323131727184525156151213121521255131311312263558411343131341632321661242255213523441238243613152541178233171163151363462273188133531127181231131131721144223352122511321112176363415411433562216151743224235222412534325815162724114343232711416343173111112421417418431512168386372146412377452411721344531525381533111162112333261611354316464431523633372845712153554133145125325432233423312273823721345665213436138173111643242421831544813217164117511212436342534413265332173633533122241814136266112135421355228613623147733521231243437132446121118236362833114113633353134111334273143187516441243663111473214455212388532543134264315814486333712415131441828233321122544315351544123121632544776554634211251324528116724251555463662711452416142822614322586331241277442136427333422642121215113751132512621134415224511213425126314418536524214143521124226332615162228323111151212742511125831433112242571352541423244262312173232151325557335254123271654223553411334131132514211227245533136173251226725414263378422221638213311122521113113155122224164671612155533232852145224243372215422121514215212122776232823533221734253431152161614215214144241235714247433134411543471887572582421626131437263346231733371731512716711244153217311436351672337432232214535214245481762817231417561521356525413121133524554471382714223312554621322146443284266724621524535615353111672114643323113313111412431312566234364423485321228324244311452214722254232542243651833217316322831415251355444344153663252313272647621511544255142414721472613272122186345351662537313425344526621454221131534473367183171312132122132221522353673112414412113443414514342347525667552441721421224342634212316513162752241215611141515125153736417441251156846113873313844262533616355511467131411314338338421321432256158351273337231417361131357635175486244422142832736456464331452423232753315124111214432216311313356225215416143232513128172522128337351427436654563213632517214725134475141344133812142663142422225837531426111574733183325221632135344416524422115871261127132251138815211412242181613114411241141528563162112724124532454621614111615434136462174756225633141685143516131322331137642545582332241252611652152274114242176313151161367322211332264421475343212643316363644612334857252335214425114186536685366136442223722243468543143522136473116168318317372518141443371323525612347145176322632347145256662344361474115241471384712265345115352342655471221352111132232171843114246454536425136823211232135147152162471134325231612253351481333362125627642241864211311121647141534377335232743236422142541334635148751314864431144231154131123165254222461323431383262177313464347382212424315415352354122215213187562224262211364134475277474255474241141123142231325422551511435414342431731662467665246221413315116551521232223373114121716613458454361243145876125514145123371323223413755311252222712727133347426661617326515614517416421513815632214432432131261225637334214425372116225543448252261333546515812627442245344242655231121722151437431324433553222252251371211312158257647533241123624243528243622241315511715441423242266643563727475731712746127121276438571152134133254112714115624832226722213211143323572231121333711147443323231742411218536514632351621158113641636351343163112244152175438272512674321531414241221233633514211544242282331145275121251263527521185141255431613531453437342314451352326314458434233552762475654413112584722511213345265135365333323225552441512447374113761136632365111336431285121846454421386512424253762362614621437513761543643144651643214324567513164123737325277131333211512825133446262211113221111235127147734211537233542424435141241272545116376513343631151117162413423324525274612137633221326162145645273246642715563353465524312176336474355321356735614111314114125164113344413544136341252432454223474215248414651212141425517168142351113432225138352132135134647721676343558147644222124513146631853326441136223151355754413514261726712255714237121256716412462173656152668153112458135161285414734217175522475118557537452251131441367611442233677563431252354133332437224243451721331371581552611514623243164168735142372242222212123634371441223641536111231176241153467141251465144283474265144771216735214552225331425467154564311854123141573563544838454413312611361121435333823435212222372233211274321744131352562828334113512575333243823821323432432151144243334171116111223731215346553517163132411323124344375331516256131224321345662772643373111444215741213353412454222243141116173617733313613143111532236715222333473551121521472214335215134445267216263447512426328723153225263124254311535641554344744132423522625352213241423461541216321131222131861215221146542163216212125218325123353537761625461661343314151431136288422466524661137214463245353415512132711348211863425254212322525241116245245137335463222441216224643421112234155416236421345346753262121411767121614131114216854477646282311627223212145414222731748332651241154314186212714442117287511542176165432154653221526124322335266143133447121615364355335132448225117127523346232221244147486316122344342233152414213564124642363132332662411845136417714532332561322242114434266741423471245421372223233123253232431237353126421643116433721821441362361287323171821152332426261361371213224175228147541622254533415468175241244411321315746641523358232145575255437521524264113512333232535423281654363625623812135235656732413524324215362318133225455233412266165524341132421516114212112125331522114162341122244428323371625461755442234221155421414614152216342563151623321363263365133141311323218335656213468128256437345331315162553184221352835468112416741351574112313674321142311434128421154432343522416224313132121633114333413416543116116121736252486116323474165255114422511631136422551615443554223336462236126715341652443551731451121131573114124746421152161112615233616242341641474123246214612572648825245231117252324514345254757114422453445427573332453442155133523475423152624861351421244458382631453214361311454232374121226123111414333523161536256722652231641242224414323475231211424154634453173373121121245231517245471137186541221568526731325363138541141311211164156152121111643336751564222861832434412153477134232146311234233254431811412453721331355131527443116562862415318262563231362133411124123341125436123133266315153474861651533355141221422253247474223158245733116571512726446246461526411232113131553122476142855223111135753271323551775122311141187544213632643311282512271611353112358144445146113271131413621454232654744224162224121124241451311381125463822344135414112153284511161172352411521124217423133336841743557332563223127361212225125434651114413172211154141374152462145324211414641111441445111216242134213222311212625363123316342153253213368123352154445568341124315124221141735142134138321655221223423731374218322122134241123145255366521252122432312323455132413512325545337284134124226434132341332214133245452517281743411211421124142674161135321563171226433426233215211736612172332211342262111263115622413136141474648255434663253814344175512852242712213256242183721266436213214128121111426428211242113532316865233124143122328184216166354321568642213612644213613243116314142362315462812114523141111281542621113535233115536162211421446382128271128321256772433687353472311415832113315762423346125213261243411447817545241515141323218353448573212145113322222454131176152231125645131132361124547553151325225144114611755212113333316712262384353715253126541632477222233514417352437213853577351322472616838153234345626434421843113137218428148271612181132141541722416523663621243222121863352323733631542134242523335123625142211311211441521352115221333121124151381132787411316324148315524434214511154215654427654126182246334111523321213526235718444515271214431121454471333221225125164728411328164242368462341377212511356433765264131272233211822153721326834427151345333312715444446651531465121221253127332653211342474312621568132357635461145666214341152373123113134173423753424154211112524122525311144411153332125115221563815211526362171241624412585143472126614232423834238427371346215224325861456415173234521224233312625474221622115261466342623442611526412112521215233742151413314147172485626133333453625255132451436552743422312261356362512221113385622254212142537611262523884444462412748331152235132254152664427431534737837515125274324553713112131361244367123211131443475312517425115131311317121616622134774283474211818482553153523512141214123413411345335184472521623421151171342434141743115612284252121523412644414231111315333136124621462216323411624514131336558745356151111651543842232515232221731421413443622224332447254714412341538277532343388213864823231365113312871214337264562614161653325622511364623232144152622156845234523227136164566232533121111222433463431264334125215311141261334234251364235573481721235184361111237535461571116423126265166515511283215124752342412313621811515324748814514521514328243522237112563434562357537153514142563636446246343553113572431313623214346541111151185112426274342163351535534433412113223422331343165123618476546513713442342266267278171554214422742733233461423361536341213474224212566545531623473212215421153251612266313324112136267444114373436333543331413427211432452273148328435613232251133831651453245114565235323226223132321548321247731164134531263421242635621174441212212542374225631684241422522611142423233352621252111432113421352122341313443223121253271425541236114331552252413135174162241371657362634233126542117442232211413221131422135138125423171246542112352253334234547363265124161432314572156236266342244616124516462622143221632263212141746113122116633752366527115212135444132261117322111511415113263453651325167335235216635424613125115126313661134214735434252233223831447142213556654352325243633635371412315671711326124533421653131157221255424514176323343654173216212124541726332132313415644345134221426321213113232561222244617532217428432161756346121851736311243353642557213124127144448221331162645223111721711342161542365145676416152152624656476151141686612361112242712164122142822113134263385314221622524141542311254232671211536113751634652362553615425245285456251541342828741451141423244651256665375228345341234355185225216311516433821352245241251313431223751243154117432232121763111215477172485528512341743153416231471532467442314626536744154127171543223413113125334151423116211247131211172352221321114321613241215311342164416423213531533621132443621863132711223332315338333473425722856431532314151532512872456153177533311133414512383414221246121425462225122437525112443332471841115733314255342522622527412153243441411226114632263242312621162151383582135631221363155532351523773235161521415556151341261252175162224281254534183173215746517223152222121745522213427126143244214564433122433412241641347714534532632255322455636543162342662537127263272651213216522153112216312214542163252522716363128612417314123443213562543412818661414542884225833413871424563131154221233442426237617671712154112531215412844223223537263447615461132412184145171235763312611254547112335242131541586323536627351421238461215551553321353224542431643551466764212251713441333113522552153242121532126631323312311727212224432322218225623471111322354483611134261252544253411324553126122124565615135214365335712331113531342617642352263411237645757324811672612162134341261641642114136322161413152324143213641615231232125812747347325725467254542146242526351523521222154251311324126713551136612142613515457135536513215153314241115716521445312531123313271331156626122113143153525225121571146425516151516354238613123424161214617563134524371255313132482412121764627642267225371815312682612247156425123311615418113134842333331153717233522772251558631644263856732223447781361152563441526251243124313514122152211772125123484184812234114711377152126122244543116443318552522624431711125354125676157524214263115212245216223652462152312113552122651174711642221112234324565311152444452524264341312141116436156536511266531232437161426217271763442227347122322552127751222553252123414315445221641612265522528143125155341323423471411154251321614421511463622242441566266211132116157113118121341313381623425232124216127462222323564235633146423643216431221273441214211143323113433111651334152242543157813316653767654131521455615713151574414543461213325665211263453631256413414311452417523236163645765465153314122646334862338462311233154612331761282224414183711311444433455533344425162144134232231335241534221438541331823171143181511211322522734144314211421523614812232153534664251316524414261443341212112161252712111514521428243521526131451531865515143513363112312331222311322423421751272521133513141523446116262551337134251236242781821244152334633528133672688218362211543253223827124343611545231431763332712255437543223127125253652571232222143231262224421624312424814524174512156151531734614246114347185671751251842422452343415546735525223214332622574854363841582513452412112652633624132133517315365316643214151641446631242131411432124231465142161126132632412122611532413217323347171514468671643245138138162233362542132457342261234232651323335241633112823512158371233111471327151764712642222255225455135816265652742651273122213252614555134142762161134142147343313165452222741212434558443113424113244412224411352413134113223135153222631423221231233232316253214113712333134431611182212551124315863228111211635136142111574447532511523226642661332135265675411112214122227224133221213634165435614232111335521255783535212545632142151264165221635218514171322436512315442353431225442632741383121714248312516323213214525221646141387153554456511152724131371122413116241873532275587132253161281512541262424622262134451331315313242633231312433121311628152613241622248232127542361531116651121145531122624851124424124215454333247153276722253311383315175651421154242511222674275341555262513112113154124234323682355324654131715221231214436221255715175721565312271321321355525147354323654742226583224133248262114521212121542818452211587321112523212712127716321324845213433488816511524533634363251632345424173213765823721634744143121261653543116546167516321232213232186127414742641141213135171173661116285152445164241273623443115261312518373652157614726116352521444735333564111423136352616653647312181142216441311433512421323841363614126712217214341613557123231261226343325626234432573174314211484223711152516373641136562225611638864555416643721151332633522662542721254111161323131744514235221114222632322385122112231412642522253536316355471213214231463224744441521253267111651223343416625314827512113551276445554821161311211251564814234515225531613451155323665624241512651522615224513252716313166741372516584121172213311864513236273333341272151446172136243344311212531834315221462283432534432336135225223226243211671242665324714213233252211871211335121112563133531312511623365112336353242371122551422157332733143414131535122462433822313418432343374714134571232154134352245214132616123141412121757231134834311162411123134563513313324522251146712417413153513334436252158223121333233331731114435544213615215121135463763453422313776651751264333431188122364824223365231518311616326341782557111616723165161732154718133443355115416264331361224421355762674273847234363231163727218423372342217443454283453547422466321113833325326362131118712314141551413216154555141215764531543133357556384121633462151184422116113633215232752641315862476153331253244243363166188621312672772342344125424457577216342163812331361467114152221224147744272231441816141325244638775711265331242251535154325233343464341112545645323166332141261223831421156123613214211341665744744856252312226734252115174212561564113325244263431411432232243525412246471254513631114332334135422826313164114172626511171423215617135632431251665141241455121114654152311517733184155155371755354122413151612146252121122444342516284331431143141637151461634632252318317114851118513153345636717132225513517253722232537141551624248263232325525733441176722545654211122543147234347532153234315171372226231513264515174332444456212124242515241132162145133141113512551211572123244761162525831182233434312461624125121364348114451723767634154152146154222113767324635642131726151341655415556143123351738142222351341557611713151147761658453517282214181264465113161413262833231431414128171238321723132222522117221325576112222354312374461162214816323272115361574634318311316813322263212463415513264641381123461612134633113131315137221314353244172112217155123221533712332454614125373342362141315561442311441144224613121665374252335122242232512211262535557621531382756542257261133156151874323514316413253272231116134824182121215353555453115444111414335143131523116642438432442352426512244318141231322615351455223124252112232824252331134735323627645332145543422422411115313314412386113117417112576241548158314342436243513327263272686613343424632631611467483642431345616212354177131424381431421611352123212125432451351158646442133521427152544156132322355142511142323114148884413324518278212165343582413414843255123468551233611314245325552212344162315666242116141421414581355382224485173421131632514311455413353751551582242256845184431142321332622222322336311141212456612322745386525325131528212112822247646271385645455531534261411163253316213352222121623553418416462745238345711172316384761434523215221181133112215522121551321232223361512421133533113273813813111757652212241331261751263241518631311473631713463311455753427413435476853535411533122324314312111515243443214112134527715118122661335133371624245752141881141613451236163172726341544664257221764432262512352154575434314514524515142441362721563551333621114265273642231172154311671646431454533165152136111142211142324254536575325542262252641385147756461511422548185311124736215415324221145211221581421452443544234834617241241642642823451352813132315241372141115348527321554765321622122132265832322168421563162611114221665125125131614115522111522835221231413231726141225751512542133232522225213813431721472631753258242126832621425112524622135314311752223233432113414244327114113451333253241542336451155117373362662141788335348412285512235323512244543145614621342415265314641141362145465117115421211451233318781512556311212751143211413333148423333531344166621146361323424474553214144562544422315863537711515612651154624121312486343233744442642743422613335113681347344234153285152522246134515153781853265232336411154125262413114541576633136773232731321237353354713621726313431346231275122543321137541223847814383423431152242715115723414811112312167564222233115338834125373836311712453714146267426261266615312213542352412711232244422462236214741562711251171633462283314245126121371155161343321225127722242432125532355321511145112215617261413824412422544251257462342525327524116577534331411364476441215221412265341571441211661752325215155455781135645422321121376833263243333541445331237232322133331233342653624524113444254752172527818364412534414632721111744323546311872435314111316226356523246564432411212216433735143215126431323165413544665567353235332251411723244645633333214723413382424132322711153461526556368721153211772337412123811311163216225345523352121221341517366121435228523413452717453222271222421261131145252236151521651723436434674343444321443422525343331561427422416113531623411166163552814213165151215524545432723132341837621631123511333112655125123824761581111532654836463161472227343512658223155147861142417423175511342435631338262354328115142214466321143543575343434313812623355611112144184311741328422168332313261324341633626144464425314171264554636251384453124371171412223232434271214411736513155335242223171537724487543351115163133212124138336455164151321442372233353632153112336713122211144164135448643721574512235223173224214272533764123735323147333465331515241412441156362726334223621175611153517342332621611146116452615353485851243351322651521552623131732323313811544211412436244325122272431214542316654244645336121143313123362221311632163423812143651122383227623224215125215547114514244155113332121177132613621461146227651145427551226515136824312617622626521156213133564125223371815451361113665216531146252361235724741222732731636174213151217134371574613134521633436611531312122152323238232145466166246651621643247182343314514814317241173121473275465132416316811311143472511556421443172551121315251421135512413232175113233681211317182321422531141661133213217142725314613525243474245475115531444414132574223421531675576217246253231354652315734632242145276124526632456352634446543161375115254356152231343135541731217625132314412426622153217443121881122612224154457531131345465314511512542471211113111111221323753164345516341221461226421322232471251418321173244431612111425266117738152226175121124311322843632242455532135154144112314335211132241242342174425145362713114111652172134212225542614431151428566146212754511315151214125481313261115217521561216123434152114142673214217113311446226146312145571512731123341114115446311234744643741261312261782262514431123544143631434512213323124512412213271163142121613526531114542614113427224242425655631341225122562713582431741516741325644132312151623522153125612426817127462317252333812121416113151173163511465421351351521264725536443541134121121285172553534433521423364215251443472757222253521243213764444113115424126222268147212373385523654267213182635174441275632253345653442411472145538225352312516174262624112372113468247115334464223532331245324441541851153231264246534443622321145323443541231262377434137416361554361514632133463521245351222213345534175133314711612442316236223213116334543341326231112334111176345144414365361227114533223372444133345342113221111352111221454537632672153252221766851115345415441245573111132461511325135331124161552231212232131113878451143215144451353424632675343425147312843434318666542654116114144734625531211821223467314312485155548263113267785128133212525521123124411452524153224653211441131175331322251412433125771614645523735637225116341813236317646211284253222373532633264743121222346643275122245234522214543416428312312741455311351521145366241252455244351112345254357521734823132511143351122141632132563633522113114113233233735114332746232315318122352323243262128631313312333223452687622548641517462144555381361623183413812247535212723141367253315311221152237323612512334224415416317113341333215172111355161258745313515213522752652713231214311231122235366131331233174285131342121231715454281248224327266175431512351552214163474251142361211331824214213645477342211521744123244462372622115543612162131442626337321451525452133514243345156182611545312223583142441741455624818418767254316585216132453322664524534432222444756467247136135215143412238824226232163213561816345424125228223732412671127414341221523754211521412232245111342223176463517483332344153511515614455543231536842224413553515211445372243146213445121361122143755566612437224212336154525121523126154715612234113464121282337413545235511318122565126253261314562155713613431261635341236242131323673642266416644344732253175332225621143242124626513561113135373112542231311433471524735122111715231635228425531114877311452413434565265443212613132212121621761563572122362452262276181373413657241434465413435321172731142372314454216166623352272821348257625125424226832412331114531121141312475833373441451233121162672613512112571431272632431332122431231824151216332165133116831125743612121121467131856167142122554121643134214661624522171643122781331441483542153221112335227621141221421781433112357313233251162767831271241152521142621221353633225271271512257341542585452634425113141154722525133126272422376151155173233523245514766254764752651535444722841175643354244463332153433213121184714624244653513235142111513317251542712224561111311322411372285261233212141314242111223244434213757655456114615511123332437314537251123133163626313113261741335323327143443217354522416253654214638363113521233633113353454863556411311437311681565627234648443615331276314273351652434564513611768127411345237313587812543746323321443254512813112513141264181183817542526171224214472213412244212642672221327731233231225113126328213314455336275513434353561733456236237142344333513233523421223252261884612414213715115428511226554452617233713184173115563246786763341358115217436372547261116345448521175482462125225223113123742265522117174142217162126727222324714444421321111466126723321685271217164725144611245411662151562134146727342422613542712127113165141476231334474452431233345365227363446532331153653213534284125322111162232526223132132543152164134152526244115321251432751544426256611222386241111526232632113432334141766114535545152173222257546633531552345464557411322553222363453523126122644223723124447123444455666332651433346111635311111315422126832115174216555177121243342216634221856332232367245314176314151222511511262141132233216331511471344185454322534151626672755274522311444212574341633245474112416242213586143185171623271111312431744134154241424353312133252212161146461253333635531141213736121564143611622422455682355134621871251142352143412531236255366152654373153141861532162212331553362112567133371374754716173614454315522162567137418666136313575313237642142514323265177142451624542415616543715213182148434146171372571254235163243752822424164731613224168425411264743375235273143256637623342242532863832626564114211512178115522223556316114433733311333111666766111411534432316513212331417743771441651634243736125634281661255745133151322741384183126221332175213764241317324528647724144346523141431421413415655257322113323612342114782645626233751277246131442234444311312334438312412216242124265774135325412223623336542221454256425323243627636411642215422344515211321722134773323122424513221557123446413282412412321524314311462714131526711514637644451141415713127261164235221121125531421115656237427412122211342122456111557414355151254821116251267212666522223112413162562616314414232352321162752226334252731111111211653145235461525531661444131315356813334616314536422526215121644552534324462171242112232211146446334354135151246163163231672627212457145621126326367321336745125411261412336523326112224134313234517242422242282174512721444123416243151267545125531472342324222426721124252165635441433613352436245223412655614233457621355321332251345113265161235613812726133632126552343232553222335448651433164431531282262242613583215164552711186131446757344486824554425621233336132261622161748427513516111671335244245131185142233454232252451424154751335545136135443813141125125152334245131643264212112524524657412175543617272372834334126763155311218613355221138211151451232622434422133231135531322755342548842281331535621126472554213165312153252327415163351723644111511281267412154232534171184128253272232581352353624271218727635141275413411136852211582514434633161456413165164236316131312121625332552755413143565132361111314656646234444114462321251241222815261235131166124171841274612521323111556155262516224328636344114425132236536235115611424355431514123634245111223616351312223655534342172211543413542354363324234316455376631222831227654125516711132833112173121131524117476345122354252752234111555153174221231183111312362343744151442845516751521155525138415253534324411112386734414181113441311762133118333335526114253215416251344336711122262213314542417226712534232336321176382432535242316438127528173165121326271571251181711432273311324344222245342731521221822156314531343614715243114473278415434534436311116516283665624121241563122118521222743437112461732652364171532411452282312132514311124111836313455125145261251736734221224811172632132761664322311324623161543145412212734573512445523311353224421533234345131433241231276354122322325431162316281225221413181613246437221718111423217167315233582433614321513223841545331432256116745314277462365423341382464421232411277127111678647123655311614431512221515125534466455323237111314111421232133213614211514243172871216181535124821567711271454311454773442343218315151161418641512543725446776233143141537123415112513472214446362331626751511621323123423334614563713214823153612625122671362313331622732225518346345652515452122426413544456216253236762151348116411322186272325211424666511213165123241752133641116612335312532142216634111465374357467313414323214121358253311122232533447157721321625422213361314347264555111245311353354244465164415132646463511746583541243463577453152121246524136131652246331282257121762331126223331711613256552555116213231112461221241223513716323316333115151232531218124611323535143132411481213232313531331234471672622321245512356144452271346543212122145512252166656312121333335444121322414262252136125254523132766351441762255112272628314742132151141311713123183557577714642674216211142263614112111523525242114454334433861342256112145864732131162441611232627444181812213376511455331284544246117315723352144425321175327114721666432311142115533623715841526133523441384134141458424643267122477152344533144514166634162355442255153138115211127325622357221153123578165456356321327133441132544224445253332521142727442143163123113232341131128717221415624317325577726153335431836633334463122333441413241122342323113322322131161462211124532412434571161724317453541265487522172354313412254864252313653154711215123255562222616315133443221121441422565731141642136333516626161143151654122534664113771188762151661311322667212783164613342628151541133513171321323516352123161423241514283157333413354311164431143433126731631432322422312151732111113633351413272617211148564244517512215722132612261223315253617345422525133377512354125226426122242841315512711411612353534571621123133221371356451413454614332354151412322423532242132141853226155233713137723142712651241431333316122513514413434332434342641724252161463643112612213431164222112622424117371111315136282172116147436333332131222724716381272234324562282242642531436631554232513323156884612658343546531223343121476112124222152283313215228426272126154635842211462316712123732323622742228652244532752654411436632643116111324243733535361863344211221371172435141342173634311882266427341631814245533163312342364111421115472371264254248313442547411364155241111252531232123526542536534245114218155472641412623346273354342331511611132442411354226124411453243142115135842484164223434475271114131831115285212466524316364322321556312828144267724222571811126283115533425368767237362415321561245161223243641115317553172431744117341351242434224351211721443288245333421111648723531112337635456233761233422522146233418214515383535312648164113523544214463674321412887535374114242413632236311276451621111337151731651123315114178423414266631124626422111135741721235453542645481621132112445417713525455823134212314432743111122415136311133444111171774121542346474461515677363416273536422763136411532415151414344416246461738313825512163112212247711245463254463212314212252223485323411262745423314343672143174833272353655662211446451164116214235411116616615134324165114373123451227576714421262422223387354656164433334253413115273225148418252546232157127462325162143411241326138314343353663357211165453723232155414162311335162574334441215143568261114211234114263182632341621343112331734416115154336375241661512227131442257218846355272224141215248432666213222123335513732333243715313344431463462224824661118156515125151281144147115154714221137323112322551455328815541415363364134223711713461332137744322354524236316215176135461122154724125172415763143623426535613164136622762852445211773532315362747511241215822232364223461112252454863123322211241313453551422222623211731524331243611623531561415742573415134821724122115187311321257623222342224755164123284112641222353333124485437662651125718357545726241115411223158421542513832341741181525452451285724862671544128471122214274547714675312334524251653136414472514732131228544211437126471134723212757153213684142262161537124214133131222247532133652123257421256422161327153165312235227564524212751444832152112624256215164151131362151411221153144721112226443551243136524625113355132144153213431262265646235263721824315311432654643624112232114524113754154112512152514832271111115126823271245412644224342415422121115515241122232161511511232422472232221367136823424136114122654362744522515141212132272412215434131431344436511166254714121415185325143121122816374613142454167344414245114343162351124311162172515135522332321422634424411232341252356331552741162344218234624463455614213614842642464616144147333321711233651252313243824143271162426164242521414414143231814161242512445411313438161331221661514177366332274666188255236221442532565156273432112342733531433351137454263376367432432623531713343145241124224153234762733511522223465722747241521363185311453212254331832555335463232514446111312221322158552151147625222212431452654611125323384356231774211815135335162712513541551876722447614441261541311232133341413532311345533224162734573141212552131176352711153221622313541535122112674333334835368612231211336152342362341532123321844243246471544163216125532452226357547413213521261524565421222131152145347473442414233212521311674512125647187611152113241243241453163314746152212123125221325212142223316122121228325361215242221186123212541211454311126123113757623161331342743673113312411331417142228114613112421421221275224646613142423752312323681342238711134343313133464312273422122155764754446146254411346134312732161455115526513218214421123141314836611214243311468624142521711122426747116183711251871711423532175141333321242518131321126562172315368254256235444335531115154545447472181111311171124361351111122115331433542621334112734823145715322572332477333215225151541161224558163511132444241464423114371432223217444442561461152251452582612252161314152322211224543432126162111271243252467264522237221442352685121716337174841134635632211128265131744714177675213246413213253546623162842254256213324583222863423334533221522412735132435434634161222471236211876622332472641647421523524623123453623124754544141653436361134213131145241641367581884411211315145622114812272141222232314212513422625714241522754321716421115422724122542123616173273451522152224352214323356114215164615334125143231284213172573244114132382121156313552221433351346126141121341243815112351416142331133113111321277214111236632145133123231427236127312424158126344336344222421721173214212414545526524475448732623244423342112221424261111253631355273226222635471323411116413617411247151423238253225544125422416522133512132611245366465311624223531545221525613133511611314611465422431253113431115343531642164112416236441162772411148272443112222421526116522351324413312653726171125742511122225334412141121434324244121212322125661421158726441151243584714511457422314327244225534236624421753432622171751235636131243835236142132311232312161112221142451633618168444246325423131634252315425215134235555525175183313134675322373131224122851133245615251511261164712144852464126115744212371623212111271113721574222445723785571223626635331726542141254156325467413416436211534146242387832111423353124321122432363321247571355281515151312253311646246115367114312335251551333213131315124125177326314412141735135221454316335355251242323421222226342182321826383253712383751734133316666144121433133522111722423575528482613111738736133372631823435251881227115221574124143632817252441311335522253626631264224441121222427871161238254181155132611426115251332156312126632533221617446242734711176332541713452216311712421845222424731414325624337645247147116533531642223332554421418545163111582151511527128154116133111413723452127332422311323444716335311346112132171423511721361115223685637133365112431411141351124871538562422111423146613472118516463221626113123446172126231315263334612364222531514523432711167412412147111673611551781631235127126222223332632357116136614665125114252133531726282261135444726132214466721113361365151326414172212134441436533243551312551211416266717532544354333273432412743551252536272166447361152475711514111263143233834861446224131117472525136633221233224621133231621143473341111134214115136131242331411241516427513224571435686124331611428632553573314747114236332313464151237632346112624533444424315537135624225111616464314832733213275262515324311413564785225652742524131521111372431221835252545451144132411111211314221136235544712844216431113135132334583233515612232651161423221332114831574246735257124174272611451331157161737234165547246348673466334451422635132162442323113234821132341327512216115118325126233153428135223521145811136221264747254452421721731625343571114232311178221221123528651214384435513133212112246341476451232712354633621672457235432232151646453718556336423154131735563217158476152721663321245721242361511133221525351543355363652111234523616125164512268328134114272372243364128543513615323443137285771141231167532322512334464745411512451384222171121438454176221558487316561725121272273137521331161311213373365642113366836761318626623213222511888851167586143614242255131756426362477231115336343633231161615736314823321511554238361373227766244335112428644224121366111362256412558534147134234414886253753161256351826717432224141228211162714225437262146641231487122526412541265263131214133237123561533552156114113532122683223512621314662271251432142181344121316345442161351411427342128246422342132125227273454142331153612371531151424471644474424523125114826266124651441322621725151612413735663138624238678242321712281621212124661153814427134227112425333335331311131624745642126141231761212321625411632332467131313622234711616211517452224145314522143725181131761112844433112323521261313312324528221432134381145121634162651822227712764152526115542151464527677521464424245416258621255141113264117342522125712113222515422323321212231162325235631184113573511151316427615123416746516223521311144735541143232127631231211213135214365124232112132242331232681114113434122446744163421133812414183171326524111363432324512361123213224235551433251251242436327646416121313452351611471255117523124513511441544175131131611144226134252854712431134741815321334223673676281271854312213522546481243172631612432353423712616171624425217225165238242114212715541315215142846235831625332332277121875324745144573313733362124513221113563233243512124462172315737433127115453544323624143111754761724112323111146411213233147116613123535272262777333322721834122523126112347331138133134126142258572416723251236546412261122141544235422212183634641536414436822722182244712213276645443265141151842114134653715146644652156433147723231113111713241121511221225453442545164353236132124425235341175333444147164458515215442142223721233338322612312254258314311753224287123353855345514121371313232232263444253514224451311714421454565265616565735485656255622613658313312511214114211626327274377547273246431623425157616653342132171226212442211413431244726371212321374645825823222834134631721334634221646141313538427572632264612557134232231551337152163416321325152312223413111531586251116514252223141275453721152255436331612472517524331237112714621124364683623358311326454435431416148452122477722265312161574146325425537221127241432414233752771113154722231455422123246137365751142441253286211521351173114113838313342552545263257571342434114364321535145115411312121421133753441364524471383342234122232126364331728216548425242676133327422624353357181473135142254216482243555732673112632232347213722262813223143356231514863476322154411541311263362516726486556151243276114621134613722212165412212823455445513144233516122473245247315221824744223473112131471332311125431737323473241416422326533882642151642263215171232721441652452411583142425341171121432424516367252684251624114154453656621513122221265142254416422113311761416313521122436365812634142114126285116142344143174331122235341456222187138224341352424323153614243416135171536434442226113146472483621122162834112131251644176521511361713275224523732777282234341515461421713614421357311475432774611173714417423224422754512521284683244247287135123453212353553521112633543163364324122722488417212222366316375323136123153172214235837137643363321422524236556127384254611161144714121331135642723532545412554525122425548221671241514332127231364511411516461337254212222224231641355315434272146444141841361357511376215722123514575546238134134512731161525414145535642127356522215234236227231124313462251675318651221553115334612114536254315151663458123332144346342517313452215555431121711466224625463327173731766552412133223653112513612232261312134452453415236322626735433231314732634643331451313344513212411472834145661642443431423456352631334646432136432527326432214211113166481324272213366371212171114726474445354311135115313181342244334446272431571544171246444712241373422363136155323511647313433532171541111324276535665432247611161121672244312212152242343126236454231362761126753173743614117311343742234142271124712545535141216422572827453213611522313515112714271115421214425131357316147227221455122141442453731771421415864443472882174677112312221413134684321112423451325531315141551134146415415635466721172552222553241172123215133622321841613518611151212871186222123176312312115236413131115431141737722834321556412411123511646225373336544112733241241254221211722322352468432446438321621553561626621126111555631541175713311315111333581131746236412233534258561422423211453762164473122425212232231213234111313322231522254231243515743148212661584251523827176437354585387122243135114162331217433714311132382332614312833413511244415521431735632413446133162416257223421272562261641744813642723232664224514721244535561437142713653321144523635343135343612253425586441226112243463233761245562416162313475145211225217363363132325152236438225212415531122445532243623472454425631324218524122827522111212542531321253811146212382115531126132135443132141586125113665622413468461188421223111613224553614231224722441151521572231538111251362422141522211264311322547336132115315171414434463121343511115212323533123262327311211412475355112225123122332621317113142251665351283441225746414267251151721515812523656362762531445434871241363346672544532142142112312377246244454231422111212665211241172178231551422157541155111367116542222312725215864161646111522246586162166563324432135435164173127535313476147211133453231224211361323221142168422241333111133583343151622141222253622256352341532534446486352422431433165761328143113111135651746212122113213624511323541255362621643123365734442445311345155434261335732263254531114754231461454238225711111231423113252433281724672221538435212226372611723422313213613352135133522211226142314172124522315155585241131232411717733844233337736352213424125312632363315631114616166434336547323114345836427273446552541216585516447111521222135613241721341313327223141844137621222263131111482222131775125542414376613231326353134326242312254355155722362133211215213715636113282712233223411147122242763134263314153442221743112371181632126673131573732223543233131732624331455435538126412117226835562332755161223316131536635232251415874244433215314151446223333152342313235153316246518722574222854217115121456541318325212212464542131835242283255531477614215118412434421112243781643338515114526323364343113436152346314118737613355451123143216541354251126453511237116312416246547347117363453416315251752235121227163127522175112222221516751115128252522265512613372482245711221455428215621141113382212614712221551161214112152341441115451238444526212834132354755241471416723111315123445438154154624227141432833628324111111114133445114432238726274112647177421142241215157747413151153333542461771253353355226244626324513154633562321113236626533227442122248744711415517232575135413512527351362221132314333112145778346254835553574133321556135253611221641413342211242132732285254513373515323113326335253212223433333424552144226331242212214631416244213133336111527321531565231444161353582522112363721744413422344253221427442373126313772471336421115332516655363434133138346113331551115133533728433621184544423112515112547612714516451323126253222512221223675435225581428833512712127171715221165615355435526733212244261521143521137151445436128451521561452123214431635252176172453743532336623162544561543424224233321342152844167215134523622313662216753462315842412261433373312356826152233156231511525132753842245112834232425411333261642247362232125325422746218544522561248553372212313111242435147155443721373567124211256832518321157251233146644323313256217367147722166123362146555634315173225213713141441372312564537244123743211246151335335252225531411333451151114342446211528715814121131115344333224237315552212176114321341222565635126121212343254773141165225272223424636433166342221243256374612413533554751625613113413134511346542624416115472377134153536112181324574541126342321414342422112431251243346234452112417714146322221112557317435531335551151783141112164356175412152211262482136221626153313156265185115131356237641221431143177578884441262433765441632421781548322122313434515243362534142227244147551211511231414114173551212721266523186631413661632144214314311261435632143812111415357327521178244114421357262626511224253411735113423172164332613221121513341642662212426142426245421311211133231236412321256454215414231313533212283164527133134152345132245331365316456187744816346111247333114452132442413252262132264712222412124313173717622121455213432562762147631246137333113446213627642324282143524443114146514131421771453343611445152215613517616473843437622223254414151241116836222663161715743442332351442182111216324315472523431658336333231241621412153421123442221375411122322431323327154611824421423661216236361351281634262132111662325614428221225813423122222781122131355376111443552752145547412621122115218541352851151564351547212226253111756115552543116132134123121214346214156241113321231313316334363334141252572412364224582473413234121418122121222245221331366123223731236361216662114611524143245812514532633241283131222142352513632346421314255616463263271427416627553272642573374132316151581452751163545117234157441172414621325652541415123423113211213455241136446227113411111356831261113127214513221123511311521261211353127236215411225144822254331453111256511527362378142618656524152334321311475544533123534112727444224472215134364623277671123414553225236221153432564542134421327263614535222267233113112614121311235132245254116174641142135147453146242132231641613411112165666274122543168725263545611445221733746243627566312766224324224333737465425322187675152745532237441234522363141124261312332623642732214173272125815163312222413422662734315134277163563353335343624754567211212224328462631331116174438155114211143132556277214662244128234645851232356152761748442251261431261125223443112141612136213123234133214711116111637314334331326246637311323481223274216115432243261217121221781722333136541741213415515131256341341542137151187223343242124231527131533131857241531223418144463215725214451255123153141642172327341511438111336331171124641252245314283571252126672673266612133225515114424424415426652422714132131461146234162322133527442453123323711714124233452461642882264224266124425242324621261723622532276343752464326417222241222111547112371243241167314223451835331217712234325321213223234133433415347146532481271417686271132361162144124121275522523852123532424152627151151651276446331523473812211513461111432222326122323244112452121211235563555341113327224251342312234414141723631636343125416216224125162226374631181142424242723482221156126482271548374488235332644537347147162735558338152245223466618553253222513471233434641443252221613248234114242315162252425453151462431146881252247742136127413614351431313616246478331347543443367131411213246516334672272427731714231226812756355553341174436114613722313154135425643411115314123322211341724542174126466323612172754461345323118122547525143118252344115113542616241112242154216124182241211654111153613744324352434678416211722415531421212541232248216222452872231311126471552451165243571313365175552435314312157617151216685412542134736253851624268111516212224185421275444771453411827223328123145146711181226643723811655633233322621821244151455314321555541422711312126148243378173531642574831526176122563442451133463525613173321432424155221764135733557243541526132713212417453146574431436213463237133882525232114436221712135313232874313736315385678362244622151241421146325323253264313121372751211327235435442817143341377217261811327225432461373825336321125236543134665153513161261755326723313721215676115271672423526457231431262431811433433245422368536165222143332623661224723723737368527335255352152134121237332564344231262431115215332582182825611423127416352325314355271311842388233612344128323341622634156412223411233211432145221413383126311353413536433135142543433617146253151312224223813273361226262322612516363141142125176341215222345421345113133411421641334473551212181363566722676342833512436546232263533165334614328234445323422433264462411125212333441416115221115611133432225414837716756143151411646555844644221116455461276635311433124516522235223722211521185524236321422441152814127333432541511723374462331147213422132333451734215114523135145117661134521348426318515252212416512223323464241362526442128716252434123744431531113562221646117221141566211644224145238427673534621272562331662422611135111151122644455245211517746731253113132543121412316456125541155116118412235131741123552762224317135151654354326422111542612474451571331722256537533662534352425314528183434114114136842442312124332155124112113273454624242635333162244111436315857835152126414123613485128315125641141474142148276586454421612723424727311441446364336851227255417448412241352233225523153321112185221164133544111478118544276411544741161441531653341142121332452232285224554461136261346162812354548431117133844365281267382464332264416341652176215435666141536514275822443311312251433454332264163133212413244361343213138381666452331454211223461145445146387115114176454625211623232621712273312122513554241553772114331412721314217341246433132411122511151426543416423431122246652536823661262351236163121613212321221514344832334416631216157121155643734115431678444125213111224356455221261213143534322562112461625712551443573773523227131413121152763344762511513112213542244361372533744221213365337137364325625212713245633316221834142342444151332354131441133723512241227512121334123512265211161131573538215138522541167267311512611566841217322537558211231462224212578614514164316141666217126713141342251446552237314351613822211415663126826832711631527445326175124543225475321254532312232134115422142375151132531142325421151414535428451115756541231774441523135222553153673464235641125463214213661135734155344162173423253152124325443261656611227157413242536657535134311113271211685314512173114413112172212455145361127226121123318211423714872221537125473217152817157111664512451245445112864235156245467583233414412351352413123214261354161212134312411174425633473381142436626641483631124215232645546583361351133413312322443331233212422324751165523183266187245845882543221444443266238221764555462212146146411512625723231313246116731315271211632374531525551463251222323542373311172145346221127242664411455335153444721624257312343215243414181654281521735325653514254544321445416163537125121341243141713156516371364451552123142813211131213556211214621511536126451241512534241611525121331846182242123711161217242461143762222134412124241223135613285328326181273343347473513212273242222374255224537122425733445112153724536633346413422113472116431216323124662446151145556722116646723124323122751121321486635111148833155336111541424411125222336244235213584211361538411764552252122521344121143443245235161614634516633666545112555143221214231632241363541813234424216534566234163232354771314345233536374413213858524378124322446263437242653422211272126164234163318211128242411624812443455323151112241114355234342521633726226136545512355611544137411715343614128153332324225136332464532123145112354145525643652121321135457113151625456141722752135156151117152124612446222431152564542531315423441271245813755161227132171167485424561633781652251211541312636413143532451332423168587634531145152821124511314683156242333583323127155612427333427251245624121425514221762211412363223847362781511663511221256711654171626317611711314263231223354151412421821424118762413346364537566334241314541214143352111115514542314613326626513116751736734173177543431161322151111343366147143883132155452283613552116141436213286586347242555484644151221311228223435482437711426412251655166144116641377442143422241566633631413243116113241872556111563624342851611222514345228816612173157341446714438332141125343142386412121413322732312216315246343417715365173752117755213755252227233111424143463254221521331861734441131112242271322523625343341322652414234213622744432531413215131653445242432246325437174251317512183434237163125116552634125321216445172625226123161841443457352134245414472471461231431365231343113255517725644223151341342323264116211516855513322157235736114423333412612242516851114312343531136432215413141112612334525213413421214331612275221351862743171264448534624231152164116363487335732163237632533665436323223232342722223333372327454254415242851234118332276265632643313612811781273232322313113434133733242145216471317372214515122673115315143643141355462744121334521121318313112751346112213533313671173331256163516461352262551152151432825141325742134261234222433421833321682361514364252412323454113245684252811455231351356254411266855171483235226141542727771252362121824272662114337144327141242347161413273117353685548214324511347224143711631424311761216621542344714231324622263214413461133424123122842354551651313434443331674252328442161457255616125152423673462224433536331863511125564755171311331454112361635315655523124433222437431724724522161362421117223163133161122122842444311353538574251634132565651347362244145487421354353486414223165335117141741223212317565814454417542331126257252511264145526752414331112331531113161265475145425514643612232733726561234634373163211725783123226213124152673321242223448266334444212653451314437124551832571213511344523123241761415776153751138732316762653334252322266215422214615732333822413112673653468435111472554563553715322314136443113261125125137216535646243123217811478532775561722374542142522525637472766151236133473134312665174435217525231714421634411156154541115414141331631223372346336262621515312441135362381113156281623553542174221651622454561152454134414541451117527153312412126158114472333516541611325673112413216336333724322114161332712256631124415627312423543417241613342161125332153314437524164268361262122542271315545453232163445112458225142574555326222416342512114125157243451624267318437621318421612247233135162142161234643344121455785114435216321271121152513421131465246512131717781846182772647271153344532344655517222144411128444344362713335534154256351361381328243343131113382611122123445145631223624233432544235312211725688517511726554224321141736335415251212713821611135235327516352621244155813512435531454123386511112645223614132172612136121543832274163653311532217421412113812155232563342212342146622211353821332524212611323132222262226135314322624252321362111753537121671413531518353625572111133222143462411122242612714641763286241637163362631152833122756216531168861226185224313342513521235211362472323122734261223631823443274241253341745123334472343115223421422181266154434134133427622132246112751388362316213571523436787414522435325364181212151637356341517118321333261141224513735221338463461611722723415215222213631853466414552177114247132174112315332152323351552714522568424441421132364151343435841717656111331384642136152756222123531835317145343154235216241422252324722752135413711311166525832214143131262561175164264358213562543422312327715113114627523121522225131762536312222851122446122382173341421134712267715617134613243115552186456782131123531212183141312514232354127511354611233515456537154731124132132331325341257143287162241547214233122141522432133312422211532211131248547765185136412543242254123143122732171421247745443243218862565213332212342131363144256364212624871236542154113116553542757672161353322122533425311361311233522633715241256311431141336173323122136672165336331571436122234341662413264225436422732311332142424326461113133321561231381151223344714521814222154443223371112114221754842542623547413117811432637161562345322742652734524513141754444628411234255124117722125356321731242154642143311425243324412115811552253247213652365381374811155223233562222536632331231256112537535374125121273331283183315252522487751126542181124534627726442524731464745341123431337174532333232222421151443111135733583132332542634226672212465227415142822422217225721511544167826721455225513126866771324257221812342222311283221522152254556333623125824844123571275623176261233212333355125145564313211422354326134332641315242245543351115221564726271222344822431174314633272211265315555113534525211311522365527342564664274262523471233171221554124766471326131354138265515143552812823144346514224357621114221151612131133231426455436211273514453122145721325457222447723222322254416341324117551164313474161432754261337313544121634432254154437142331611441223476163221242124552551413254141113253242112433362533443261342175153364218121177233414123346566234288367262767222422554575752131516156422556135222426568233436753174311565443342312367346128323812561311156352542342234543574522751343621512226586341321172734132243215232235642213632113111261614476311117745413521715235124444813555272123136313532415261215336741151233471132662723453342151115538217245254236111251514245261412122441248531217421352571216614473182411433843253142124223411334111121137431157414141445663714761172744215517748141267222115331451441123514134536232443512312227224553117412821477345744524612231355163514275343326651434143444612121132275511312444466348441524122237438243631512331222645353251244112765534321242135823124161265222423472282433562334427611422238322434333512821115237562241243662266331132661213543421334512231532173613322211273146618112123131241326337121351343312433122535235144212751536412146525574123222243641671511371245517222511111264111456453164556141121122113121421161422221426238311165354314287632246328247452262715171326617436115851155157373524557421832471843874123236354617314532546132151242437263214521426673353573412242232321122622711341566134227522534833322126661541115211111274825653516565165334121451543122233141412121621552366454811521525142561533436523361432272123823451215222127221324211612142515632411533432546837212423212313433812412425526223233363252232338417421233264245461324117312331141124346323615451523141556363771716131855343332353555515826366481827444332111741635341413122333384251213213151323151334532447143321123265117377246521261453243623546741252337142451353311322141544336213231325712321341271448224247353463456253112411152134251184454632112154146124441441612623316217211646364617614321411552122425151122634615614236164154235462112233541314334111144364216415841522116352164612262542245111726343455451311325441482114175764322221521122555113143431314262152151313721331152532361184534246124312315413332223422336764234123123358171725232542323214118114225256152741143152452157135135177221427416222336542742216824441125117124512161274116443474831731758331474534424122252644126151316361422513623112122413222524233125233141643141345736115511331813224124331323141713232351324683173123637322223252513612821271226226254432673741414311211113111522227553224314421132225561361342651532231211328373741442712233413255152612516115151225147112261151355466322372533225638778168311235723324142621374263234644334235127141131253472153351248221156163723128351642125167713444343351274234622147114113522121431331611351172441441114313415421316131413131711271254325821185343211454115335635175643113122127742242322224131522253461333144538411214437216225286714173234411534426321811565123314151311116654246222514135213131242645313276315322341253742125266611538151115113332147643412445174521211123371422434765741574821245321656736115445231423115325264444231134274185242321158212423133252214883234112364114266461233157653745262762412524317834264231536555637414111221221114542351152115112522144413781124235312644453233232184711522446447532111143323141172444112461431552224312255238413512364243131355676326164715515635152615713262672112364831273125422244651445733122142262223316256145111483125343125655615214611162222112811111324128372632532122112524723172443314212113118141264445412643212267445724313342162342318344132124321126435542535225141215551121123363724215516653221724633666252315371241611156781253235361674371821413824131331244523612334255422414441333331514236132633416453122112335411381244135335133151221645751141622121618151447215241635161632116331146863516343711643221214335166334664373622274535377551518123113552551313122331534327317213424314554764361171381321445124142213256111353724832342333364147165282325421667612222416123333335112314131757121135842423248625121324341546216331233344142327814415342121214851254365221255361161152242552242752435123417631213241544667112853171213321211247542467227752311166262551332343134324111115772211114555124527543162157111143435317362534424121412546231236831534153144127271431242116413342125352425674321441142442234311342424127526412463771352651235432121117153613611561235662215442536153756713865133347637112342423221441312133286432627284133371563311117144226233685121517214115222615124733218654253672322145564614148352211112253246145151162116221653321226122413112455823524716813268661553257521121231115541531325375351314257222133314438111517833225122513563854214357272423324523261134144253455145866111536464466224634461512723436256721644421115413452844546322413484445122122126532742812161133125863611113132251162132536154526561321523621161881267182514436553241317151488188624447731265511413673413121133621271152225212176867333363272742347342434214123613547367232166525326474514435117224221723511423222321232454343722133324751452852342324115331353673515416263154352612133337245142121124513252752165144713275647445535176322211123731214265332565233583543442122721126832135542443432238655216132118312421232772172144213243377161425651161763155635131161262464231652333252641617876148113456776624112145526354526252832261172637141624522531441571133174125112111331236131165253245462122155833132344356464176463442562666474312136225122388262516255111616247263625141341231227241154446136213543632731572171257456557581154167246262112361152114115125125535142622541434855651435553163321333138241438132415121444552231412135142415368377455711131332431732562762235212626315611435552167433111112611524786242131712325754234525236321211722752133653213111612376631217122436255167532471417324712234148173642615453241123316223221682431555116113623443657341166737724376215638653123337232216452171112541214444124544314223314388142321215531131241132423335526274124123341124271441115316262123615712213512637316243173227132114352452775224241214216142721624233731521566313414326424157122322211623562217261171543716711256354226651165236271655611211145133334133173233121355813444483523852872132232412823211534143126223523545237234221321134653152111223266321422221424134411555775135537225532168443221143222154153233284117163163172266412274213423252332113211122214651835214121216464121426224156772221834121521421426377632416463126362346532232633135613438371543211644134117611533665744665671514334412124724273216885163635443413431223764421222142637721213187584127283362232317788114123313337771437114313163414471143551437531421242153341848117341617137212513632334563251423411211553151311275276144123252556224313772558411245222231263176132335222141765411113346121111145712336414638657612123341231466251111114516441231712662432652244175652353321561662224832161272716722713555114351134333112525222326153118314322241116284236361331131545151312511223375117213623514525273315132267151211131147141641875125621163115423242336126611721223335142818212114544663456311665153122321124214245222123233565523823381222244542424424315133365223464318556211175113117264524561726331312411184532115726452131132446643114111321422212511521766611452564315522722654721122614333751651655423824341236264516232341116224142474624343515844255132653211231233122721112538432531246413666115633751643536162141355441181744516431426225171321414126232522116412542414222234152123342231331563316262226223251333423122214434452317457211562515573216218645152314365263174255355412511755647514142543547173566355152556313426225332545571243524544762416151831152131232178512221522121663281415322113347534511461111143422241112415725141835166313112251275211136172262414221435414573364322334155376412643124312677543326616254531148354113325223222523254552727328414434734152612484122452124341512462121342171635251333444327211444112632311264112535314234312673235536332537151213454326136283118541443568732144151431524343434326162137523446425325111351441154321175711112443222141472611772671116411231123116754174126255363464534542136424385513224484852514372353434224861241347467211714142332124155746144217156181328235525463611444417111412254145338348231175114561422112731157741332458615235654141352251114148332175652131212688152171115284315267452641821532842411124284616381135716848646221233354815631325114521663168421611321234423264111116214455212621422341334157572732354336861285652351114265458282615447142435471345836341354137125355325651661345136315457382345721313334722425423746521354323153444213247334375253612473313335514323312337421324363664241513545154437433156351138564733612472621251712144432423123551255426143554351361613256245366121617325218141421742311187221431425743424144441133144312815751313313114228472134112333132142643121163756462631255432561346256122352313741212421774114441112328141114326114617126131247328451535143353755422481515277261483324134436431515524123525515726246523513242452261441112325154253234711115113654331431142734511562225311632353811433144456634312312314725832184352876532357414132132442335254335253554383622113461283353684176725275214112273252654734165527475313236134221311631312227512142311632511162258143172582511511812631362144312547544822655436487643212151517221363211163731421631218431232427662233323183422532411252443534211232776236137185242272271357331313124415415243212533534124165466731441573416835157221311315152722244422635716121137314511233251211355751154446425512128783114541131431351481351134316711364514341426315711515641644422231273413155232235573142238671467413241217261333513757213315116131341715114231223763315262121324173524314142562231122332122123364212542772161235122618154147111523161441342361434445347612651716712261375584114185516555445121367446237541135221331612265451141151231611173425533122378261321165151162141414853516586111424263115381462322324162631421114234253145253514352678613311462262714314411121252316531312243327663614363556323627311132655421865116621122323736743286672327321374553876652557562152655251411311213351115156323121663628211734173122423314263625255323324143434246312363211334155115255362312221346141825233364152342431432532525323237242111744113622636121153211353173172235221223175264357261711331223225443434653334142541356273234531133124456654111352563544233154153237313661215431161743814263316744237146244317214134114751543331111531211567426311232334378351415424321436636773732633428284312431244622511231232512332546235615214224446754421583222844122862166512425743511472125135813555435213241245634581222223125333222121342322623113311222814152164221211626657222111525441513214426233522142316125661686641825214343136212733247224346522211157137826245352432241144384427212366536312542614333522212271333116777415273534811644284241551115432212115124241264118116162334344413661542121167213321331321414473245551121434451112111133332753431122562532231354251211715231158134662742144541231537234472111123453121277312683644565433481123121232844342324461253432112471248124122567511146152631211355335634521543315441652113252561431472774183163341274342731572433335128442735313158621522127851213314232624144217436441511212173651516232112444632145143146221311231215238521421512112681543226436314133612582561177236313622245111351121313543861531512136321615551212337327344413241313361754112311825514266522634132324176461144455111285148756231511136541312252216361835233115145123641342337135661215475245553124121145633512412265333248643211243134141331336415721322124252131413617743214222111112124553733361432663212213271242471221317523255427225311553651371718555123326263218484322136352111138246237317226461256461168211343322414562325414261443143135174524731335472225252344424612355411221121751624127151325536542233422143472242335332615657331521533436144255141113324333111326364167211238336442167253131151146461131231223575647142411156317564222712417211325241271532273234312154132552128111423641127512122434321335834834273511527256321145663313148124512651114621542221252363413126321238223542762526116458314125413415133366333276234354441111141533157181223412216333232211133144313111532211324142222181422613131331462362236245114252356413136142677262561243421481261423555531324452532351313172131361736312512658177435755733318734762143675214117213383164231213428118122221311244511723134362251373262522223413324131532563311132812417622235222622221472525523862175432126133362154654622443718341414242742821123226614324226323132528542627347133121214124213426624112243335122511315631217234423152251471221541312512211831123574117312111736111366273384271442136522352426223321175123321271533223255637183512241451774215262322217456221441183161165514158263112762214512111114812223412382411534674721315162623163244553336455122242423321155431626115141336365131113336122115152258447446423451141461114714144331187221461172142431115321342112221323112311377352411453121322153214211172662662445233131313511115433664624153614651615342136511124334514751243831515222123232826213523186516222444163134214114124115622851124224123214371234477454423714321551114266141714528125418241516311136531421273264656143435516161631148153425441461133564223214221426178716566862412175131141551111343336286637634131132265643116563131218363217561415361812331125417743514113524635127514317262156327531442512623223435425244112323111132637125241311712643375742437311235443622221286413613132112636257211134113252115434132756764683131421562512625421834225827121142627322511467412143741451265465115752557132211233513132753614351133811462714644185356211231363715354612134116431342162864415114226222287556568241532314332312573231754622442342315113527114622144336265422355336242135742156562271134335222714624526351361733551133126211213813681383221535371323112338521122325612312212714384244614241651626413512431122554241662511376336313634121231658153211125811621316231426663336553181111133431473251316753725612142352364421133126413475523144236513511546261222752411221764221512165361421235432113817321541132232253244325352232134331231311314225343126821114173126253217415113153224263471741454112421434312135224371346354371326526223125321121241344338432641224571242261612561111712522225464483136232164421126111114212336521333111123676443123534275615623324523542512745234315532372321528416243227217144142144142131133624224117541257521524744323244138222755623211111355242311815523561442525431512751111644232267152513213216341342424546425115112144232417213137847431163433315721826223113261613238337321212613133231717752115112511424365512126442151661518313337881234647123113235516483712544523132352314424225221181117334656551111333131444267726673834734317411235232212633232141322325236311323222374121832255223317226124123414221413251161512571248221542547362624361661168333117753531565552174362113153141314443142124123275543512284121521612513525133124211511414355516313215235313354351212411233136224414512253145746244114143331421551252553424326554432151361728225512743622315124114376213267333343332625454275627121146517412132252432227663242312243166723358253162317451117412821412117234672344331126552233311251525423231118837546352126245152531148341522721733325541277525335253232632432412157411351655428638234832635543424533326414344124566413332134521251233133725142353133222142161321131612213627113633151331622361115133115413446371422525322455332424323341383412115261211231664115461283134713524324183276432462133332553352512146454545411115154224451835581745124231361214335122522333615226615361456316351735213322131572124283555862381236167414331271662653184312624841377312671648733615141671127854425324462113242243471317443323452562644556124714423141343211211171112241215743432522323234521444322256437811481132532152236537726423131133122265112312166217246447155342481644142612457114333452523676123314568123335318135534481461486123321131131164215642584113527538514511212253263141272531672441133623564542132334146725428215812323423153163536842144211624726363312331233217221611225355286241432154332361254813535572413111713421411674241767511484451224214161323176253515384358541632213518281212235222212322741131361141424128411232452121564251427265511553713544662622631312312274355371646134264222616631432714811544562154253111228414236682366434614175331143611624244248556412175413312452351543382341411416811133613134323173332313142213375642161341542721333355572314112364717265842461247573335322311113763651713852843821866255426132313845214215332376341355615348161552345154222131512542435267412313668621282112125212167261135556343116212132261421332853681527332516714113211311856522416317811151215315121226216433221118315431115146122336173563615123325525316371153211216233616535418415421514348163432331441326143616634748116546118231325362164145513254313611314627125232557331232113842543614311146477641222233157317451735351463452227115111413721342468812352238134234241423137212152433244612844522121161165522326474124575111253532615723618272115284274444284522246571635313325118151153352246743814334171361234574542135222424651311111133312133454341622662225341744115352114411127115362245722536314622215563224332114117465433216531481216512113162516231221416142111542345324441143417612246336747641146114154244556315113185714718855261143232714354561154734133512624352661636233374117318416141526371321242152418417371535141414661311763245361553161133132542343554426326456253414132533654446122556277171146451163251225212214215621225121542316646311466734114224623212821577413143211425667612216524212131251251363116277221123462432337446171833325164461441466465241434372132322435325211243311135331262221171232423662442412623183248633825121151583214826435443111143413311741466113232323335872334133511322335673546335371437552114211641162524312217522111474137123451123532641115173334264387611313737318471323254472454153161753312134421411218221316122141524521183734126333411314454235118322214313411552316564112233814732122231231413342232252472531583233625531322355437683422418138132152223126461161856235625411123413134424334221144241167562416414534641518113461341121317347513211417336483571131577451316111251521415153123212631153521424651484333551421232651232114342225221542326342512225262121461133334111521154145746215555113523313136546561514244351232337181431116623351532311212113521623212251242124312621355323133153773111623334343131254441533232362418122135224123188532415776541731186431226124133476462443153711321733216451323441333725717345141135443425222266123528143116423161687137312312182817323472216145338215216115334113112133123634116532214541112216714522754662617422821234462214561221233422412414577211622666241311217333342526216323144223516544451155118312417736525463442464638126114164124141122251722112324523313413153361412622718134111115111143442143133141535223221754123332627324215425121353311646525246155521336524625311522548475121623513563513153377222363127545245238367525532286234343311314156217285123647851112724463146117332224355822445426847272622337355111111142352444314246515442537547113274513334884375122167163134112143153183241213141272335163454121232423213631612452811264213331213331155211123133314128151315625242512116171361744653438424461234641624431834431512222332624131411224213344753753411344221134611545363734626323144624366181222146314132351157574122341316373122233245113436245241542642122143214453618112136741121411622644526216415717142542138234213535114355273514162223342624372351412533223334621413513531531248212255348245325221232235544512511343511655466123264452418514145171244334345744146264725541361253666512217111262486121212641216121417322411132275352521151242444231243125321144312261551176884163711241125323142563141422332324554643476611616312358414244835331342553121343143252121244214821154177324217816542141433645366312423426142461166413543124312647423226435462241235233362344363223222122412232813431824117461152225581127223752324411326427283517225341231332425231723211225421241144225321417212384723126212253124161352614331226461137533533545311141551421741226212133641233562311354315424522315515252121243875413267555244632622416616224732256122355616872221514213553264143254554322386131233211313528116538322131441145243881582742343117343215124614211621154313123534721731615163511426832822263115671222225145246442445452484522118323222152814432331641114153235812211122685515247312438511113163231124274353462221214212344325518313513152512412134763175643513462425554623374612324516822327144734465223111743525266142111243134162533161431224153224532134131343163721436431514355321235227643428134122455323221471458131632313173152211714411631353113112681312332243773576846351251424572113124276475233112323312131171541512413631631234353372742561333713132734636323212784224373513511341153261512163413233216151647375112663723716527635171424211743156121217133122642223232477222171341223122556454343233265424547114511142542522142162263247342141857412755553412373232453211442442351651516114271112645634322131233252145621475622356252222664815411841222751171516242352241456414445271651311216353113322854342723111342412122151352355521311154564632521471611348153525113656615138127211177235735523114381551256123233117323537535321635117245265227411553325141651351511114742112223766264125145632172765441184672624713833544212143433121851421751174771343312224144522323261276523347254471141214654433243652433285651532213234111274276271113133212166353331177342615325665433451331871812312444371662765133457523711433234241553115143216231461841224271661462731631823241114132532741233164133335225617433544272115111316134243413722152165123312228263443812312424126184231321368222625153322174221511413225236531231755212632672822274252231163622683411421112622216251181425426252761334212745183421251823671145322115443711113564254413133644155161551314342334342363661231622213312156373425321131642627183314273523254111112553725431412128151122314145836525442556472221877746218215233513241517621762217725558134511453331312161231214442155124167424538242511245321212556115212335836467826535611571446152413822524622542111222161424816345455152252637612114351336342411444431571232315351221656228313273131244428165558328157511328531212631313311366412332123154121154211511553526414542622225623517332214234442323113233454217662184113124516437347222346376261311333221451214237516122641341462166113313113611162322235435421415183433125212847363183227231412113311242413312344386135163132122813442734544235257173215616241343574232245352143136445644364131852574162643764433334236127331276881338221315272351213314252141142712462522426112425615136163435658452642745751725242242413831154211737425432128252122532316682147211164132322222333411222222223763142423127121274233135711312732155266771322642117344156545513254621435116122136538374212386243484287135221117227545757572161433111137116135321245714525126231158812435642375425417241282268342223372161243525124774414261421532425211123185851166215444364354533232351217153366114142551661231514641516116436584411225331272256632562436313138543242122435461573327132182672545522276246822342231671315524333411562322135621525451311123265312561621141351245285232142126423177742463234227511418271325234432211213422432313428172517753134212362316532741132134345546421115252243162224261412837533545734313272312161524215252112247711452322162474413132411576441362346354123422581514213314344341441214533263151214153115143231463464565342231411452442634133241322354121324631221385732183142462528844433565744312144214233165117545326133311172126151435355221124122162513754266154367413214615727265462413121515746314142822213531712311375412156645522744145311117415215233144413445526651424712472324751453241142333445111663841421135121455338132612416624215814467173624431411614116485122633158412244173245317534587621343232134733362634455133475325377173341232233643167514533734565145313231264172838614423224232344425151168743115711737426162134852351364236341423125111326124562641111472223242232412445453412545234436553113221441422231321114366231351145323334542465755572137445234335152321274155161155434175231372368276125532222272337323121411162131275532823351651215422424134324224368424233165232223316541766351284123431125242637212254413815216536131131315563365242477434161138212443524236121254314751328531124142133442221142433463173222734321551354181412116722142361763634531121112726533362551135372142135733641251352141856126144143261232133114714865173634126684654781671112411245444251145221364433114523644363432213751232328338535132521252144241614125212213324761134224682141446126762161332431547768871324215517513215213376631528322533651625617221122214327154635132241211462231315154311111532211274686421173252143213726132721211141562623478233221533514512433617112812163753373331455171223281113722418412146221263653527151414522256558331312525711424223114122564111245113243111665175672121361865421231236731722841722144762312551156474246542224321733241215223324624174321141214116144336111113421428163613612452113115522172114522223251512771234421113366725367161741234676243313317743162284121356334131664212114361235131112643218811484222611356555331121251642221715314144314145431241411161437151363735254728843577327136127713225421356271234271253213165226283324237341234332241231214532621211455531315143141713142456528211713555464254432323612142167128522126275113441272563421265451372357353615514421453281144276611145675245325116734217123153542333152327171436617164558131381845184447112376615144321357422211163522232133643741133477311847721131724521135221124146251662743471123134444122112221335252616133121214134741536172521183442272451134222122231115132118553844511673222152151171122162121314648121241116138252433353712628114611731342354131346565141412114172862232654461175341373232233321134232335365322547323341114426665511865412333441762431136224132311272135661212282171224123447131517631351314324642145371572154566655235135233333553111214755517223132431143351562633244354111111245312135253455114332214412726421224552217843211215534611742445311431241111322521234614521213742337375144131713215611357565117242434651121113222525112652232513471436126116633153141283222447121638243223111362576563342473418425321112613135751214554624221141635722317341842311524577114523413543131141432532232352335215534124183174437823731212113415132121223273253273263233126114351245113512124143613224143631264114412121452233225311444236625814532111812233212443424522411372547513652112232524722345244434221725125836421861311825822162566584813122583332644562114124144625232538112111162224721852148271425342134322252113133524842583431132112334664652124146158536422625362255153413228181722323224122426557816166211744117268218371345317317321464232211352251317162515821114315531342412625513752852122324471122652332121261122681111151221542411222124612516163732334626514641656324253313536313234153581111315332321764572123727114286114265321271717381336421513534844131573354322111528823431134215673531281155711581546354156711252267131233441321313616435651524411314521141222756711312434358145113583311212147633752163123621444341474611113214216127237412327533623135121267611232132313333314555422132125327431432151414142513235458814533513447335264438712748513447613352537136142275163251144413242542121113224432651816428222334133473254171153713641414227533661553481442113757124241256224244714132118443332213611461146571116147866324153734323145621555653312632456431222113176131216324116117221216272135362765162712456143485373732147664546554472555743173233226748524242136622222512521275835245125353342511311411156135413126336252325352518371451231215222562211723152115842632561111144365211436462663224542861673613411242144242355232275123331844371245323556362361586226346532525111175271816512123431333662131223542221643315274115432142657218342412184332122141417535421772231313422423315537361112263232512123142656753432653473331274122141744355144112138161211624111231243254152312556371355321618248124663143536652731144411114544343516111241411413845456612352154152522712514232534124112313144421151152111254142212335548821311143521243434211212174342247533562126615667264412173424345314223622454133432654415244235331617313582113121415473441511214415511352151261225543524125156373143272365244651642524832413222215613144253511415222473131131431325514251255541523264631522422821123613132542114252211134376516157211541316254222831462862422753151274121356112312443273412413142131334214521343411422322443651121535243155445164321242326135244323313223253611444154447364114211412364218262253364312522132328234163343127112233232171136162563134256225113145128228135416362142215222424545111332145346616122168352124283255316335231548111442146345412222122533543212314382583218355565354621721253353213533224442513311682321223131332182522111225217411651641711311264224761531343462621267461862312484731541621334814125341318457162345327231611468867252115321711431171313522312173342443121721212216251211447275784141112151112662213711314427354232437171257531346831726111611315154524435357517151414134271332333541321231431211116275215521421181342814411225441263366123245122314242213111216138324643461616742122114117842123452564111321142475425156426262465451271321317821181222347645766321322516416164213641731121124423242852263542416162427317666234614344525631133337314351131322622343325317631357745632622754142531283134525512117412852623223121114245125564337185513112653172234613523513123523424652422117427115321357155542342642258424418134521413625436686113261313418423614311411152265474267622673246643511212514812338451157415412121314613252252141231255258111325523213436271135115324141112525133431111253646681161163222735121214722317314165223312411832634471631621352127215211534241315353338217636622241216216251333762137333233255641534535136636431532415416257342336211122571282172263334575226111511211153225412632143521841114221113312511432411124515261112512337215111733116521282357235212222425443722647157311317738416554112141711254563112111624551757332354323161443885112333677346111331641512221272764154417715211142462341417143141121128654145723123442253223721145722113385415714234321533152224712476722165426131262221316261463774514223743566145533151214141411245548324151166212523414221712433235442233122122645165336152174222273541375145711143321533655132413282211362231157834162332327272122331616231423131136153421632131422231427636127312472616333122167428113154111231361813615137822624432234525126113481743136613862325123314143363221353235224713352637376531483426262551135111411121225122476161132126741242324575124543164261622432125421712445265623111245653626444216251513153531482131116111674226322126323321376254135613242421561353314453635151251146652565123443433422317331325774143111124116436311743641428131371332432136534424314316264272234725122165544431143521216114584312125172545524353251135216134443817513316458338543517137411812412363822143315436268532327461332336162175247424831143651481655535335317115141633122113272523322521814115213254236622222441522446171141134511321412182512726461513127421451213626218712323275175465211872612124312347116731262248141234735311364432544163425627851541561423123173113712721322223357544413154511117142335536721223672564744133323221434142454142631352154265315243426321443117244512115361311676745531134222421311373241313266223435113325123212642312342242331311216321243231113126352864211711523245342117422516416252134165613466124635157562453116473223147332724661535316211535757221472414154232312535328848263161255411181131312461311163155334163222431126777516213321376416341221326248155461121522318253151511151451332234443231215111512237452156286322145111712132531224143322315258541637411281157527111522331222321252521661748642726727424311251141333763531412535142252325621442274412142172716428133453511246661615461231263143255432451131181112338562355223712524153516215232117724353618215111376213511371545241244255625321664218176143322251713724313315471483132612537132354368232853414136126271252745511412122314631724446211132275444175123522711162134813275662315651516422165113263327123472127125356453634123131134161151717233342643612634421282224533422723426471324243351321483523616656131327215127433232212121321315352366716111523526161112611611511742321253853111371544233422422271114142441276622156711113167678423744447351222315332273513742361521151313121411237262833253315643538321321342163552511157442213324318551123231531526735426268115126335226545512321446113455266683252414115516224226111113116451163326156312722116327632112321736282442531283452542543521563243252123336443678312743533234113622115224177118235252323161251118321712535662256171664161234113511145355311331231183525236332413125424252814677232344413175111172443432645211341521713224513424527211428715212464723542652222122251561332311551222343343161242623218144227136235534332255321434242724352312351242835425441554741321115212522521753254713353212218125128362211111252562126133244124236527153311643456243146342654353231322513563736214112535314311222114237833613112535253131552345166521133533333845211435232613461132168812322122211123463211226155361633335613213245672352154433211546464273635124216431717253324225136441818322862856546144314572513872435521254223652212231412236122263335261141217822634821432448552224434632117211335521263227322723724824621171134351356211344354562637668634132316241363412211144451815435223623556164534462515222132261136471372251821152415233217651614312613142324173253444534212152651226216137121546541131233121347632552421133312663623222162122333333363482214322412342544424331212576852314444253561611327162514443236171127554128382544443123333443144371322315113451223233441171571231162576161323415163534364771316724427111231613446555243312131382441135821513313121332211151235624534433672118242516674611281626151561321171647141312255176444531417723711516421153532446382151653132255431358225134166333537431534124235225321511155211721355134221334434132234821331641353213224341571521111373171332113111113363313428244451341233671114242414434354334122138581213354447236552363262371132122331114323112782122526225261654231454371411454233341842341253347485231252214386243422657462115132155461317333423562215314134564312131151346111211711265114183316512162251254438141583111365735233664373262441844784732235614224221215313323634516738251316122425537124561417482525761114121164144627721225323152244522545341143162212144233317526136262457221811612156335213336336114252551721224181252618441123431841215321513241621122313863286781252215342251463713222243644447412266134241164521143816321275211544121541278351153213636358262634824142316633221154522282234454414434621214174113577321524161314243655323145112261131435571343571326325482262174561323114375681115441333263732471364453111146426121652223856531628137664582275217654621621541121142516562114234851822131153222385573141832427317116126451717357512151613222634232353334112241731624373421625624115611424111133133323424122521511331534322236643724733141842232552218117314242513312164341212534216246115133716221441826616123613162747122515152611754346214462254324713133142426754231285871531183224152471461286212332217333143232221112637123323211436321114152816443466632616341321422443231563556354361516316413673761273223242313635111151526281614264221226475143182224526141613276113116554411182331323181253212414882755342213446722266613314353523161785621322213167225141332325124617764411422343112261366231414113136431114332354232111117215162123544823121351371242243117643354535341115263262221236125123111515441335115433255644261121541856222115312456661224165112623332312172753626522553354531132513133421421528626181365111421212436464316561611325351248715131325434324333746136113253645224123115266228445323453614541312443668333223253135272643317135156617112656417122112643357622642247522711212225112147155314161313411246621142416715342734122316283161446235816572321352524432662133654241171467541353732316233663731176114416272287164234132422181632528512351433248617672233331431537357121262415872145413513535232211734734124571754651323351425314124184365232166711516321611121374251111435164442474345247453123138621622554213412515513361424343662523153277366422111124225861173731321466113411557414171545123136382521142535671347252181125141512111253222785222345243158232221317254446163714233111411413121243352331154112175225424616253511222411548346445331111322255621325822332136227241113333313124634633113521363224221122331352236115223212441282232321153441231632133323335225486212642636454512112333114125121612311417321554251754434364321243821131516154122352221312661122248318113464246648488223382113471413261112813531754531336131242122531451468843118413415411335711221451285252523544542644332716328512313522421352312521143251464517225241454434132372226316573632315153111122441424154621548157247236312313312378156816146112213154122714215643222533211115333334421126643332322742532353423423783212141114454645744534634675452672315565761146165331511533336152437585422325153231416535146535113234111116218116572324522673811146152548636155437121451245246158133534225663317635314682454453238262517457331151155345644233424362227343422236223221312321487145482131112644111651512532632113141443653142116353128334134411511213733442154258424211252212156243343126352751321131314524224232512458536514336528151327414151473332435322213341362242215244322422862754527324824281842222862332451211111114322847143763632244454122316211146546432166735647647332614256237123141528712416526142623675561434161532258541542144245413114325123343441641526741227151261411122151235241661717185436315316515246142352252761312248641321152431315431213546157141532215644224225531113113313421231317357561467542712443543224252555215216212167211131325311515253576525351424462471643314114661131621637157732523121512533735414363765114242424322466212346421126338432532316723371558225311338312122312455212112114224821213333364436513212254337624711351156354723315445143313411112453516421544131454343233454652817263111134221121163613136222111125455626243722341311871621213324115137183354214511344111113322721315446733266453167144441226123563245121111433185152261112462442472112371418554855143312446545247272373387735525553541153653544122223621333852162112175334723464552134634311546514321433225132453412412522154377151133143754344235622213132131642433661313237217178516331381422425114131265282321211733212735264711443462411131713156316226312233622176234342442472221253167141441128416752312463353151473217634545225422151454331733211161331515542364562226273341252133634162653651262613435413813214224345125624384652477323175122322413215114254324315221365423173377415576824231233114181361323652222333211621446614413222743444447233555816865243514615233176643242244373237241141217228411125711526331322311267514152452456321811432721543314247172345615448631512157414554613222425371584642331334127273233112313151735525734152235115112232125547787352126111233343116746141511412261213126682235116342417155125454123724172262543833322624657632281313653621571715284243511241211132363217354232233132211132671121322632131641387653132252388325533122218214313117561224613226377232626251411123731563121235377152347552122614316631611316632152811522572352356153211722121432368157621214211346138332231332651451113116153161562211613224141512354133728347512641211514358131143332721155264414651624241855242431222612322831257321411626115132462541114311567524212311113312123261114236642412523666532551531623133523411411761446574537343315513275534246345314443113414561634273321364774225545543464327243621653831156483412173461632772224116463253243114427453253436753425454551453141744172676131131324233738342375325555354336551346532122346448411323236111111413443432222213112222316714262413438223426152522152338341584115145234762232727342237656442761561214541743226232353484631232514322613253122112234515222722572253437565141185382215172244441352432322362115321262564265853251234453522556271414241236223163221277323455324311455154161144134171441221541281153261266422651615127123211241464523323156244321143124526281716248344458686825753827636431342124251136343371443224136454266434413621654212341255332815344821245155332231541144341211113175653112141535614131672612255265464344434275447557424175222156567722118223144143115352146521421731323343128282573411112727581222614248313441476467216452212435122113111242313542311314325451322181111514746213263375514513165288246645175114613454321811221524321526552671421237152123522223626342515132331151624211321574221315313455142441621141117433613211112735512136846113434646237513274233226311346615411434351253171311425261121173166241625153365466124146411826731561341525311324512756521232422644742322143613241134163111242415411331542257112332372172415555613424415184117351112212417324411725213342136621211241676548251114421338176222115226853456317116113422732122164765341212213354162613121434153543251522274331182221181132236512412132822533517622123445444461343328638631324623622636643245412723237734145152416153422411435554447333222273232431351464543553274255122633217126164631257256118325126346145314811111771351231536335531185165531321471144171523512132472531681432421617312335612211746312538241375234726243272321284148141714324212433123168728354126544143524512711663341332472125223233544155233787121482445514123836771164422873712412142721565236385126177134145747217612444311717414227442263816352113436211623211341164144414215532112222423135113163741252312425825117476755633141386115254121362212353736332137622433221133682133156312552315428155314516128511336626472232122451434247342534525442828343645231228152535233262215344322241561231331232813262243613236632411624322225321414462331123616112572315223111136236551268324655414231227536358275411115524262752634421555575221231325147444367342454231711335415224812232263421577166234616321342245222644614571172232321523541162314142853556224464435243114135262124132562223325212532151152341127515145558212156381348232334645237136263422214365434251675221622424123561261332434211255435186334173555226231415235263127223443123236365523521324341552216613581131825453121412111524151422454342466312111141477512171517214141814166115251616532542152331364565458111672557274144723343711542122536331841416584424622424175171341824622344324346132257311231615316321222263612525218231377322241522626234532313331248152257548374523532548234212563415433514311322131324141216111325616643145145142251423221655544171357174184211228226165341175155542715448536475421384142141444471552832111437536411254743622158518523342314652223711117242362122441461145412125227131356214242534565521434141676414472262261224123151211442331118445212148283351223433244326715413316112362673636416468222245331366211336218451213335565133423286326225344633432542235411427786521447673213212381281236143326444115322264254261351264325313556423135423412415674531147117542255135534652754132523511251517322123117312413153242571376331113642122434514131452185351811361341165322634132124632223211157566215621235328251813223267222552542145211211425162116114128136642411516132181211131736351134435171263262544124311382241361143322212434343317228435532422132114144157366714146557134637122213344244354555331424231636451181474434165213544475442562344111161132257212231144322622524138245167466431264333243125664561111426142141221141475543246154223741613254421163113363516461134544532255711643251313133432417236243672161154553453522318773723678371138263676114153746515216421251113262711317613346112245388311212374671262513211646431855775211511822622125566231522347538621325317622312253651331521618433131653343341815751121341132737714146664156241238546813783511532312266672411135411111131252412614554633221346112511521611171451425621572233176521676582261831746116221232312111434614263482544635511271612353221212141611512282221144241375611211817634554556154422218241632365311415431761143613233361651376753272763433252121516447115418623324451132421342842251522216257151454573852147283213863553117125431442242241146426841147167121431317246133324444264156155331331355312457264554334354177248371533311421138225633631242232151752311842114423522436363246253457111236272328722716423144113614141663674153321371714348245443245112234142321211228155241324113162522413321511816236221111113421251211722113245134521263328551312116226565571542315821635131223347434131454166746145228152667151312222244538213164312551213335131232226411384142151248361461176236154246118272431425846153226363132255335335321131537837141811332741376222126643668134824257171551515623112142614653688361132244143786565127266233737746547534411127534434121231153112225413172547314617132484314153466143525321422443772343242351411443831715267731511321431612124512312174542457454611615647622233322112273127425353247314211481262425271213735121337563332434747717113621516113551355313432422463348561623112471141373452231273221412111822272815351322531455611124317317125211122532111613322661124165463536167313233218583135215151341221416216636174114533215585857264226341523243143435424135212415344422218231121115217224442434743232732861343115117322112413122344124433545618653355821444218282672325233112632143111412111127282544342267323314115328167526831616422712121112115254637636145254356141611126345413673115421153221421531637116213345171533351711624464536421121117114454114818551247251646563725157414713631225288743473111551314751324552372116756562211131163413443214216451312125545526111233631411135232264124211373126121271312164253117144371552714261648617121432575771243363222634145151554171142125354675151171411558433337552234171225415483131246412328328331616535164657532223843721785343113233144222433646343316313144132231331162262133417164325125762265157343474343542442614624211325423441143341442374673311535456233254133556111663445416227312215622665133512244723531424185511146441432674242313152312624342814521616452151253833356212217432538457627721223126753136311211171223543141223125654422214123253146422237111116431337126511124122641464241423312225253111547527234113361641172323434412626222346523231314326552113154341267711661151765134612227632251238362656361352321111114324233412564166126213232676442542432226321343111315421761136253117336224444358637343254116112542314135312133221451231771232213641313511531513222542313642655711432111115382114222171243251622132511321713354162211445281132312143135124215214812121547534245251184121213513843111617514365622714415618135421214315251632152145611452225336253454113332145434168511283432123223223218211416246325324121755226363556371446213332411472232165551482324347316314524243121123435312513316533211374513622811748311426183222153541541211814613423354611411473531133746225163233141324462511114222158344242545315441532213332142526221155111611317263451425322123336615746142323416335183731482141255364355124331431344546451431726528545135874224165662326244222154473211323131621652264314564422431331326157633731612334715332444543114311635245456556131111328644131344344345215343141423136355445243346115643635357584277451678134235424113167554111115332653812555326653513134447262344621222115121135321311476311217261111374652241317131535312114214114252612558314318446221511236821417115323151332411145111361134414451271331164323133231257441111152231222142243313263522321227142572111114315154711816332334248253241342156111731314245722476547251636113263715155224233541223532125212714232131624335136611244126283343713151125434184458171742715312443321452422116524217424326487435536513244573351225131165431173312174445123543355724552712132433513144132715245254617452537723324166365455461443222341771414225811324424542484823383741543422554323123128172742161436436252375171517121326175376112612623175146748163318533324311283314521316185121424114721215522176114246143145121821213522443521724132111862151841142142444331352253357663281316442331111511152751315342247124741342477246322677158551334153152223141512457231271413754121727334217414856552431412283451314683411452277312235511342642242441251111645115512542112236117336262345471423634262265613745112441216133281243347132713475212234541215235124222111484132162131361422731513123682517242641281267112727626117412251443426215134166661752111236331411442433274144324115254233143353111125614422888385457137261111323212123413452271273814421425883233233415732341113275243822461252766355263152114213322656342542341323311243412362164243154821322114262133388421285214345411252524133531611364215135216121564521143511241312375224421371574612312455411561122265224523828133524255411234324235122516421531162443231436833512131534753221261471151621242411131236743141126521223455475426565344312527141733255332316522325321265246413531632331111351211117723425172723251111131311631155636652342625174182514117113631143163355422438323443564413343155215624226276417546442464617422276122281321874724131371331434116132216171564827732132225452185421136854232744483123261221321233455512355422771152763157146242614181261652111576423734124146266341521224431512234545434232211322622413722273354218613123113187243454232232317221434321633626151437463223323314441134516731611247441323432136211632518714166415121155151511615416234225376413326123452211221334573411511147221141113357726536515663213537172434322115776463174343442126132435723613631653311211544132351765723611126514377142364341112312113445121472322443531451431374222712711472313542235343211416233286351412624644171332621331262123125856121433551223722464148212611235513167546363832711344462421426581473312532641333332532141771161216761236152243721168144122823323418321221162523226423256516335231216556327213421611166221221122162333214121234225314285232754111213614436462653214215725225225623512371323345253431444123723455513432533367241531245651122515631124243232863141622567632341267161131411434264517671212447434512343766612113323231338122231826344282361413555211428324124611211644432325223251123211442113224568523251132746124124223751526562124252631354422441736383212314422564431321323433843531512323133361768111316442133572188172112572164231111541232125132343154612331322436334425213754241832216411113722122344235732263321411562217362513721325173546321127163123424751223283747613645316676653422131331367217633523652331423471526331743421452262357121722131344137625213211617423171112111226433123515712453324161521842531414285334211111171222173523224414521421415252212325222814437145632213151432263365143671151648843441232221235236416152712133222242543241225313153523231341151131113513116516215222471415251261123131513114241343512351558572781272312122576235351182234322111121341686461611342213551235411377486415252412433621212311334633271324542332546243521474636127172356262531581128155653751767354131454632544342411115216544165141222715632374325545151515832345813532833621841151438726444217562447531214232321332531318317261467151213531434422141114233238286275445424381458336564221136143336321444324323662361121127441216622672311224344453155162413431332112514263734277335316853652471673213222773331711132635444241788335422516336363812736114141141172217221212213317551637135216114156851816221241243841231112332711261512728118322321261441124422222142773534423231274331223416143372725411433564574414372111217522182131513713613186224654113133181112352544443524325134366154133651253543221882586711464537154417223724522274273524211675813314371338116462325628325321531214326443151751251454751321414332263227122113223428557161321324162233113356237823353411837521821174125543724352123151252221453124151515366721814146615662111721116253572428222364645553153125721344611711377387225127322315115766214242352177332116415742247278524121511185712271513314413124112737316372156121353221115755616233141261236354335423331226481436555536511163127122441423172123414116144617342684115356435254211367142515331321615557738147121582226212383461876211532631234542433152213114737742425313117331422332138171531486435716635541144116353444323465126323268424384453413157848625138552542412842211234243315525354812222242316835231418621152414451518431141762175263852118831164717264144374116333243273612236262222265161126271234115438758222276312247132245416345151431253641473421653413174542552124521424133533363733424712456612122116645144346116423461575133515232222665342221264341163125645131122443132631612124112731554452655833635634115322222415441225631214636123531355341342657177514128242227254136213222113515443724251535315138341422144312168811363324344354222315171131421132113335782112132784135151315317138452147112186116411582523171425511752627332631255427281132635873363244853182312451256352447444238312273233514541554751165131411163812113334721222223341513512221353452137533113133171161832715367624133441542142574546164154376624624732461324117285141151164178114413132221147252831722222521334463131383323212642142415641551423244513784647616365522453122142841113714554752823631523515346371352322711443256128522652436136242511425215515146152116112344224735172366133135225623514721122111427161154543218363122121142223162682216223111612525474524242253431542213244734312322243224547635746641218371624436254416636262615415413412211143262871153143132435231313822117314236253124613442443411231164221764634134333165224454421554515145427565658622233425344453232144311114355211543244363113621524217224555125283111134312152534113161417117283372223264431481227111844171124117331712331141135263212321564172534243345113331534313216142731311474112423633532414443543112121425323514742613184424255148136134312126551332416535213282322214322112154811222663612321144535228351621441111154171316246222311452424334263134457134165316424431661664287163142348114612131274325247415415822112534354462744364812812222481586522143265135322323523325112331233135115524523155133223315262442614412615446141221531614253113321311132138312114367425224114323116744232121512351323334113348111351551214125331511462246584266485853348525436625711351223731173247251234463332246232242234264174646461242522582322124231142521411582441213145414112224652445762311824734183138412123243324111313241113721244364474243136531585463533561322143372113122283223145645515334174431131613825222266362174513311322564213431162161831334242731824612434136754843875313123324621426326272583225132431435466132121332112221422354113173551476548212532426521361456341218451323512624674161113441663632612244245315511122144661721744621411135233345132384153624421456844514113543643534558235162321412341541621241141522615116145251275233357126277646872334253138215274534444215262131125132133721113258142121452346414144166231222253534121211831114443544636552221216131123233414313573522322352321224144152226581181148326112516342223543654214623342354161172336215157214184454621647232222561652554442233312133117456474324212513117433153425725338675711225515133514321416415353633315421133116335163765254412161157411374171631556226431262341633522112234268162341335221354251664442161345216453246851711264221524111361718427415615125454623635337468225227248442132141484324416227111223141443145315252466214436241423121562424423141117721165223152231544341612667477686321326113455216146166525321173336626246332241251513214113215223564622255265156265225444223322371465371411427212143521612356167362245226345214332225231434153132121243543311243654151358223131341227426285657524546125525111655113236351156226424856653186542518144422342168216431441131712528213111221553555431626157413551214331743153321512358321344622245833316234127127222324656216241378443552534212428136523463723114234442446716251122631863137411221723152324131122234615525766118228326341515314125524121125135145231242312843521323225212254616141221173221442121442124135631511645133714133224175143625233331837141328831266845421247333324113451451651337254473273263151414534311134257513142312721243642611761224126213311513142448521123535515644143121135741544221322114212314134476165211112843226535572782615253838643175215541322322583752313285416255118423212331315243275416124355314464164243322131654127612116745561712182248233752315342272147228124121511222211652427353573143133411621351713252154512335115311475627161312412222437441421233123615555736362233411117283833423328642433185525365523226222525273214413348251445215455713615854232363434221532412134151433175321438342121414114133223814265357541531312152134263544144623571213111827641432182312132412216665433523354126442356231212163441225228615214763327121734117248231881216125633328233186362434216214625524334233764242615723614585336755122313211154722131332476144721218171752537113411241127771531332523166313776522743713153281153221112242667522318863113147262141314622156112412654112135211222126141351313231355326773733351161733235235513333341141424422221411134334445365233151114262312722113338232133263333421245413657234146111436332711617443111224823113113212517122416631641564425311655124135513242441257212333613651441535311231321411244522252335332324344712455413263317226645331262456831224635245136432341252353527553345114621211352442155155444732631637641388742141317811717321413212437144371121651336627343467417453221831473513341325121322521225464212442141464331123455173288523125312132143175561337111314151223211316232754751145172736716146121166412373252333621141254145364334714342321432572421511835321122253211632512111115124732541153333174412215511474242468573621522532552163532241411115531253535125266315442157551642235555117383125214257446434512224173313454582116116812221131228614115311561457111425222648231341425516531732243724113264123153273121158111625157356321131112142151332125521222153556473883845151234327311355134555662141551213665334554423133146552754256312154127534275114381636224412616613281477271231634766126743113452342162325484426264167371181512431222241475327524523351126364222466483521132416172733221364362511635231565151141822112453214122645152325632228147515217361145326271111413652165241613311611558152311318212543421218111413464414754614735147326441131455137323245214762234335453331743116334612132511225442133723661544612322282264644424313721376288582142141681316425157428224321114215343422115254313258114535638641216136165217122871415312272212253574421614232433276445421745652732113647421427713374825665121311424533136721254645238321356621642263236133557347454255113242322217384522241311422431311372353211335254342315412474413412614513121311267257364241212141172436425212181711323373321114755113413332623473111781345322362184313213552746217231247363123325227424214235114341462264815434756255724114112362355363123327145211255825276324834251752135242337432511723341126421242143216573654581713336237512163442265341674614312822374513464341282661158634414211213331241252115644212618641454127434135344631714422815122431317156321114312425226342511183231724212321212435512545567732255218212211135233111427212757358384244543332283713771152462645155216637615737183215433852232676322735114613126268146753133172565143531321514753423632517225617462843626612222341226235328161613442243243261223123111238134222362212613432422331233611513533122312116325233485132111281516152547628127271136163422652114524237611123343154843214123356324513173112115143333772623446363271521422237243532418637444171643813316385737327525111513233225347235521322145122221251113421113512637258443528222263226112211424137323546152628824465126212123314211315213384126356116223222234121311711327712338246441222384417244451416144361535526212172213143341431276166183418342814421522125413264123662151823322421713544245363511775623861332126454135473234563248528212645222116465735314553563411862522765152211611342556227244521233272165214314152811112425235357321241125351511262354672632133225153636224164178175422311341411522312614141224224163232615321224322254145134444245157312475415716335113311214322251115121713511124123144223337411352453322843733316742111313113433523542417544314523442232111545213434432247115254683242262414163614443622452165135142142151836512111531333176431122222126553345848744255213125135284374342812335124433256233451263145461326315432153125311172251135353253625421622343622323341315213113351143223532331216235511142321535335522423141571751242611118422412173244454353115833622211612361252123512132141252314432727411216131123363317123324136232231242153336262342125113741231543151141734445343438613754232438264133533221223723535381233128854115163223612351435351167715217633432714242262532361142152212452544324541353154281113221251274421543162222336265225267773647114752238114528631412135543317463521545213432323222143626614435182475113545131145124441643162114217632317642251625522313373223754875315336518241445513142141141661711547413172177162422614171541151134315122366155864515475117847232463511455163633472112178434215745243243256421721145123545654133461213556824226522256263233237154744666142246156727124326371231225815624151321732732162263465223111222221152513153115572153722436353121223614532164364426713443354441868541164454224542351566331115111462562442455433552416562316125748211154522236343254631141228764332266128211512267351225475524765252172621447521244447326621214574353113465145233822145773214275111625142158522314323328114428234246471163542153122483123732664524445534417454258341154782214444352425531323342121312617453578354454313721871114265152121346115271317211511143422737111662111838111144247731425233425465213116176344776127353123611515551631716426122111131151164374123644121514163232128276356333212172542741276535515226215721446112437361451157626752645411243151231251543612461454416544117225332522323222184422132316515553483121364243344448422424235351754432514221235515547255424442335211633151148345446383145424424222353225824321231151433751163527122625311751131241172655631411131225415217411242212151611683338631512211212615241616262123844346222232226614362612213151227553666412413853413661151113871118185233211546242534863434152351466345576423347128141423642162114341131412215657312613151111323113477468452546481183523135442521421322212412218252531214255424341223456235521126472431437736631261443853232756124421617435112523733248312352225121852143133424271441232552824136473121631131233211383161672142327333352141456232483253571312275311322211223238264154283364322172162423384636484541222137332458433243525321715566158514374322251634532365628446441522411556234163131113274114221453245524311541743546276652247142424551233421423461133216171114337625412423213615323151453354135325271245213532625234347143134343636223844541216328136861653553211161353113151444846254246236144435411411114412641281461745512511224615314444181321821315626732451121837114822113176518218157661453511625145145222423372326642453711232331614362218531247381345611771535182111231323515731844617312621442822321551148332662136111733614425136243112316482365226251641412437555543141151345412142221762141812611326142236341674523225113544422225531557113282315412583155245363122613665833725442352146432422311234167323162558531633111254423342121442114511231444442443246634445215234712113315445162742378336145437111171513221531243344663251372141257233314155362244364138142542372451524635113124135313266814166154234322114121541761386432711234766221453541323122612315223111216121216142434211146285214347242464256367724741562412331763232156224274336542261632233632333111134251472631177523612435123883514323314345123881123125134213637121114171623225445311321335135155247762176771412138225152241387331227235432776145122326314213363543454174222147413312542216215145124232356151331332421156251661435324611152356521218121356224221531152237134221255325712514286161125533353412272273641554142144462572641553222766153177224323544177174315434352574451561631431211126417135136341222121623237613118231353413633133478344225542482413637874523532271217731156155165153148536324416637431453343417671723321444432223221415115212411232542373151414214374245714213523447231124714642432412183612214111818231322126753221211712361141632128221144171113321136541526136431541315126151214431566542117356254332625244461111351154113443632637834131251431751432854324162442263415524322144235528181531231623332211712331336116128144141533145351231314145165673744527162181134452473845523122522461416483661323313442314123321377232244517526114416353322571523721622421738113425366312274143231621613333414435153644218731835422671161541447185214154332113125443622235446617146574152884173211152664441361436113312111116121246432336122852223173343257663834237484215166546435415651252222317141477561134117443511774165118522144123111711243225313411531434817225382384437252615382415864174724163111141631255572651251321175622341116851411317154815722413711467123281522351325224113172332752336234132174566214335163263554475113345224213171123523231441251423311235346264225835135255412152746845162283121331312145113551563563324471435715261184521242131233665285143335832516224455431224238354744842211143424335412334714633125286442444123346131541542223232452243824323422623646222224236724234571155211123455122244425724216258452121421131635322623426345621145474565618143241621335753333113216323748277327311441241114346172242442331156341152177262281253611523311254712744152216137716418367645315313322545253712353582236152533814173351821121511743261314215113252123636227353126133422635352243622172214144212553114345442431441131444112556532548434453331352312621227725417343843535522332113227221154363346417522145173433444363343227723147356423663518716261271311722214284626156518624617334355634412143131344314652233334283225225141423316631411327621477163424333211434257516323344422814413263481415444155611554431341345523316458211253233234736252233373171641165525712642834115122131162354434632351744533232537323321412472114362273714114442374315545354153165111184515114344711231132111112755281512472273134112776724124456132273411126677617465114346253231323531416333323552484144657242112565534614142324444121461262541648536113237513221132315116535161224341221332332525213515473238373161165873618123527551637342412556212421213261411281766245273523311314214241522121325432413721223324515161473352714243112377261617333474552355411166141125215156515426723323452118115226444624265124513551171451237231231124243315371254251615536363321151423112341451356335243522225113655623613141223511341353753363121621246151144515125221363621322714286287158331362224387434433423412242116623815113342322112225142321383115622124414474731321548112455113325242253471524442332331411333236131213644114253132111334122133131455323315472445113322125727112732141722215731571324617443621612761322414312231264152552423457173244126242571121474554545372121417151136161155121127253122372322243344721227132323412412225671364575522163341545146723661338621122117315527215242416322135366121563123254143332222334416625431351532131226373613221152454255327447422122524534283221221331214555361616183412221226375221441777211152324418458134245531435415816315121138235176366212311366174514261461331573421171563432151116624411472362246325381113633453581134413433378133751253343111226244728113341564415774441724553254362714614512411235212111351646824225161375352438611241634246113231337311541411251243824274622221251221554155351621823632614262648711266243213122715322214112143341212242716571622731644531365227513232644386121342214321724414253421325212112131111331356243221312424526621323762111712146723321451226312312341364332653642383265612242112114221256672551236552645151322522145417161215137163223121222141231858121233461428842415281265558157221733321126623521231541332311432351556542351212571542115261465443313424165142144222433414242117823372331722522824136223618114685886162214546712133342223217662234241631535511217424436151141544113412547111611725314464112544362566113263211144461848624541352513216454242421131524142184333541252347221421772517732742851113211724421353456141633553212171356323164223541274272366625311123135112226326321213613415335251412512168446567664521353651626313713123483421757473321356113361626462364112275513383123121662221368311483122656231111111432314462175113562825243132854258414121645131815521744554211382131112624254412724512664424222132836467732511165541141144154784625542221631112466476425132742452462748211385352611335252121227221232221242427115112628435727162461151227115711522445286133822134163244342544121443221463211114374382541511222363368442134747513114864143477141621337388113163743241116257187611428274224124134572153376324535173211215443134632332342211247431133238245124113131466256184164812831156486423326261625717422381222632563337444142514186623311632432114211434171425826115733233721422141551211345574161222633357371315311156631265435233667121217133113653741624822552257613325862215266113453153672568421485621273144153552361147532213177135135121243213121611212134323311454233462511528257131375621621214313522538311624223314141334321114232616184171612316337571257221113124113251224621451661123412752838457446275411645622528161371144134124213132261224232734441212421452751351542123252261351163643235428623222436842556151312524161321555114155125122113765521281521616261211624363132162362124257453511422321134242737315716241153432312661241432436761114415531244311157332111141615184161222112212158162444116541233112662531643131426532248653763573112131886456156473136685517622122765361135181147286831135211145311623437212755551285315127281463147444712223221764254113121632337553432336554413312231335722341121526116435624323614752363251426554465121322545745762271226256234118455356148145163564167662535541175522131371664111632163121432811632227341843522257527146661233223474877521151546624122336312362136363345525233327116662146111414257451121711154521346211235165153871843648664771812445441413431351211612441433467674172511413263523374634352385425225115162131411212121123416214437221133354531422126311216546333662613564421251754523121242523154837551143483158541642422613243436116231662331311437123152742614552134635565321171124413454556134143711732674562212264421272726414432411355473455484434277242231214355332441771651132445614311261185121418432485252323454413418257854113517136445544681323126255732146542657742642255334336114522421235236545143328512482131175163222256116532722325172162552315327231263342847512123143353447333132423524334271543672313152181412163414133532632354621123452133112622664252222615163613213213261248271434415152311232412342115331145223416212143582212326634543436411612415215381282211423327673363731226441411141136147212174414831225153735432871242221141164221354447253165631375163325111213671331551413453612744357152452137131322143121421214723226733417775445721122431113631141775121451454111511367436822451253532112626471332431542353132813317333117151753134434345713245511145131752133422313111536232272647372223253172144521361171322246356155634642154181834221171635355123515154315111311421134215282224133225711532442242574431578665218431424215412243523141625214123221225335412274322531237412238335445451544365441427243585323214711481155521122383744434848168734763544433162311461377526222814251621311474252851321217341113143564322721513324441171512133531417326413331615164111231671775613836613335426134321521736221411233345152126142683455734242142721245324235262157174326517612462313137315441433373511752135113214351344663724122111278353627371737273111221143161138254368812342251273531561121162275126344532422555644837215726142412316138427763737141134687381235731311321221382517543131733143157115653233724741243127422413465235133153266254115114344157231532351331585453315324111371441112232827421126123363421333423326341522451323313144723384221573411133231445442427335454432224523161518168447434431441143231145523537222142284111328221515236157214433222111232514171711212224114111765471433175342215333115333422722231665144242312252215675611722152441421553412111131313151363541534452316631441221634266556176731245424621421114127235312134622251313121313141153133275733614246138521122444231221842431216377661281242612625565132127211522616332111551322131271261553415147644144362666263762323528683126512741284116573654231521313142156216126376214147411122138461513261533482615225563385614572441584212114533112314481425311132516772535275811412111554254112253445555423247133521326376571423641213821381443546544113751131563281333521266323224653161112161425325153452213124536418167445223365741311117231642456445322141221511133225514141515243327712625415146342383172481214174663423552222141374132464136354111745324751233481656511245211213153543612361411321265752311525141763484724244614141661142717475133185142327564363621132143143232342337153441863223246512153221163633311213711614265171151752544714521313321184514114623341722612251224512415245442334637131231322167238673125422354215272623213621357355343471621326167643523315148144253135142431511251444736276132143332125382314852221672577744541133751122415131234412814731725835838244254724132425251312283532542732435223145822524234125141434755551217723363122131515521132171112233123212421133213334122714311552536315424325867542342431431226245634152553158131524324572434161632625413656131617111115451713214111613611215232334327643122164425535316345824332134623132332455773411613224223833441337174223175685411417226173323136455248131332238555142416215513851457824123364546152121112625254541361225516531414335552512571661147131131222315733131136466841318724626323247115373534541122251172125626246313143415116124546244115261352214224261514326631513261233114214315432231312363544664123166263131362411135212335426238147543314232261313336615212121116658132165485811724823312612212456232134222212111412513412415471362151344654226652614531521351362325244122352117842812661111131513214841341618162131216362534242342213231461434332142532755185311141241371372212853312635422354476622382145712571542112831327555383513121432516443156451244514317847645142756242312461133143665242386116221226422721132484382262156315743451148166766125151183411122317651514531264281121121325252241621266823531367187422165331732126225142223522116351126341352234272824524413471233873141242521762422234114812111244233233371274144472427511474735755122314135756221723434322111512354421212313472655231244342841144411272435222421272111651462352234144251132363116341461566234622331532761237122162757445244685371562227321255251161452283543143251412568641113121233672255527414865768331431275742441337712722644544136742514321321225252421127423161127117132134537323221411332367153573743164635534155551111561211123726246436177332431111412255253354211713711411424352155454313772243341817134211143211141168513232538551761124514571155122136414234542313574234121125253231622343155732664768536475432114514444521314561317432215564655235472315141336151126224322244214363435424752121152244253134214638231376472442212453474481155455121123333287223145116215621321165436354722121673412778414385362114423181664432137167537523121343643435611264318112336115147143214233425244133214313415241145343215651756431383333125544831522622141652614441311311426145322362341413312135346512362861411271114436224421322121277257113364414166612114533181551652582663337547161565222314512411381816718372223355533811114221114162211122615125131182221141235133642231223331425311724421446331313443321421143322163211441676563211253443474225422324116641353666315841234631431236213215215327722325437428663312114228523625112267622421312221264576118312254753414221324372325424572432133127422181523655422182242421562174374633215645252234352311175361132572631111144311224232211314242464535112342523122562542112536164414221352654772414754726351243123445224431231431145173152814224624225417212332114161224465321644233781731434631323414115311645611242443815155351122158364722454224241242451751122212232632213216826644334133161133615646245145233673144212153651244221623322235111331413241356485348334347163342152122623115631655512223464555415411562116171472126366233333321281123721241445744236123313212381418523634213334376223342821352445766356331113423286672342361755341612523334426132633535611214672472545314222854225156415662412232576231216145365322334565152514641328443151161271121221116344384332733356673741571412651112111611211121714141841214171113478356241633215383131133126314132221325213151241415473114361251711731273165433465142433233217224241233573224233412316415172234362617217534411524133213486134345314351436124263373122111233374213354132223214824344177463455514211251366133455334334115411123336467151114137432125343552736225526162613528411482233532535412244333456224227131386538243231313144264553454123438784815631112616451231281113561735582824157347747435122353412214126631211343433844563762444736114373312151213121663112158225852335341651213321727173251236543638331165452342442132176171325182738241167622237462311331152615545131348162581628425247234313164274523321212562242324362255315121244224265316242111132464133433317266214746353114356738474648323522312734635514341414665133423324533451141623143822317235431614617232731462211733424467728722123724573111121421412371611225324111551514521634411452173222325316712312325413241313364526532131332732114274714122333441154163857532723324526312141421252342636123182328111433312244133671545344623143228623312432312145543122172653117723321732244241264441451641162213321112131282332313231651236216514182227176524373122426523144574711114632445111456241362244146511753323245213624515413561314672743234483121617127135513232426224121572234211531311245615112331223211125425432552321323522315165226367324712527452623554182236446174532525112112164231242362737111381312627358123521522163234166512352442577512514425533265212135712321324614651174413432221311431246625521372855115722225514311545442862441547147526525711844112245325452123831723136424741662236147355226413263881252611252112111313221141327238122433641136273235446311145115415354716341526542132321167552133825354435816324764422231613488611531511458565613327361115521334533144128233415624623222111212173222262173224165121412533144533541131111213482631843223424111172578434427211111366163234833235315211343125662253142732252386122512126531282221635121222762511631721316344412755527325233315224723411114332116331343243143111
621445326341334326111356176115112726544483742424475647153774315284115711834454432164343531245527445264112535234535152444614255614626674137414264377152452443436112432115122241454525714138232623125341452512133142251311753374475244222367442326155131537132316521356176212443121211214162327214155124127241321284244435644533611222141536321634241243352336152733523211121244343571721564127327224211452342611446251721362411522183411824122111535342622341722353761631624555433477366665243513322625232152521843431455643412537121252323741154114252332572837176437335325575361567125541582534663462116612224465253845431312332715223356423235266721572423333141114741421124333315257756131155622416661214156122324133132314224546351441626422232122625564623715341126112552242351228222113255146272625665515313123134461151843272241115565134181232313171317531152411221651244341125182547424352522272128173446171261215332274315187411241356422111282422227417141125516273816144611324311122712122312423342742643226171463884533212422613152143146521452412414433712312825313521333214381283213821511766415457151281353355228454725642235627314438336146213114717166226614533665132111318537317151531252464456222611274474334453654666336462212415115434736415323354322374331211712126551122172111157317411446444131311342545136721411312332334343642435654226383323253335244333426212362611152321152133225522511711411223217632261648711264444643631223112466221134741338173331218441242317312651233135112411784311222764533114126771756212411415523212527146341341357177443113754151375222353631372422162352116356243562347416256116582464123571214242483465721823211315256727213241341461623376118321233362111423343224585123147264312314123427211262416115651645131653516363245224213565614551111242321656532321534271251432358258441424522122532547642724454414436352412311712343443122486151145425327755431553522436381224321355651218114512426216731431325144241411432451211212565352218621217342342228134162711577531341334661211323322572323722242542141223122145512871474212623247341114532646515212415153355542533666321163562312145211151314171423171514388272322171412517162323111332761118222332566124553475631224241411224111433213122314521242771352223333473166244463544153134441655212281311343323266123446362222474154717353153131431441111555211431572133271161132387223653212461223414133127111462363234722527428144411316155554121612254353562242467346564133662143723266663318574713141262124375324325223244441722143251145272452181274215312221324145453125336217112853211132352126813251156265441153377218111222343265131452244522315411471141116458121211474627132124325512721565164142316221451131121366624272146253515162732711253872211324752532244222351363116234215313336721733377323451465171314115213522253331362511322814332722454231615211252422424743411241413133352272184322431132422422343338136234452643233511126333138131467141233343144534645363121267617455533164111464222732463336331642216223112112687111154266452333254412315211135155324615271421126521817411271252616216327224467512416842148143158543432132212362311753284236422211575624413343222523765421312424155335211533163257416474413312676334173112327144221614414467223265655172121355268246554154547315612342373521717325775243735244511124311447112218351327424622121137114642422514115743241423876327135821314343114511315576137411446123332621114736557744152551115542165535531572656328152125323334615434424324115665116345165111333215145145122285326127723512232112441422472436353662338211342113532541522333163655623111132142285434652312225112313111538212233864132117378662143615443132434322612685747838217425533161842853552671443116153253512144514224553418117123636435325317422623467162232125483347546811414153122343152341142215151552333523142611232427111632113531273232352642515875128535321532312233327251122114343241231356273134572485756321815553441158353432223315414381343514314724161122171436125547671356132161162432233334131222448212317341261118312637114737121311315713673331642121422111235221424344313341235221851125211231121146352112245612422234164532442111121326575335151333141133434122186262631242127783151116458513752141112113421261113262764585323344414683454315432622435522233121111615741212333515412375643116833112817511533261524112185432313326715512511367632113641314235224122225456136166346262436181344783536271271532831121165422438312523211271636623116332285412465343264564321311132461114833426822232321475145533733551562442122443143166476124175762432416113252321132122233751211474241387322321314561436131626444223133531143216535762161713323621133312342673115434412362113124122412224314412142242112472215225228732424333626421441112131121124113421416154144174625132351153624343441252442724521213548541242236167225131414412131411123712147311441426225545822422115182114352153133126764451723323442412615416433121437111234431522342614125113331451253585215133321422428367425231324123661821136336445534255323534121734155231418512234868141526433112354374747411216284411157454311344344144154253481238131625346152416472813214726442431155113215175114332164713323214123824153221431611334214835432214632614221644362827868345256234521812515462174112222243461152121137356232232513415713262234235243221115261281113272266222262226232743171313252222615134227242713225251142475664514786413271462151641435261211126346352823712325624272311742613228244532246224674345172131112416812313331615251427264761811414526452741432482111214477125363112413212643635151716122224438726422331321212152814212611235214384235116322762744185211464651212515463332133141472841255255451251132323471218746423334226642431178413121155111143741514538181131434143587234261515117515262122113444432122343112243234632547435616121634624475262431131412471321141652111223531332325146162736145331413434411432444246553143731712142613252317331426161462234213245332224131363841141155172143587111732314211311512814552131411144415261211243662131323254721473453523311772524626213633131637523635124172234114245225261611243136537531322335143272261323124663215554517261623177377732314114355121224241247755351135526233351265281232412235143642231342611153121161314464421115212153715115414264111378614325125231113545425752114422323145132121731312324612345545826651251356542732215465146131446152133214414442611171314632734336244173145135162845741233115414532624452231111231421767252145444552122713135321733222332111352731347141426271317442176231515113217542646553125263217661227564454233414311311615132738634414622526652545235435154143755824164336624541433373178844452711146412765223345715232213211136113221846115837181552647337752432247354212412141345436236465257128611251142517532644447431424222274153436514313155271332641225264423423221151133141311111635715435331731222432127112713331552134263811241465113561415116174517811453252212333116155142212433236254842312164233614713143152253141451334275613122144111253211448726223128216215345367212364771513362231215612243516316417261144263331525772153122646818413327336112364113211211536116711232324541242135326251265333633115453143315346462233238746345412364565123228633377413121425626274875572734871324313434813333335462313365334431357113112225223266333273563172111761376371743343343871622411512361746513163535713452526327622355211135771235481224333151362161283273513315111556351672342141162245215172223121471348614111552231632251244132421484441243472118136334111358331238226235245123513342563124421411323516634871232141217466482515113123527312112164225134542521312245383145851323123437423315611234236332721613122345131612344816237332715432124156322623264632154715216311215241132246166455461111384742635463441243362111652423122555526525413111266146274443161123121522144123343311413485712356338456517254615311263655238864276242311212626362351327345534463221231144131366437181613211321642454138144227135561442552236355121363531123665212163134451564731512313256461124357236251332333218435336153336116111134362137336514131633243146173483116432226111351525426342233112634155462224514531351672313637521352625334142166341235341164552113246111132631327321612441365111232647431424614122111428242525643641333351563524127214157212512143523242135144362757263141546426125667121315338142132216571713142218362423211611233624731311222128553612412724418241315512435711411421213452132223551361552153113122352317474378114651234732416212144232231732641121347141531571114512612184214113622613181754323513374411154646373646728465528424335682221713242621232616153621741527514333274111176541263441231725372225285444122213273363462135634342338243541251426263124716521163785521542474212117231171724155315231166543261141312441268453312756477316837143764232733627121243356331321163135653411526471241142722123561461411111611565247162431271332232541373332844523524434421252264181143566776234283612133213371138461225123847421243134475223246613212213616135513311146116144512672224213124766163248533162223652522138451612244445218631125252334181183315365633281624544124335386571122234715636221752311345544747161331722173112411142625632422216681835462327412734874244261713134126851311333126174231121312612435173232123141423363115581416435243621734613558254111345163442141114634412213522422214141651444171315654181324655344311422541273574361162817467135175215641182254431865472521534554142631316312114123135242534515141344431253486434651133141411577253614416343734542121122572564323144521323142633142485122772373512386281125236478521114634231161253343631111626224412725213231176613523726132333411433152641452551125735515126231752151725553642263463117311752774426273137121116473123223151441441413663211112217832114131312371428333355232114524278153481244446112116362781213713241321661152436161323415411886744324453141222313173551822571541245711212321225116315126213334234261223215415123262412423213522342844333436443422444263143432131887334253242764425521132277352611442514511463224251424211456213251313264214152333111311333262165615623421236321214131136276233255262157146138611524228411464531481652178125277222354374243615143253375227213163173643741441376434531242328121264243264244226342156361353315258143163313716716528461635521523312422325331175251442136612266124811436734122557631534434181257424613444234583543385636622132255211724347121142155184655355662671122217346141122225361681212311236256551413544452148218311635531412635135454412224542472474666134326381175511653414243511632121661312146117316262212342545151335532541145276223146617284272323412242524823136122178226411123541446113126874173515442434556135113616362362313611632384323212251743221153152244446114385532624181718763511514351115145164171635444254826211424728263434113143142831333225411123575122133226217134662124115441384413245523123161814228648335353421162461311324571236316232542642735381631534132331611111662353312143642131116634222612413326236141123553412461562112131252552352155442111333364362141243362147641563222262314345341537331241463354126534812126234133435333317226213562174731744214124171115213363441723121444224234225142272323425315722415611215352541561632534442765127325232255432223345436453431822661732334162285737145137211615562326665616252134543836316527633481451156173351644111534314413436411341352373235842258237242121521512444351632115632644221231845484122271247444622414311345321381455642161114244622235483332162741442133816446641147315525512231432111743761274622251144131485161424112112325122115551234413112738352423132116131711678132333666151845326374211231231331458525321465421421632412131266142157141315814232111356515141121141163744121534541534223341655211636442353523474111171376247733372223322632532152344367786262267151352163163155444244414323115654123632421334322542614241325311811211142137464244234142841452573362241524562571832168134115313411164211152561725237235126151416114134316385615834155342323133512282154361412114328425811162832472132442242731637624323424532323131223217586423123662125113251218262334251214237524133714231211535126415241452124623338115331225351132161651162423364152552524417315763263374363326726253152248421323542425311126345141355133341133342561636324112264514232715341235351372112413583771113225436487267171441157713244124363212453557123352125318354122252766167313816322211471262354357413223153411362151451182381282147251135231412124232646578332611357414415731113114313411771116247822773141613774131114276342651463613245372253351222214111331753243764315133223832424544486216642363311244285311823112511212125111237731447521453744116275712242211242116633132121331227612582861551428153245534124547325653442231214741745623532146113354117113242453213362233221442226328155121513426815124352611332714455365453162242245262431113314252148332518613542621255137216332255434255212232485831151242583524635516264231343333225423161232172542455135151433241415154212425583423142252356512142421212152532325271161711413312157137273588135518123531382335417736453427114743633321141372224144621612813154243234413317837272642531364853171315451124422212745276423642243111341431446415111161345723332113862324731313144531473321487163141544456517346112215125143165212772121162715241311325184252441123122841133122623622311714351313117411153641223241621516232256113451254214674623734516167135238341146321154477524155214214134225723127141356611243162172564116227155226276736612461333713145821386221166363211211357736242155335311344521342462222365447131451143145164423283133411224625321751121428453122474142632233443474253333423711512331544261523575535832324486336311117461212821215332253721147323343153331711134312151161713115214124655325241263326667432511313654145611612147233275554236412455131244244113215323413663261333151375225453233364216223641115587537212424532142233322221722342443822133236513321211332374312243327414171442227212242317434354244631167417435471382672614211413118145651163521242182512542712545534322116631842343431211121621422343223574532434241442441554634613341111175121112716252147671616275121525338524352471252234614116363511412721473142125255143214123668245177411311311263131446181171212222271224127411712161411311564866118475123423342151441432121642553111157146386223234316322141625526544724213386442415124373137117324823454231352415421666231115444112144165222175356621862226151463621715341215665112243171462335841237522621311281514141447213113343221312217722325223324114112118141326231114224164634325121435373281748712252331251315243112567263221566246312333411252834513773355736335122342113134241234457535537317122313612327321533367165253351153425781435745113154653746625175352532515313545752112125132112333123512214335124448414435247175223152361663241431412652152115341341141415421634121622272431113522533641366123542134562561534326654612374342661423166552118212523551626162131455162672232452221255425155317547144532315131442555223445132235568232444584154113533543124154154517632157135434284642512413511118724536333113141274512413163341655136141216118435232414545467726127314387432235313234661114126523321363242584153214441111313251522153233123751145284311184143712284347366211212162111414533323631533214143785735342112118462473145234325222525342561412342143425412733683431782373416321137732322164633234112141582111231513386334133472143236342144156617751113162331352312324431323132815322747732371117214373121436137412212425215117334324876135322441513631361562231418362343221153276611234511551463632112423275132124432116173314158781136157525127144633116234461425121172622121581221455512323712335488222621126214214321646545137636465161143255115241311122641172611261144435347332323112224674582661372454453411421133723213372452322262741468433625216564633641111623562562425241252215664175166142253714144663434152121232324257335616431164662443454218815335482121112341233312425261133523765321123238231225613332114421222312128341315264151513211226332344621544365225215316142231233131161222417313251175183346223767152158552247667121123317224121845321543126216514162111141255356262572233726576268221113525131653165221121344312676551422215127232173255241163513138241325442243217325244338516586235416445646443123748561182643564244745467436213211331414278551662136362325124222363318712344721212123331624477212124236781216122811342451221163318351225421817665561713614335314474345511413313246232561231131421155521155337333231152222316724324675726255442731555331231561143142171154214421548315132555211343332225142163222281752641112821622131124342445244741421253332116255267124721186421615432413113151442235212733111566267217141711757412353531544331523654643253126567821744231561325113115115463134368325123374267356412222516155823232141731155231214847462415757852514274224235532524351346432141125515211175465441643412485112111731744131125426212131114734334355164133446311315452733323652644751771136543554566532581624513342113152743224651443532622415544233836514113612474222234451126663464123117731131314636247416137731176433143628121425123315155314143211132534224214341141266365552331111475216756111312413461373125681421544441413261473722351237534337246234327813183143171183823161411613533142431154441122225224251155763113236237117322552212834127725774221322532422372351444823113221533513341456412562111731672148681152126326148211831561624721444413453735452144127711411111224232213333232454333512114343612622744225343573422362567611471215224842651153723215624112426616327418232176371716216327121433365561126421376642331323218323431413211325145283314467386311531313344263142123214374553111114333461871131632435216252441515126312143374344747353462323342115412558126333352531722463111114753153232154135631442112256167356323122435714128723385122335122553441633522141832416554155524234317121441126123655775122641452314551525342414315541713211223846715356254433445513115131471274561147661243233841142341822452321226751632585221311146165566171648321116333171433411412327424385634414631824245358241536214431517521561645328151523143336164331256152662112452151451111312641511632211521665415141353568836121362723443221231216438616215822421144151612551457234636317312162412662648522431131231414733228121316733422324548315831144231433471751322137712342423331125113437414112234631131551764161455345832443265644224157452413371453243211324481811315223337362442324444132112123175743116464534521143355245355231322562463211267413432473712353561573212152324713455442442116532457416224333435362132213715332426134841484571221861252453212454284122411355322252352241712327122742441432171115313311273563344612327454222112141214512724621541436441785352611352441572335145753236356167231215343126215824317262422463543732744374718131221332383142317731311613623221823113411216111112345122142222232341151664312832312514213542176423331431242171516231412323543415268612253325333528413612732512643366631752152282641352114641252144461122212511113141113125366715147231121372152862312172242212336663472463182646645212231413721631264651143458414612126214431112436351512224366135642318522322473121333225111234416331551214411218352825167832126452621332154126231234213534131212216836113432642184665723277521686151622336118347521343542411272533345525143452213726311671264111124617427811621515825162143132274142528611281621314151312116362283241332141728653344217226184441243212264135336123131511824111311511113156212345126431135213344152565652512786166331254123453346122234451128751223211134474831351431344531743321122324158113228312425411323555342512743134414151443522135232335612126523164111361252422524271312225512513512764513315842154152241242233332338514232211371388422116125161144552135243314321417145621223226251428183451185241241333422726411432241313511211164515741567343153273127362253327124441413253233763462643361647513252411343222815322651123215351336443122611413264124417624227112232265244342333821411843531114141182314123582514431142335322132187611352381123353255215514313222122261535642872311311722231215232253112126141476326111227728127213385318242143223212713486215211641438432533552181151615277111632535543354661153385323218352244131724224325285214351213233146511754665171313114725253143251551117313518561317132321112314121113311553433211261814224144824131421244258232723722371762375813211131222141217554115223456232222374134333328166435336324681311114734623142224425325316234124446742115781331655213322311121126434543333223786421261541316111431852344177223434254371325645513165114243742712332113436348512267212613151631743232611128274563774335341227314553251344211132344338745421113313345326313113211121531657461111161133763422351161263135165453214382241551121352451131555542141353332435234532436542578427112471412421234471322124112523716453361117681442111312532824412564732161176332231381527453283344246123156311723354113615564543232252612828353211311124123115465713313815431255133811735231652163436144353247222234542228133347655252511245541434644123132513751355411254121238244461521764114844461385113321553215236276352251124741747433432361615115321111372542424755146261257224213445468244522145353161333865522114426175121623232175323323376551414243261221136664125427212184428822244224423628124521326623456414263216456332152521843315384122311521864313433251231411811215347882714531452667462542573122722165327155338852646262271286222212642322163261145322232231415314632321211455135411411331311243732311211352223231173544412217121662313542421312315143243872442225113733143172322275222153314563614275723226612342121161711341341334262361222143226724721134312312611333438422123881215222433563251172147627151112333221334151543723261124152533256411532515211533222454714231231453868473312511727115323344431132215335254316621232221445221615122252145454516126112231858414613385282514551371441855211411521421122655221116321251366434334163824644641314757316214745713522547121322533214243221222722434117421361314641141474312444282134433144434148421622522365421862526515344321322347265112325333222435275527267552612231266517113774221714652348132334422451462261353531212411718531147462161432361331753231867152132542752126322531638144113332574411112242123551273615823643715221373312542141382212214331537172167214362725321413527123176332322377165214232251131272123322453612238263231228135551326534324114532134112175154123111366338321158542343761318125414442465214424211732147122176135452624863112224362457312152531526516135343512525153127331422743255716311223124142112374312434241122261717421412431346124331223251555637442621156116512425327333111143411133364212421143261181534441154355362212721143231422533457171212471127516581473747417553265141352413434217521821841123152632743326188651632352444526738421111223232333155335756431177236144553711516157316124821467527114134364711831167558572442643113216631316316612312214112446431732366211384662253235127317247262211455561451313315177261221121122576336181121778732234117381283134112224123166716175223121223167831324652625653223633831716562466236433146518455114586113112223213772622714236525423831141212348311221233367137426585745343148653865655615732245341431252511135243813515656133687311313613211273332111215411643254525411243283254213122151443652162324241236671611111572211843453452423112232431221345625132721745223131644275257431225124232131546614123425321134264736118346321443835571532334223427132512323344371187263646432161325371337243532412254634125313323633636722173164412613153611444322123421512313313715315814614211845451332254335225184527573335327553517112525211543713651431562463311535231131247821212254516574512714313551145118526314326612252315453413723643363845474437334123572461225363172574412615443112413151221432423352437575546345526175823143374261548754442755314436134115431355521143362382443154112641111273632124346421223352164427616348631645525142641216476631343254114121528266361845131255123253541356171151746674214425436454328313167112832322411118353776315121354134475134232212124242614831332616154574564443455612315511227562265423111324465172712122355515431456331528136543255145437137551235414317146312824323352153444323561461326416336554213161141113266331412863433353251711126817858676623221463321223142611236311124252445423456871758522272111321141335333421356718522313138215153331333753117255131414364548217643142253221221546411122512122133535525463553432114137361516251114711113573648424543231553616115416612124511416813823181522661313216225262531511262341521484114654445171825118442435222712153641122263322174183464415132362812173612154134446214735214543213448531163611231481346427331312231274125727335156312741371414111411154742115572831337121231231132668437627232451826361114122222411516531611275223372623231575425123774335124617722117767132614215456522221651144223314248118421614256218361517236331167541511474343416246431141174316261544135344424142331572522214363386424325717236824285235665716363312134735135511116613212152576142236465455275322555315475123223366244433153211418512211445225111654524344152333611212221634326121114432763421167417143882162761261412715521132453143141875451252552372124334126311853352713622156253421542245361514243851311342843141512111425414211713742123556624423153334734113441214641111513153421535144465553312743211417332531381551465161623643242315123156111246134532526512213113312136652422235741311121533522341626221284811351511583527246431226536436224135223611361423175161355452131213436244315243342131521142115411135333256321236122616154126244412113413175533266321132231126334143231242175775551651551421433222556111211148233323332321313566211122212142156186122432122273335672122241152124514242461111161122212352112111341328323312423111514271132882272841142122441315532232153224611173212152414321151314313342442141322872613115523212135521367231421213437323211137141615312383444131332354243535178342141816212731623351125338713334244326463336223631781183271331273162361713513117135143655211523213224434114142124141111577632536141134734323477728162516323241544165242337626442341514121121531621428521345186322345536323157124653511513733568361437154427623371111612131353217513333451322161223465345216354116222321141112151232817213353222216132434317333111327161652331341256251811162322231445652125324146146211514138113222646214611136413241353356112541164151674585717244382414614113214217324588523464186416552215511111221117437323631541824418284144112278264578737723554524182578476234621111231326521344223415123554164855741471263863526421353242385514321732176323242422167227855381732142232664531235216184475136633764627213113167355214313751261251446731113414174538116527422223112823575421113112431663517324616421351341646167527248116143121345251715456265217721147643245821826321413515227353151142811145234241476133332423327423213621352281222424331641232332111112212626113212613222361362133244237614371783111333336438343321432241135456131611255212323426151111513337122717137651114235346223714853324237475822726535117236111531514113153531213151131364231211663276246511552712121626325775464232221413212212622332411132643462525261411321111125541453514354758723521377712223217341261624225216456435711571522241421133313442355321273511517211225158431541442131157221323533245118115221654127532471318221271113631413766531123112442118121331264756764217852112751133135112111322244253536185112326212713622123821214557612121771354113314172274521241245431231432125562162174634333216234626512617163147332485323157243313512312242541122223511126165715563822124562323614153142524852127344554244363112231151413116121615345525252321311811631652512223438576353422141624627673132131131325551512452122151224154366332221434321226131612341122663263425112422223112327247561618321366167454321111311541215121331431132223173246224482317431353232561262311111517323473386731381433223211844342333554143352334134153615216162414534271815661612452111513533155261131224614343263452531522123346426564462164216645282126212174141641334251312638884222551858612226183527637621645254622581164511614437557243166336243123731486251222242624376235133313118321417812144738321342382217311563275457134436327632512531285121561354245243133474415424114144727852215211356347324233274567831652241147261232237132527374351214213522522212363333714826323413243413525112372264421231552516331331111412352321666653138232666454512513614111272372242137122264421353411631262731532171221266632132114782141332165114651525142213376111462514823254174237233642221212132543421121144312253541441112246275432171631128353114165434387426361223123712124812645325323342743384612723237244133552464555112355621336356223331671723422733112141122374871311126243143225432123315227426148521312347667111521166652222258661221232334152452625515136524624112424321422268343312344571236122545514134422252553632321447623467413125711221236512327371132118834626215433161771284233755132624631231313233715112262564412831735251822324527215156138233276242811424133218425341113447334212224323221647634414112233672321381111263584242132122737643524422215151344436665531242541142236111143432351572265155811521124411642131325333413322133561425761753321422632422611348725522524833183412311827233431412621356234512213384212217343414214533111516815157514351531422252415121327134444144282211332632534213161534242811125451132444811164442832431112584484144311111133732112144275664416361313185333333674334442316263131312663546326311154361126243113131255146656123611566114745378443454543341232411612362223463337331161214311328341753141541411723777436221226821226676433714323271152157338512236312228261463662435763652118346113525253231447221263323461473344421464225112242313227457325312114241646275233361133474164311223653116411213573114442761537812485361141251222335511212325515118733471814631552271113531145114253451252314334431118131411441112543738453264213436743244221117121127132243455463612131261135311432125117112521334772162431451322322216213114326352333712215572524161122111213322313451222811732231113373125474421414127231233257113453343214332517311245258142483471351556712178356111663263653215427521332378356747853223237443711437437451225115174367457541312622114141572687615611362345551112537177445663343744112512825145211523112234615136232421113258323612543421511521623331358112528712621514552246652633211457363631325422252321814431112573253422123651333211372131342335747541421642521236164356362242325241216555445413156511456324436131385143211322117141152384414216781463272434636357547462157462441442356531161562463173276341637521564331433537533332311742531535734214562125872285738543135511216251431111134541124412518173274125572236121713132334318123541441422221123311481612365112352113264431441562564222174273338412524441123486423152314151567263252636642863341114725215323615525115123355312234462115621153326321266833135226341222465871445134121375547112622331711224367332233456121237738715282124215888516223511613525332416122262364446611116414336211514142141311221242322413111314543275874451164131422351573233536175117335576517666233175221367613461522162442645424121232821345351434332212122148116151116231245231125523231436212162253214211565153453231114426514121124114562515235415112514754111233113232137338714425354333232545327137332365212211412733135714555437338231132887123711342325221621422232225142167531534231321382231422416614452341254454511155553631586112616244712347311113772642178574341142671315132343323125261311365643156883212515732257337423434323172218236423152461323436114184243132247855236246274362363756321131316114131423826522651533415516112414354212823164512231256322342511153516422237524126624827313175473185232611743381434662113831244725647441181113466515441662172148645521111242313644114171853441141714343243334333711154764257146651373443777425722324276133632564125425515482511631321616643121114114133445131114845324115145581316214621543524434545634578331151323425455684342228657315554126517211362641813352573122444355313111423322315212351252533322182526143212234346141143432133214123621731513337351651211212156512632524135245532863864451722411242173126113641544272442644375223122225241411622623213151718816312145363621345151444551216574111121472233742112347741128623266432141325268561244263412246215146145623433584316135146342441211234415131473536443331361214746223172183147514215155537315363612225237311646434675438183526132313234221552532134153656322124353335717121111361163233272214612262145864233526231215151611323532243511636424136361152475613126311133422422362345424865512515685147214116321842511767444421135366115662234171115261578114236172431482514412552546457115217115388311421215465311621478571346218272212327332474326312483237557312123452542521212555417321162335854612132462235671122633371631627222211772244234181531161512332314431313332114321227181616112218143542875231745113358141253513155147315142241531651457414162454755721127328113213111431123217162132126422125323166254226343145352215363472214143533226147716283322231424275222451332827525354384434315433723367731622756581314124452541313521165521721515135171613344136541371513134524214421644726145831511332747134872284232411441238126268355572844125424131131235415211115142581381782255353318327655143114152321123443142441524662323248131123152111111324422134431215225332542185214744612134126118221344417313276112216183241716431214212323574234436434353242432232425281822544523363463333657372524442725162178575146621244116411214417224152245322324532542151122415133131117164223326615718311262113454322113617424671123543554356131228115141212215463826344565533282822356421242786152312445124434245115511587338441123371611435412131267213122142771468477534432235154213122111258173164623235225323234452164735532244232741134113324551214131112332143324376531142222185243154541131512643161121247156722265235611222511124232151112471756241467411251443321641633342143433252675311123154143215313625262644812225553181111141142161422121336652233131637525345551645516251258611173322134611112311164681171345677135141411514616827366111142563363422266474411726526551333263254616847114133533216172611565415215637335233863161413122146824221537565212731133416573145144235512387714442287634155233471224433221122123254263571237144267624111322124385513241467667132261545232515454461122422136135341122556632143763423233226244174351381134133318715524411152725554544721435335122321432184226454374153372714221333631644143125517122266212221211145113161573253273262715187424663212145426334425413524282233117237662223182311651122551222453571482134423713423288741477146311717552125423814321681827615472613624532115225234433412121273575185181332132513145722216141254424576437222232157441215462333754516242442343511552374212214245123717822533151362142222421132124523521173163744133637445413626282152315531464416117158818528212671545614315322644742711451741531212278112415118413662752118636632471761661422121125533354512422453174225467125314221146581461564327331141228338411231351131273484636681324244141161522742746622632642515537441461121436167643531125751514546461242124252222142213623212413141347613471755112525324513133561466235331151111152334634347524513634818313261145111314237424462451635434143813581445113214513716126121287513211122343353114111654358622235355115251513823144573117141522615315541242236333511217123185313452422114222413282215148772431355125663423311212252212114515663122625112312244224562241121843331541162832162711586111154554224755663664118386564614142325544143744611364432743337857435233557143321521431836275366215115272245123151574621335346131511262157641112131526313222331531453211552132354362114165434655433223617534215438522473141762715136242213516131233613415134284678118523141513627211865112231162625121226251581333537477412814413242312136714362243633553243621734121221114314716354152114663116277672111384463242112158814636213556622132452673712123542714542515172731231432325311137322173442161841725132324836232232482258621186124616211221233454112732564246212444662135212411825215662144112224673363224127481636355223644731351443451322143121161714211222744352635143642314223242216227332215125264134375224154481231133236412215322111446367111336412671333424132345337413122471164354422111243431323231216163274333722322576126615243116732321121734112532445325475354125142371323265122231125371261326352413422173552141371551113532735431335826427411313174863522612164421433222222312243155364631421721541213243132741112423611316742546528314123124361551155235661223565523313541524254615275324216355621648521312416526314433116431785186722437423214433513132158712221125127213117172134621135661441266218182128121223323653711377414237214317514583625175156154252132145211643453344332335125815213357453421141151422646651426313142248414152653561131331352835252351845331831672611254135623515311111812366443711155425312172513514124218211211184811465435425113131112336413412117477174541715345861631634633252233624421841237425171652276111221327134213461421164733718144224342124325254121132811523316731254145318611556745121112468135313458364243645135262621112115347466214571314241112143752522322222531213463371644344451113421128265742131273313136511514137386124131412773133431362471548226141212212467133435422327262258584142241526461645226381243332371151311311335746452122332174111222642485471624437625131565855127714435541414215172712525261384241165311261614415345143328317511712124111242172474256611222322467584242154412344512534782324122124432346355441441553445461114132321263451112353213184551164513511525636516762266827413215143133262652425451254321524424211415413741532128744124433711517212432668135562341324311221117155115117243625215125114732226135251633623153271163161152245271627242337522223714536233361515367127142163213124211761742234161235422713122324552314113138824334631311444355216634411216254335232244673237335334224223777735275414142241215151343166223612223155421132187445344135311278433253334121341335616623521241412555235616411322312556316132841414411353361433553348175365767173712173122254237523524454315214413412234272135551251462423368151468654357151152446311154415336213126142351412427424141471335421156312214443624646516226122345435426551533352727236111452222424561446312625325211523126141861665123131431235168451211371143132553366612241127765433215111635263737446721112445641238126222656311322457116513215545437722141346561584533513421613583432621122441613121137371422653241741271131141112645227482582647542145226461367741741871113242134112553361145421524225353532184165446482521234156135758414581244343224427681625612637334857781161142675114413472326524315164251142113432544443334321512216761413512425313723331113774234672334661244432464324335352541124312252143134744532415551722175555211236185125211434436533511865353741324323313854111311272642476662657335431116652661215641114223141113135153337511112244151762371526774764472352543254171235334872154232342344111163711852125232122235247352312534126616611416211184443683757245137111132415132611768544634825636323124461314143273231144313125436213456224334276412141387338111136335211251126432421244712137222236545211163271323553737873311152134341171322551344555634536153541663355121811322212117134624831422335332653264333142251442221157351323444762336638232144152282732265766342543131468636214714215515661613221522552275212542231332542233125127421138511763327123386722521177262156178341322856532242571214331441413675272256142721763232143611511153586731431331553241112184226121512822661471435233156863354311372153231422115136272534513121411142143461322346374342468113643121422324623327465111114425153113471152566424711421116442317511133134482513241616464237526144421824533411168313212131165126726216681225113111435315414223131523563623422221412123434463234111517117123411661234116217131144122211423252612682146573467253416331153281123712524156358311115251543333121774135243221126465473125213365121711637152531432366162133132146317423543442352251411646122241122356232653143241253325214386547766123321134761333522417712152413161323111416117511363651322644476114312312313622334261572134653455311331122662113111212442213234327313213268322334412414421424238354763324224772236362327217425775356435517421122853113151211563157281617352722567433623322141662251312716355532213544842764134624387426133271174641322116232125483711321685427343325221234163752242812151166251563121315816834153312113432857246214236632523121435226487324721152164412158154711233126551125712113125313255323326244521252525341321464415148463756727124257317752732151312721754232135136521731512373342623314428132834475115234131558136353553664712624772672421484322322143154831132332412445135521314167315335721111314714155622832364421112512347321121185155484142133234443423722113124352416143524614172312776145735121417531511227437682514744762663215616377444441242335217653323343474812645225285311862123113454132251312221115571444631131581336612224422463263333841615338273324216141541736262677435143411116277331616131441454133331141411738416131441852123845412353342141135257234334741134425417411222421625616135542543323561333351845621745831517415142151254324414513534144111611342221432412342451251283245216127124241324523161261468631512311752122242446111114256325138114852462636731343155451252771722463783536316662233543438374131113422248153113112813475671674281144371526363211217331323117434212558311225457125817171123545216438426241422332635623862156122224363811425121122133241722242122518333881152532741254122116525715422721222237235626117166416412853442325654234632518111124331632113231741533522116113124551712647755434323444372732126252121331483355223164565111332613341112257531648242255223467465423117762315112323642224121422175842241287311313281262371363212153412358241233226154634262253267132811231724374231112623371214422113123452311242426141322711211133631613212656243155274146532411617652523131231271216451362235161331565528113535211413232155164241463813136431581128443163336552135215652111271651238656314511561342542222177126186275615344146615163417546481223511231155212784481513155215141312231353121721251711235252614624212122613542734313422435123157415432146367215186137523314723527245414434131531414212284554131311245562244711546342112676225511333133323484112216417543313152411524414666521346527312212616436332544317163146326131446672833517314121211375144145111242327352155446141116116114313452362435454154517315425572712111624364113625422351713726762343132211124117213316223126513435165525564514444235646427212153216134137231421546123653522231612137731746311632411173255733247216632816134614224225552338243551514565455212643312325331411415412365323721516553334133112235664265426154452322323853416174165311122411624215633222317371845135523363443625468172141612154621242515133642355486121222245427144123371223137326352415251211155264321643313641141723584254111552611211223111532313262112712823321114133422523371228421311443526131631114512742347211114112233333111447226251424761117456161334357511375412144126312373262356225143232316363722822484321264283446532171625231463641614262711533335148317321222213412511156622821176183151733125557636115432324215423784122812155523171344285714471352182174457541623123431122116364143523414622714282334134562132514154432211625141264725525444552441345365122134323353117137375551342133174246453281661132816411131245436244631341218761542345161544433221442421162122442515324257861114351133244618635242142555121323853161442333274211453752725317344451676613651712563365351214113821234234763251242272461412235112525574127811121611626648231836456624125115256454711623211264555212516375121314632624323223123571232112367211434312371321258712161762113722116631364244184262535162233221522346544222113462511222473215272166625374437276255253151621472525822732511336211423324475638151674415153531161348231526355416541723271348712157422411311441572325322142762135541226167265712264366331162243223665324424373531428633272335344222651245428254224114321431434172431686413175355115125683381211837271488234136814861132132352624471413244143313332343216241611413124311663733382226347544231226151531631127411233145271573283517264241437321362331432431255244253364316232212128325122151317211134272415216743144321373236147216426215333733224322235141422344426173613137213231511385743566184312113111165567462131512551181313226155483412281437726716417153525751517713458371213227133253642431346113312242116515132227141215114247224344552184172534251222211367532431121523181467543476153721255436414136316162633543115333512473155612456212311723211335666844213315421235633464357326613324114156472731374533343475347132244451115353217153211314535754548878713252132213135211151342212245171531654125347226531112232111214116616881335561281282171431412445121473663142673113231414645885555441217415647141423813181157258712115231315353352546211318844715184314131231233723653143432347124338111311443652833131732122324233265341113323124333867626644141126174531563534756653128153332762231461544124247345213223433553251836446534163223311261331313516753641144343615466172846238515153413116366525475234682342471513561352364154331112146513242121788263153146164123653443642148321361271333765475413234221163714431221461231126533332511211433111771322461542425143714211211573554122233154227121366232264712336137414312122361722363354825677213134225231571441113273631163316282811335623411221311233622131516721652554423131631132228114133142474375173415582371131134135152627427115662372131452111121153222662218122522435144635245116532311364482121133311223371254167714513165244245355132432711232243565473621413464116454651156531167531313537252371151351632317621185533151615516323484231422324152226233443161565372221341446633211716184323322133112613432363822251552515316772216541133425513765567535536755151242661373354114212811131226113123514422511124142832631743685663525625714236413111751122331327551155422212512514734111542137277123421374325472715333233583163324243417264515142142252312342222752272433161232313182375111231222782612234455551112733153121224634272275755721212372421114341158637713312211178353155112513121172252253881131523111648621635215431628721363474551338444423334232236247632224284134156422142141212264225211112241142575173423232715416487665422263263245171524224124312137231732522646442244113244537136645322644433174261451136645676735226526732556126115215324224228441513733424415324585143715425414742233161522144383114342162562762215322354252746421745331242413155116141453321543213621222718256121131713381462114281212483484342381512256523122213745472211115425212131537311258722342251741484261215145134118243386452334423435342721211465361321755332114151135532257251233455161313471222355141255211536172885253346114122325533231161815252182414654215117545465112545254421152112476527126328645627825428422427225167343122231441722114533211333624214251323433112161221337544665711744711455742121241115224454123762221618431316111131364642575753144144868345655131363413422131571232531531541285121332224255144317453732357475173225151232536412725332352336383516525325124146425361212431635251254345233613283765466213247222114141237131256122442341524255382421547472144326467641824384321112354131311645317732282121435474151625363153816223476511632341117233133684323553543463153514551235164565732316142341412114163513714231356424252323252312616111742627215337243447572241711541558813336211427133232132341213728245271343172451263631613321522232287455361126711213171437236114314714462243224225423521161572356711473423282185581343177434174124311114525133322183221142365583123441652141267211332445114237161152613511611224442716455742373612372255812631211842564132345263112518313442247642218141462113411624811111216374212554211663624454371237644313637232222431215155754512557511213515255243582233371342265381163137181235114252414615521515462443452171241813353454423332247241115245142123121546533276416265211831611614231622451715431814463842231216155323711423247613443231154313128764143356232258264315221333114477255231547323422331135316153473331411567321211144222213532415642433423323121328213226136115823152633518617247778162621324556418456614117123446234435625486161215677225564482163444675313142511143236443321773241713315431436542344636111716523413224532446353141117221132531167622725617261324634521214333222112237134432422111251532554116313214722512145142122161552164433534161182266255245167631854117122111134651422311635132611363336132424126223443316347743351124334526521724422344463142521235365741123526442251165533118143281213324122431211351483212122311343622323116226128442411725182147461212337213643532131441336427311715524422123433521171212412324734143422751134855217362455117423741511144438224441531161624331154411625416442173335422112314122153413222614431144715125151131412641244747213122251316572171127261336125213143337452234712235151341522511131445313111235262883362544341111114522124147453125641516633131188224541154321717675212524274321245155311542123324334532327565558726344414323612533785628624526713222233282245124126215212731812445313133332748635241516311155281352442433226625543147247564662413311224141467221213135363433224612745773316433336711321553453445321467315325542765425323163271653181554547222243283531336241112276431336445283421215422121234757733234324551221235616524322443112466217632318132812625723273113121334545123665342511415122223133712441131525616382133421673152531125114343166814216112713215475124324343628277271314126617311362221426421541124451215266158224123522331142722251211223521131813217246272585182221272236533315342535143118125233452556521163761138634125367423143842133525327322772415151134123146174262421422613711312121261311151151412631233317234176777112687443645123351411442184444171472223364251333225175163532511334273413628125271254632313137813321424643521342432613162232131222246552131254734325731211141562271713262334342453224113212672451123565375131126131451447253231361151541742343324316114111411346342223431221255216251242175822333523212516231527213111213411724363364633416711533236122564134422121221543112334633121566146444445442716335363271214151143123743323213741122141513171121633625152741627743513112112432153111377462576661141121514743411221431141214133481421115146755315546734662631213751166611557212118851733346734716474511483121323525613131417213411175325416324122243337143414644126525322123443315841521717144752436311511415168141147422622131454263315153143664223334131346645384682326515615242518531327211423134536111274135576424368543422141143425437758573321121213312221411226264715151532113131252251132424233211373146243115116358435471315113412171477664142123312132331632243264732274651153731228212166412112144663814113633713144113318331621316361811374261522624436225346152853225227466181117251221752133381861233222374312821762331886233321626253621616156243185314462311424244434122775323224236133434224635352762225478123664231817445741456215288426732716271133112162225655583524251234414826315538221111113121623472312224731521116411444832211714416111331334211312742244614517253162124712511116511124754542534211712421124351213141432281663642124322252227423542251624115121128412422155257325341145215116212617262117424411537153611612565721227324371127223414182231522277362632215164231633145133326334337434134335233648144377112454333211424751123377215113437156351632356436132363241545387146314653432254521138812543523247562413114347261417744133578314355127841612341132227123441412525636741118123252115154441525451212723114287413413356554665136531421428123331151311746525224172343256631511123132111111663645457132152138313217123155343213374142124332351525548442226142134533151613554211725416313155153151243744111865735742141751431223474211514862857132883153526222566215532553227522211832111442361815166132533412565522115524173321652544345243317151145512334147755314182116252513332116221841613452134114171312621512413525816132358254341515246324122178346344365532411634328324333711162144431424714731413114652472144476423343414171322122173323263451148111325211412313123253341422225525463532143755531211322371737631232412511142111341224313211235164533145752132426162464711133442123133326414163157132327281322253267211533363347838524513233211468311222453562213334343313361262332673361211222446176322263112533461338212324323122364211212166551521313323231633451523132637817147211231256474363241256322664435124323116622451734553614125121243713336341425332132112445225353141336761421346172612612622134423215574144833333331721625238522342713271665437145343243876531673511341262336231132675131353527673415343426716431216643331232146247522336165513255323114568534482337464161233847382543151461641512137453882235452223634366215336611112114442411125427112222181732135154644351611312663641154721214212144424471241315172264855215261662354446627322214834521473148424511113451264244875336216513623454355154614534523324262113252122531314561314352411354716161164133222652422523433184134161331363131284534553242212411164321431114243131841212643566268521862124362242551143275621811463237611344352153858131524522522637474154322246838311268363315844152435252252144412332452518745453532113231566434157151125225826537321312311224218111241811374311227622455462343441223328574651217233275212261146425272231512137182442175546325735253134721324215252111363134127231261534412416627462243526115182413733172241151354334312625311138214165721321231522148113214321143554243213681512432441537114243841341516242213148334437182764638551333372235311625213516553266212517413642346144161421371325256211215431832582524463262133225114266434533435765141673631537153225332311413822414634121363254132316265345452772226321522461711425625324721735335161733415624131313332643241133254565141353313613443141453533243811337512357155412412522314331514674353225221312142374411623111642614142162181642645225166744524452371513516242431631354241216524724145581413511242311315323617225211331515331433277146665228124356664261255761441812122118114111124221316516218212162171612441112231271571141113113542142213448421518421515328242811115532843225641156233543578612563411511212664152461634223212183324181622137514711332821224154247677322732465476573522351533811234271431311111122866641281763161243433121131131854163431218642115433311361335114344822131216424471356322455516125316321351334512224271242211521835643351312513533564336621326721113727124114412415751714413717131221237213124213123348314231323121542111814246136834272412127312632224614565425411241215862724372232128827642262315424157366132211211111313425621111572266243385211212717634334111164212512263312213227667415112411624442346368136521641147155224622278464213353613522127433114245113443432167144247321241432476175211261213462341234311436311416732722221271523276112154333317242735611733422722214311551141344541221133331171873332271314466134161284437863314121412564531571441734424134623613323165311265425113355353236615661147422682352152332442611127313114226511161226421441332332153241733721314144633234618742225251132633213352124331622313454322114116233522152436521223143126264111143463334231335182344824423162283647242441573525723455332433218324476242244222325212451116641412634725251613132115124424334153472261153152516326562343785354223113438334415245161143232514215164168328451211265555747455213363363488175242172116212473221554526114351667253215326233532374612547114113373713322342531542334454421326433235362562531167324344278321822281312515175134532251362114537551231161372647263461312342478565116531214122241256513614215111325248111131458142817845232572638483161316211134131163112213565714241283435274215221141133228512164522134831113134435322377516423552335331212533315211144133461323231735531112661127513462133233133563781664331373266721324137521583111324532411245355311537253724512551343146725417126731216647714246131623142275361832313322721633732121822563331765141636264122623686662343512444651143214411555287436514171318124211352132211386622215141543151247111248427524655262257314115135832416345341543111453415412651231332126372243311133263314311234312645525141313541371253542618124251752262524321174175311131223512811823232257313475867544443174232211116151122342232116117231314841213744125254125137114631255861514142724174773412331251127253313111322231515531311651541841111353151641681437111622314165111161276134127455743335311151234254411151621314542146345122374112255374518211331323571866346271232222312175556333241253121572721213414215574112645225236124432443334731235114561241344645281746214512315223514515163413121545412111413622313113122161143413145445335232217154544543653232362175211314213132123672324481421414131446153363321254262541724635225216215445465174532531182128533316152171515254145411212715142211413751244124474614553162323231821411445542642116637444213855161144248224712233722531723373376131623154454535137121635322445622842232741313212222142433515718242364412712111867214831321123657313424463723325362288143351251613131553354332772412212445717114815158654432121357522125717335134144152114121467233627113782662558626211741441311431615247423353762214622437271316252254685214642134211113211232722413112157234221332781132177143616212631423431122152365325122136242312436141515335322142344133215442536417114226216246347713132131217314555761652636721444131443144462523121135126411133214153127814572254143132325434122615371543314212363171123264513512141341312466216155221453251462551263272673616331113227443124276116322112316554444331321324231333544265363121812214124722235432223513512783461436517115132434811122622651211224742383771355251364424633346227312341441151144325436738334325214112614731141382233416646164511361341613674235174135664873534122521611222655312243162152771571683235113442482112171213363341113212151451121231252321154458535737112531345324226472715337311252614272522445215213241725314154534433133152346453733133177416115636238214115426237514124551166434242181514514421526322624345531364635332581442555433318273744414744671163233331167622632615151163333238363626561324311672531332671375533433125137342512672543334271612853212241111644413164435521551222241643115715525344281622523322165424732327383251164132414866524453621167134611272413272713436565543522231284541242435225137631213253152334535131262557563171135352211214542134331744513661154313114147561434415374421622165116175422412724148713342163222111127151821551354387142217161425641815221445231323161336673214731422225425351451112625431121671512323773463374124514444128414811417576133322415112235152348332117252121684622124237125434722311211342114321232331144554621354214155212562714131412541783131354613116443331584651525533517225323454632533323311233542732414421326257331171411211134181226566413644621133111273832135232632152861261443322665623214344542713642513162316211143232112683821167122564331244236721623612522318254354423543512326653123528223765123454231623415422131575122724816613646232532242623131121125248112352226472252214412123435141211124162243212347623842322221537121631235335342236153253145417353245642122221247743273234381641612111142116231111622457662171435123142443725114324243422357131121154356355544115123114732131164712351824541227413744441217644222236555183662142327182546411223118317161113522222443425534121133153342361314336515422614312523413812231613175231133382244564241332122522161217373221341444642834324826152726727654375444142432322711232213321223417312438112151233331683131416443643246511335874365372434215323353413367256255818244155852535135454173246137441125317343516132111431827777162141153142134132556161556551326251513233112345644411534344453232122112826441421212238444141333427312245112213111241318313123123241534415412176622127347134213241122136855561412342423645126337274351551238542414111231622551233112662461445311413622332344124246243683112127277213311326245124511251282552342327775242453121113364575532447524373721831837725213426122433373431131125551114531241541631513165564335553172214413232142361234273164258216162141453426642712511524241533411213665155333522431263117411521854412133114323121231212134527663263336241425287117211321635132218464336121135111616511511311827455734138131253451131216757321512254223431361232556314225361242138563316262734661312224366134324663522276113525537533444123134621136721211133144621323164143121654231353426534541726653311147172136581113462241126512426664271311341843144172625252527353833124521131241522325375221242321422125134181457135417521122114515126533557344451632112211224474214212512332131423117111167128151513416211521163544713222315153433223648612351413266312142545111785357371316523314335344224268522716133124474221125517334411252125433121525624236546112332215455213532547113352127232525172133222164363224125244421513323111123525731371233214725153341151262266161512615378112265215721351321212827123141221523246372233433613232164465645132843773312231531138326743251711134111333526176341541142621311343311731521771728352635142161431556463154488431612333481274166333722311222222151632315435625357154622366522637223773131223324114224155122142584131431264416748543241121372716126241415352433234311111813435271171132243175146331436551582136134653734336517323282422353161112141142268216751156316156542714312111211711262253317242833633374221133233452144441132838222332551123516231252111384315542141553712121214473331111121186163156242773734452145232141723711243346622115265524451275146311782131588711653253211613114423187546151114245184462116711152134133433755351247134145411336415612362253711531221322211563135162373234621164274523316413665457672131323274334285442215514464434543232214138563122421651541741145571136516346343141546212452114235151117546337216622173225525551151334411523162252651161422217363414573574124711133421171241372243375461123133462212517216452561442144273256345311513231775772854752248563112321113265624832287135882326121544442756552563265456771125543314161115213773752134121642218271522315443432177653844711316561354511423372112212323541217521123224361357331335184735236513556223332483711417334151333465423462711753248123126116442153162266638264274447412215431222556352241127734451811314461111412442271663121342234558743221314643142114442221228125636684511437426518636333611117162313321435332354344451136312132675442131611512711443225133427754472825153136243634263625255521155168276243151524114122265173332122434831114743222351321441574517523182133266327815424312361124141344333355211214173743462411113621644232723336421344428322214527154426334815344343132365442332423123363176214276225154622114341451434231223533581214244511623151641122643273414713263715236262167763334141483622141515121221215135114512724313263512224473626566513327144231166146341521122126224862231451134312241411711324716221457253111745436514416512743312136213343723232112364416132113236452345452332134372522723431514546271514418513333445531321458276148446431353267344436313551555347772426342651511138135652111111432236352513442658511721236224113223438213163355222326222425127231121413131331411323537614545276113441162328142124116132116846161322243754417611157445425622143526243823423254631621264733631382233323241115421111242461236373352128355834213311411133344457126137634281521357642321757217543261666126313331115316223311311141327621771116467258532412241353162343442361332335113311217663825171323247517535211645444414271127222762213531157581235561326552481144232231631135386216516337335613231453784234426341832111352476115124543621111361423533412163112211123411684314223134212521661231121412138551121563263236312712332461846127147512227433721463221531345417452761111653531264162282132721281123115552112622123148763151567633112634632222522123331241114114514151522652213286544533321416224156152225822243152368372521681311263346365236634113427124162326262332235253164875213336235211113316135125334865684312321548671465466223724143461334255143253613646232213334221714622453115452814611141123557133354222642434543155238135545742423634473241522142172171346632113615131353414274325116331436146224442153713732231176213162433134552718253124843136332741232251265261123246321455551313643124412841445168232551131527521311144231856231373622334452763863464273243275511413346355314566212367144634643141141456135148711421324256553783544356171711322211221537176623762222476116621343635161443534166358216152633122554565214441154133216133581635521416144113631612411336315414753563317123611422772223522223373143211233177111324361316118232311151526412747733625666116153281285213741522483412317316626632211474134243564343615115536152664144532132112332326441321762271221454325624721776323232335154685136254151534156152832623613612482412155412358732223457147511222226157436365162411251872212123413515141354185351261411112212573224415471215362115143213415141124214511766524211433473137556513722261311261333233712242244443214643213322862377332175143163178254534356825322226411477615823873278242154143262123354183211231221222312231376272231516123127111462431128576141631241374324253214213332211716582723311625443562632214811232213126233422212221136621423621553282441424181316134185845553117411712224852712412133135635331722136521512165414245631212121774412131135662357244154331345257635322263217771651453323441132314126163161124368254211351222532446211475114617113227212442677422116313451542334352246315138213123515324743174324371521381635127732713432661225123145353673271121833161734753616622311224736513515546513851642341223231111124211652113587323511521547132227226153516831632232164213234714245245516345222336623142171115316211424351446423821441543372188217332733161611316442235264811322352742367543623433316233356135882151242674543652227541252347742144323563271333151124642215141521833682211211122135328513121643113335152152822427833113512117828316174413733654651364372343143484412266214342364711212416435862127134321332181321124125225336334513416357312134715342134366545323114314112233321341224325246855714511441432212244213126114563113318736436521137164524156454521612271251433121115345448353412164375512747365143161226523462541236214351114443135665443724144115321114433215553113315445162124258261712252315867123171731117631125222315457131544716361171163352212433374212563742216318721428383552411225722214136442221144223252282212142334213541442624765121333116241412253222321325511332125333365276774427254625431432255611321155443234752355213216152425314352452462744611852332133322116153241216152311445421855215673153317765362411233712812512133135474411311217557512316125124324484572852521121523374454522414542212136253566115351734222416283457556331273422457812641241351236273132513262436111163452313324335241412646142173548312121625411134581461745644775711453233261412622626121371465642435231812471123147654524465512128611563531211181315713628332638136657123566424154321546132146251121462625734848535415315111211168871118655233711148221253134847186471665111232331284565432551824246653212417264223124131537244213233243145241125323466874533321571454145311412123421244221126221146124353421415132667131383625238115343413335246245346213143261834231545113353523427363441582424152164142214212162841624374321554317128233162482113252311124342337163175214413716361462841311175162621482124575244331243373451235265628414561664521371331732226134811125316412455184253725426212211513642216376225582343315411354241854412132144311452275312623534171411157326442452242154776876153454222142145742121144371581271425332223311275421511426137315654311315757311113723572344121216827441155237713425145324374655355754373513235521212474413641265145421231252317241461378714312217124362146234353131227545418253152416225412643446463341361513224221233321446447522138256164115372512452553722645413163431215321163731331753687664237455666333223533433311214642441546121654573342617251242544172773763312211312163126118231741447536835241283262712223122163611566715587356214112321311227122618221632252663134318113461222213731123132166553447113362565644782454271244314114151744352335431321324452668153242224128215253121162313238236752445512533225135371144131312714122552145245346333778124238343121463414312314221451423245531224272273121125341615122115542152222167372222444522155211134643131723112372434152511321554142422382412271511234117323251524163455223342144136247115323221812721425564237413765345136324135255344866116154171253632354122146455211162264156221734442151514125128384372341212721712133162454321322152511115666115725423263144128521663346165461431362146225112231622311532562342134321442323821512315216743132162131322214537441211226523673371384153672353286441261471363432416371521622325471161525211242215433273141262221124431322133151632112636126544372334121227422864224124713363225142623234532154434411127731622442312821134667277431213351125578235623161411122853251513261324173282784141425652524412121242262445213553443444657468131231433216613235236158134716614271137413642333118221251764512233433221552626135472236331127355121632122423521712313453313331722525116166646331434642366343411523431411431512341417542314116143327212811712353213321423743332232136211774526126311221533552873133635322325244233714411635315144533343531153544813161571264223542312417524821274125123536125412532236373121156422134683445441142438363222342627222631372843337233224721145164111435232767732114632621644141226571553212422622463422212314225564364172623514877582472211116161734311214215121122524231313527422173345123432457226462363261625354261217512224122136445244811231418722421422371171242134141311411353232123861184152271315341251284243667425276172171355542333226311643271313371361213353111147133265143712212163122442582234524281274132351126322646241421146161432312255616312411252153614531111512533213223434121327254165731312151345728876133552251356173633644433163131362324323133231211211142257121122233212511422812212463411382181251373167663262763113525572316123744521288611133424426151588151122245163341234611235213123217224233884145515712521624385121365255465532753534342221751233722515466354511647133111342378213835742422354466231532117241316611572654131131516127226114144455883214274246151234123623312511526514213342263251423514228822212634787322238211471131144145313464524444214113342357211475212346324112312135724243132431115845112472521637112527375132353331112123861155341523832712164155352141437414114341211411314843513112244147218132613543513353454122332131255264643112813312424331343132215325531251263112322225514124222144353486221185222625536654414155251428343442411315324181241251125482328222441331551528264212134821122137144812112212313433441612121214363464343247143552333531631637222212286281316131277533234211753231133324237812112724231115475331341438712411135241614112224151112141446138215221321128143122111424358634414554437322761231547273225517114116232271315243321521114822213456761266532351521131142318123528631112348443132434324413354511521732553122453131572146653424412532342335521112472231124423215121115153511284124343432236135213133571213343188214166154147135427131552764272411223336113116513135551847122515363513813141211211741442133432331126453533714444412421283712126472362642112113144624121422483156484222167134664553653741616172134355242816841265123121767555513127856166123185524323532554721111515321167112611234613754711514325115224111115124222633236156323533216158334333344252426417153424125524178213426133482412452341332215622121121261116113236322646213353411516422211214111285423314116363172164115631242134221733587144261716482223454731532322463552371465144441856565311551722437154523145415478381131732281513143283112521152615365361551454722311163154151513347547832663512744274144431211466215323723522714326136231473125523223142436422126364122442213154311241241731421521552254354242312463525455131256626243573223711241335324336314376142723581111332134232646344442335422228355412223535411652532772135425128611546513236342132533125115552324226612435811133834463263226223328573423712621741218244325466182221211444245485542284142236165611711643424423112232344122563463216457414351218123326122124184362652311143132475315584536661821141544162214532422362346534314332144477564233661317715517223477654331322512323428122152711448212337165335326713322124214336123323514212561745565522561552333133331211431252321526363415232314163634143321735351256536221254145115356714226551751421321454321344543543614355175333871132214343141141873838121537212172622411724224245425146215732277441341511442442233437131811152522225522123237548422815221531151131262212321131112265123142313314322715312551127326321151252738231236545455311123122272131525531242323641112446831722426214426241271121524422743231116241342525518343541666115743751421842281535163222353532211112737125333113474212124525634513313334311114526465758333534151224115732211447554321352221522225211146737567238234711645677313156231246323543138147255334733211365622731638535311444267146436111264624531738131232711133127573171111322323332761358542345157762253314343623672445324126325122413257557544142142111563641213213372222177242532522316161156341363743222232412716122662751213245314151238124463681426811335682263132243111432324132311324441742521642851523833183172232644235145352833675528463435437155414633535176611853112851635315376421221131448153664671543526143154225432524123416772232267351412313238123476614414415558415834217442325736113247173425453866571221464456244516562253135234383136422746331311355545624133131226543663811345111123533622361614333266734563162423111313724515637111122124521117215742361121325344433223116232434111115835732263335553327647641165641147221218124223124263663826324118263254333426172335451356452377243371811114216356526378111871166343822636314321612421125233111114723265127724147744632344114111531321441424211443527243541137254664415633133634142443427671314682732444276321135271312224763335136153451115231433125145651362358375417355274774262335332423713477271211414421713721645321116236211224321328254116753241226233323351611124243485441151414336152215174621125551111217112774332643233365112344131472133516564621872342116826343612554725368131476622116453282627313533114135863422313411611761424561541412666135412427676414321161534632221322331238153871611251541541528243614133317111226183326323246333713736122331252153331226731311265144364361457353155464317342315713247365615732333213525211474653443841564322135215183633512323261233551616721512475425272373353421171351173126715347458123211615168723522413261422641532521311515352322241268243436233431256122435188116441267331161522644131664384143553241335462214345445345762653111413646415123316421413141112233643131562312332425643285562815254233353822638356472645261628313234111641243862465213112661423335823124255583213826317741365242263162611172628511674344371133241254716714355625232635253324721114612638322526332326274233526317263533745243128262682642224212262245134321243133742317351123134573575726532517241543872614323722737115341387334263113444434577131331627351357221841311442121231241132383152222454435272553123527624632512755532141522325282462122642186462175261175222123412323456161315114746244477857532526512551641342114315412341374421515257244638231863275512732542344346234143668423152525621513165413753673278154345413531211143333518326242321156745482446654246213312152251671431522214182226618131511212246111734111133457621386641125663322612435383712334324235364111332455725133126441114155263262733332123534442364371454234335214232415351571214757324343553547221341212514222462612311254712324126228321121431232121472287215284441222245162524367112274212231144221423341261526341541166111342127432441415373315321221413153552333185422352455113341611425125731414526142211323624233111342455312262154124428632813115251423352113132433113523212711328144135411126226533131424524263243783324514515432131423265225153624331421525345222166321532351321513851621221136246322384352317232125413851341352231716733556158244444633524414133273461116242453251172112225634445355132142453114318813348562782325615676342311731275265373855111451541221643377324446435113445236516112431278715623414344762275328423131453153413312456616212121162665523421471325213646561135813171852731312154718313244415113434462742241335624334316153362322721763321317625172812381125165331515357331273544152223675113221235122451534726453124712423171532857255131755725433232353531623164273262443215161223162132218553733121212241331165124551122721433211312433242313261227512151325116163461162151236751131526212415141213612624133524353756451253243263147225124335334655611471328346172342326547735121213111511147315133551875143241187424443317432784222871443431457226111154161255223261235426352132242111352532432121142213414837313371331253142276611664354132754424524311143332357161248354441443515321764162456111312214337243224313631412222538257557151147212348211555236543131522711352545624321712273652345422444132444531511621116461322128731722452544326673233778574512115112211456112111222182322221167512132354272323133745151717354166314845733564513454233773741727624612144352412245332363731444162126135123261715336265114453125211136811143561526612561224322361226112565435622834456251115231135312135343326215167311111233713767234431253653311212217136615212117481115275444422217151272277521456434158421673123521652166277622824411216754234115114631217325416115544121366533111348415531321523735755117323334511324544232181145116413425154425381351761651652563312425126123454658117452232444461347141432312152336116446225311271714727142265373152123386232236425321426521233233125861167471162233323263425252563121226442432111623144151111431436642431265552542512732341128227521222465771231133424742352225332323525551447114353328261225386387722432745413552528436213142342252425562341114581422321566236644324131233113521134745533122441626321176412131527376326261131172635516252576354435127461762263328154421412415211522623445454213561635411561611224411111214272133163116336134324556151134421311287522111112673172215181712523135532152114173322257211225745643553533344321154165762125142142274231332411211743637162334225278652415222546442732182235123125345172361512613332432453815224327674163432114262412861221411331813171876345633146374722566128623271213325371234651244472122716335331416211445214312286646513327666232242217422443611154644316216451842564326554222431151612133666564512252141367223647431351125432111221544221214415136334141451624111772464155644747728215654664214511174424175175121617261351751336521143561222355342533248341133541113211173411134133384322562676142516435382186231332221614227157575843715253132261721212521314121343114114411141213452181722135163231232132682317226311722212535611316442117324235343541563322534215235245131333441241853443222212323425448545117524354313175525225436223321631517527753642751821734638581317343161222221542812431445136322662333352376345261334112726151781682755526756455821343325324441222412144142211232132731263212134235341223214252117446262122681412344215141266283311316541422561524311134114543231625221315137541436374744545242332118517473465111123515153251433211523562834724844436342243416143157331247618132515652411132122177171165722353135448143342131654536413215312323245544417136141714513512721136812421276271225132323317142368114352524345412117143554152361652555563123426424216374555412221152516333521335725561631212112533434323125351222217111781215121251643473132134446316433132551216315243312441335566861362313222216166415133424617355376225545223185175421151213511262124342522584311113111136313127423226122363141251472313243126345311144521126212132141546785237335245211653361683311131346245232145141141131325178456115624313157831762127317326862224121261481315112511155311213323554821211134134627213215532451536724233131373344433231662122277331426644814314451531234132125743334761413332183731135114215526271286213345243242151213333564145831241162531241746142234244211145675313843131436433242422264241675232143243344216574361737312721173334634375112133841254136113182431764612124631368223162152213673414232214335144673327215523463513121258454465627372225711521714363632441123115275464178123212463245242251722813624314153151381281616575131121321441441334542544151152212418184751674211365285681163715132518311715321521444144254465228442146762317114142611411747533117116353213221162361132541138566623526627321644643463438687251514256127161521455242311515233763341673434445417233137444441145363133152251611213125345245513224214315427124527228666321114351231731174346672121113623413313512542244142183116745611353276642242224226423447312557331342124141624633123143553316525141711511771124761223442141416227311624154225753184141161118345123773123511112232455142134634228351451161613524221145148112252256765611233212243213421373663361233716312521573231236131674461213713123623312812153611542723136454353713543171423115832185243562612366331213365413421575242542311226112637416334332132167423123467465111613333863246721144534163442812655232141232514121461113216125632231312424147223173225153213321331351321125214541152147121662143267321445251643584716345853111361524466131445127513513145512345241233163121222173621428675733761122343214223172324331648238646333533172231122155572134511333231171611554542643135145255283613364172541411562234224542354345223111242146623142435422157423182411458526525263115286613523521522121145453711253335315451613132151482418236512464462536352842251216152615423112114322154254133423215616123781321376127212813218316122125322666141512244517774148574631253211114271152221171537555137621381134354114235131412222531333442553451322262766243367425222226114123457634455335461436486412353267337742147261276812155163523722211515457363236311252664454223213372372613321522233426242421123234211613536245111676311153713121524111411133673651116212561311113824733136534231161113614174251724123134135546343117314121111221531415126172661161611645661421312115514422313113424264143223132425236151131413835344161642124132523162224333353842112331512357333521836513547531644163722632226128413123322732234336135121113533211335355324114634633243273232112442247231144561634322343421414163321223727757532132425644612361123215421252342148231323462153622221356825113131536713464228228526135313432163261674435424321224255122134684242262327611214734126333386444453224336322341561744151144732213531183218524343425223526133484813854426163278717453554371142125428522312823254223346874315416411251264711823144226222432113223243381542124635155151616443512664314315624341114131155241744471352883132221353135142241241266622231471731174722462423335135121325612361412242128422135432333238717113431512511416336325234114625422445226634313611512323341377514244432414867716723363326113455218231124375615121223131146512226441121521271512175611111284235273112144743216823241432723132232134256617111834533143423112441243612141133256617241331327241733122123331243472412665817523422134326432317133637327324461627131477211666131275272214541323636426225265621131415621153666716153635114155681365573166461634145113521215422333315475137134644143121538314352571483412251322542181743613565134172216332355364412344233233541337341666111424531235112111613242142327445445273111433123232152428514141455521426415343348113132371311542416516137233852135311678524442321511143232432273252345333352813244421411456343211465515251538764644122325542232365233767617152146454733142134172252612313335325412368382154155184412215242331216423612111141313311421721133632311314311254444332141324268131213232436133283623322312645232611552265382211661267474342414228331141536463138442625431332315424312354234641664152831111363672351311281223114114454253136114663231342224282133422353245732551514671113255671528467251112244316614412214253814237265242344135141211433313443223141815158425652345371554225132555117434121187476212111244331858171215186163131332224112341144431465215286622332253121615543273175443451522515153541623171323151614236135436513146512244676444274676446626231665215183332555213426125122154528232213362344626121143626613451168388114323144523223221224462563543521113161336322621563263565187272312151553161733241213621222311353633421333431211656117657171526533714727161438141314341358223342136322123344414111343212423114331131127142312234255177382432724335326714213468126223515141261512544113425233532226212121133114142134722132154313821113417443375441511341513243642252142333241356143111258337222311164142371541651142351152242612115154321632527655131221411263144121317163137811131157513421452212121213484374131334133168382822352836242121461114526111112837474137232433345434347723652186413268512257115741324723121231252253414154541643682126726663311812582123261552271511365223614436323422524851213225231112211462431337213245364534481454343514213126551313113425247514536721424571674343241513724371214126242227226224135686435166611332515151434812171541614464423415334355545224354567171111161183164375133845111614274511526732223515114155434176442146318321122525522613811244552212422231211145112713363454745373723221521446121261721116342136214661212543284244172634431231422714176313617862113225112184216242145217643281372231253112133454711223411515182451131873124162182153546115133422542212211371373471457323316164352635342537153575223412173531125331316615214714272648417614333456266772172131221214654442444248251843556241252515183115235325241243722324146441552242711311323125477514221137671314251533423213153125317237314743414133211812143413536658213166331416361115553148132432563641235441314323373464761311711216311242131232412261182321214347123143243185117513142754571453132123441231456578437462543231433544472457415421385121324111146244563631187173725211122664233174252214241824141115111515331421131175234637224321344713131175525731441144216514853343223131413131124151151414147171536575311251332338856532713112423311242236252534322354335627154436444546127121472555342556125164442711636336172555121333263224152311275355646141228122355285466882124764774173225111744425324163423538423662215461331124343412133832381331411367132154238631625631361124811771323172344342223453131221112262412255754132312287222631474531163525435121215115141131425433531824224145242232113222312311822416625166223212172285113423834524345662615332254411231534751215662634521751662112725548624351121265513142213756562136326363752332133121116256422144112373824175225422426233163264534311364423134341643236427332632271335432177523328713471245117145354821181345182523113121342236415347254327124422246464642144133288356253223132451423411663445631325215243232411216353333512655265161216574122545121216312651213425162474212112355313334823374221336412356346343135513771112123362126351233853164642212341331273512472533221273274513183147215864132141113131335422553241117254221266252514326517751121618414276812315123562125164664553821653211353724122421443214377123231514235645142131452412623158211222314664522113182644221521355123547335812332517554448346433235245342824563631115532521113572565422246212161243151337253481356462243215753111554457211435837212775275445114211742142526137233311522245125633254713831472167421635231213233322514224642412823311541712321227342224831565266541166711112315856115453154665545132126714433233311163236151421566651278857777175123535123412222353523642534157331221318551562523524226347112251532512241132232521272832315545133112435233164161513214222434422252567757246656122274731323271425545343713321133373145182513737411432813714112412663544411112415431137143142246412552261413243315755114323272363657311542233437732418281228463256661431251488332232321241621253527112133375133544243132315331176745615851247171633716224421561146473452875154113676212421333264344127621533823212131213237124481221271251613485124276364736513225541141712316472214154164136152344636123113243114378338335331631143243222322432578755713214224113543411553115211225456222132516543474655122113532756132232851452511852275311614225213512726813224425222721233624322323152375512613411742535256132714737141172521345431421562513122753364551124222136258132811653115131352354353558344522333127166211422253731143533141436474332456434352642511337286512224511826134124321145112642173514572122213228623311284423823821254352585121627621665325715214453735341442685374612331534563344411217215645647761123118712451234535134216552557223368143832245131317327627752143466762121436435712332512644233145114532533351113151115251111153123663415235234311417214142446332461266113322231236583432113821333181244265346651314213133815332335273115112812525233141555124522228333232476162241613142311122333682311315714342474622133255715252478134253311414743422365475262116373421236314247522651432176513312211444422534217154542434132424122162115423812514331742224813226343225464214346565456241435616231334163321767336654732235321332341244356276114112166141342251137644433618117336711185167531443572165342231525454187625532642632361117165733554532552874252362353824681431112621214643242754334245242155461352313363415562512562354426823514713654556731244444414611431171432123468211133334183415522147824513781158125733586243521144548274155676532525527312331453345721165314373132578428112546142173525421312112147434483763111451126248143215171551212712463211222815344344114474452247234322222532342112523353613516151143613412536323316122511234142461326167383327222215547353374242748235536464442527431636711323421114561224716434311344341232311243113675366335113157123517613722456124831223356553243232253511623446161514142715126462735122333354145423214117351552142332223671212412122326638545337313241234237434121344421227734214311254622552131252241136314356151261432521834322131238562854216665437242276531125324252843571151111324671143342465112184525134244124211131311386422417138372114111423516226246531421411126361112433413131474131215627168542424651423132412333242127145631212112253525323116357331643362218826645211124411526445662421524117356454452223248126351122223514513336145238272336724325433112111224117337166431667123121812775321477124532114121314477512225535215118511112442843475763553271323834476561112313875132633314148235211146528556837151212322212646215563613714143542147325314436343341521654714147371335721711176212238821512436252652115122315112211143442513242137712325323143534356312322171617314285354423142474353154683464472116434275311324118288617484424414525743312613345444245564142543744141331331223324432821331542683211318165211516212514376321231524642411724221551534114261725225613141113873436465141374225415123423484651441387313113242412141523124253122573424212327431113353257221332322122662446212132326241164224334224471162645181544332413115141221311727461261224262272421715246126456332231615253433644671471414233312131222232112436417162132621242221214212123414225148264526713113314345663163452211375753433245241332253814511764136513112225642441884621442424242726833543321262121212122654241772164324146512425111714815651625171131226535153313243213752332772226218313515342634272121261612565223541313661123231657163341157155551346814351113316232423523514552421112612115522331647244326686322712744264421834221463426414523443344234865426142334283121727423118414251122286257112753116262267145755336253451211514331452231722562232223313423443134524332524576123517233122365212727153155166864521312435242123626144416141621243444337612432152153643622681313411837541445142112456111337263221112623622662636641476221724415553625521633163517253814232317342331133221122612457183214133413247316424513563352416761111225811518164511226226414224852813316244214211344346287521421112642421221257728335142714232121125247575332115522135167115738657441756475233263341231121231522836328134141817462518431232254112563222624142183322173133133431236321661211222821683412675321343724422273432512255122123445143181132243375614211234112725511128123513434511113114462213214124424131134218133115414352613826423312366337427313114122162433125361266721162235736211633435141241524215184221113148374165253672275744356331233126115226265711251873365218121731144445746424157211812413644524624373233551251632121311125225232236446425122512341133432146586426313414533211324351211133611223262343253144473486322161264582222437345332121551261284415132561352711432212433474755311131551134274171631464118467253642213121763275372761422626221354615322225365452253588235172428271166162111134446238442236152523425241458355463161554831132322242427427645137247241821121251122733614155752246511772123441242121181214133372365143345424531225244671625634166371275162114753244327334212137341457623141145613273585152421331263173311237264411424616157453135632632553415541612223751635824442221262237442824122763333211571222114172113513273531373461737723121584624242331156643416613146277542635312223446632124713322314637664345352117714141311213213461112546233123111416314274364142126133224422744353182621637743211147143144127331347431145426331212351226141221538232416124251161411361112212223211256521141125113124142343364251452865433177526111172273333235326212722743846513735351542115744544571841142213211811213336166521431214327241514256214224281145142253221337724414121416325114655232222514178751376144563441622743411445364435514861561443162622231221141135215454422226573215441172821167241415322531316647274313121273112412556712732145727715451631124657314111446273711611232224843322565434331117221216284453152136441284722324731483313325618141543235234142736214465621186254331213114311883326527122626351184214422832232772418114223125435366786442323723232324431151355114211123331443334564346445311521414154351241461442352134525726232415622413275254581337513414233252611532512136155141241222661123154466161734123764843131741421124767431326132665136234234614513724111232521512233155144535124173135313132252561411413463252537722412121221415835448457223546881565432352774545272421324412543116857734423175241162351261424611163117111417522441333283161351361524511221162125316242415114554121617371324774332315213314514152711322246224334133353585515511364555163563486482112316234151647113113345781216646153361224415123312514116423262112117283237483432252188132533144551821131533122213357721117815165563221234576461352374227434824127583155324484354176154243525327243121433347341111423512515161146221542534673118122764133814344633132473231876441631322211454111464365276151161155412463362532281214274422325212345346416514473244167422231714221122431232514355513256375374372212532543345651434535726126151513644383613333121316116321718441325144411264214113175321225551341661151818434341147385313232553223656734521262135114627123317173333112145152241311128161776131152164322232234174612115332571227623511161255256613321231112312382542174421422415241141732331221741221722234166713412141641515212488584531471631143564333723322534543157255463133278224324611522423413645114623211633526341211262121521246533174533342234455451735111776632162443312451311633324665343111161133414336424233211542221661233473612622225142338514311817237526872173446251134713121114621473457642415673328254454143113162156732841724311331371155173151246522523313415762144315445322324312173364722253312824435714633423635863154315426623231386423461541325652626125511612651162515163246212538434121211436211121673121261543542536173122714241112175246212722375716336213881651253333321125324255464132545723756712135122746321427115266132322315165645322117141447513114341361324225443232563366122321121116333421114832511451363181154173412445125615214352511475326521324322336355465634124332153223521145332843651811613562554314332333741766421823541321538312766443353152332512242327178124142434844211423151662423618171112113412335681653421162522254451161341225215416235558435425471642572426542472822324231743474423367441128734262651346446231412142611444325257343134732211324135237461145721315241183182831145141823457137312216133257332316473232536645847131352321223264214511114835313173244321655212822343415151127242314184626622562121422343412266756243512322266285444218525314821146333234248353376554347742127245666366411553515312328331114121341283634245817231437621312213352234571322462222414313843553551317657126164181165476261531411128138265326542517341417132323135314424731225564234367152752823115443823534114421213344221128527215431283265483323323513362545644342152743427436111517112173231635464263266331631213721332743416523141721553511654122716112131216722661422334514626216425321215131656425215513114211141225211138135412862213214575645137714656271231363616451712212121118536423163522212232331153161316414262223124134461314115443655622656251141634135352733211112721154435527223142536113521332538331151531245511341417122328517184127318421441741363332321432612533351458122168333726132353223351753663351441527254424261323316343632645282126741333372542532733288135113237873613145514312226235411323382164126422512777132411432135147358441565151145631174345112131863514872262241421131311624574157315254222635124331622341126217361231371624623436121113335158238242511633615261813141275344385561313342243123411366165133711481635253613164657131631584364112682312111652232111451522373547545236112254412334176326151328257112556264233421423443312357165262376328424258261142236155134112223144471132382234214242136863155163463154886327472862336135131287511113511351342121213272312336232423131232233542427457434416133612242333212111484162365331853632121237753323442315665115146441335112226265737211565644612326151621144527123223215125233546525111381253233231313323454533121475225563311262423214377416327611612425241514323615625475684613532411431424451262722722225143322541451423231721251444326133412118121233116162741422312465444416321211538331543131438823486632624734812264235117524337363253263451524353112523321244752142243331421143634215622742181341461112366651842264361127154454154646335315124212733142225361122232861813417253552154223111266621656175131117412551172124483434315254462166131218624222242141145224422581472511412325412731243251716354221325212573451261723411315237133544658112147561221241224233354134411123345311732527431123575146285338376121442412424345321135252513343346114343314154236124181754155244562861711341572722252271527751124534722515345116367144123335511131314243743211222122121647744486471111325112122157528256613261541344513172117323423631328156571314432113212486255454728123511171315412115631561444257521671422121274542132226282114442236815431624225133733353711162144324441621112422531621131241613114732342135423623135413127143151133332151322814453126526177514631625241766723116221146652454273835131663132316234326714612241153222212114122278213135233214533654751451571245535316223147171126227176771112115317741373255611112363311854542343421444237421215468256221325541361511652126111322235722244114112134443357783741616576641255815533233431177523512212126453111272632147856181315361845533332614355311221442716316652677531321361261116357513471312153236533326541213667412126335135521355312416511122354215126241414323644521564337185712116714334124134525314236173232633121285485546261153127543256223155461341322648553228144712211341112112611133142462343446424343116343261554264146111222241414325412312361221253368246311253625824212114335233251187356311514173252631162632211667444763615426112321214522727482122858277648453221444233251224272134458217331264373533614133116211177143141531725235455315428111272512271553226316218542643146162217176132443721726145221125641213728321126114741126333624116334474666224641243143421275244471433343313312554214823617131745521425344533673372137344222642311152252173621351421268276614324154431411134341651667115364214125351142312148742156624654524534425342142115745156361617224642836652673126657371642415742637141612161476121666533663612614383112226126525411211221831446164636222837231141115283564251155724722142386855275137152526114116241145154641624456115666411116545442224121222841441474213542342134522114731121361461282478151658322162135352451446421321627244155375533231262711263714121278432416511613532534311411668514273435817582321324522414333242334461742441422225316617422215555618127771241562268546342362663721231126713241627414351321441242653627343826342111836315212455616521132474517115435361242214436517416326213216336215114163735456627632133227652232182614232114322715236112723227135111652282531622141264254165782611523866113274311111534222446273346223112734112232231316454112363124515323151434153275233331242111361437415423741354112265654124326241327131221155431332123651215323554334461416223544526714543155511415111527562381413114735134523335571237185754371242373172635372115148132222823136163221122623381623525115372337214231123572611572574224261451434512242615781725424535685145417874722466224647145646133232633636415612161216537512352615514385517612721213134721336331424531247412223561451115621273125211245672166175314183515565112163472524221167214241134657146712172431447141231311612471742213221625336261321251157741522442541631453233323127541472142452126387514422131167342531222343432471215312276187453118521132563736133126753225132343623732421453347216126512311121126266524353413142374238561573645235143116134122387374213433214336358324245753266172316653111523421151254137245312231214241374435312141412425742341344123462361613134313143411151113441544265482223487424513215532113324121831443541634316117142544521543214451542311361522215131753323125216747645436142365743113725115211231165635132113541684212745123355317436518141255411543514161214424344371152561113414433221113521121315143451552462723335112132453211516421274833224126121151412643714363545177431415131541542621443571562245225663452366562632162812551513257746263714346535483164213411744676231731561526714455152216446264211215153121362332152657256834143267255376314231417114811121243566217368172524226113711353348315374412367152313335172522147515233356314524522252213551121226611545215823453382461383421635123565221167133337271353427155223422261333276137661538213267123276414234322424335641243321611883336165112513532323125121151526747417516372151431411543166836526214423844324331147162335142111536321636565414451145275638381532312161546224272461444846325641114321331311751444311166124751411432377162524356552415122425441122421357635171251254313224234331182365232833114123236211134153862161624335562146231352762333112711684543522314123115626753253231123312233244265325632426233553716751562456562356144237583228376481223162211335535566622212473243324537343312723151125113423256423526311541755134121111744748171516211322231734663572231743413156852315652458334514212831735127516255337231152355731123414311675667322121147241414353212725542353382414214352261212536174244453273262222861211173654332433161156235552522717273335418586135114671217223263246125278216236321154631251514633567484585645275754743442311242132572458641823156241415154323363266122212544122155773123212343214141753124625244413112121633122322121152323441223412445324145162166631534172313131111157542551282443511661614523551815321223144232231136641333721112621422514255165311532412112112681521651472121311327222414312432362751247411137122543412284615165333214511354121727632331516151331331266811114164125421811511131158316325634228517213254516615344642334224614324541544451242333513162121151161262721127354625831114341154623535131311228748445321226153277235422122423432346212344821357321131211548311312643131144163721512411214138522447412112614211152121151123351132243162641161111122231113436362626541317212122633521331442222634346632717144132472163335458234411434614141123535253522261215345461611674522643347221451231261144525111243241634722541121132227572836771256516175424541422123151327111166473217454121311746613514712624217156347122511751467222215561115261673127626614553745116611722331653125822643388311632321553473615711373252524524515431546355312116338212421355411123162613381113721474113433124331272341184536133335231272761311417248131614332325674332446164272563731386474135533417354527243132337612245442121613654172273133115331618626243552288121516381331161653655314216233216568213423122355116616231533663322541221265131412514341241344226248131422235132637453823254822331441221173124473134561641362524351216714281531232332277211241444562334575276666525312113164211512313335421652351363133361131432712431167822154218245652762341115121272311511411424532651121437457655218473676333353221215311372631164365611722311455452316535345183431724433265313232211321513644413641152323215153222133278214532351252534171378323432711156663282243261723346131281158754121161274264225312323118511111171286337132213743114232181151526514111343525311233451112314531644421117221356232133646152221126163512465322315121163153511426463144316764461545264131735734226841115211312232442712253545141343254852525243123274257361752541114456561341233363136253416232221346344135125714472772877541518121321515551723541121362125543423232154723121244121763234482316353214133424442177153416715171136723333314422455325152852823136141112115231132434832135336741521175226643152116654145553442734241711241642153451423412261421612524231421734233325131227452251223314683745231565257111261112264626141113451341227561625565136544232185514346263255525215434523383411223111233712165346131265325251131753372321532515222152614133537113424342111345313454312743716527633364544512122214182172521153171135142134132318117145321366253618261321511415361125346241314555717418632416832183652224634572314245486348211327581234711146114713235217542612212617157317182351344211382172337253335211266521136422525563413112541421143512264633655435225142234461151677351723337142541246211143331146335141435772553852131148723245611113735162237121683823151663134413321332621411523155751524328434511821556142755158461132324614341516516127115631513332213518251462121222116123616161421332512532815316153856312171417522412234324352263257631232236735122332835322133173136521145445121123654715224272163212213342652523661145353252142424434527173142132143415114444263374514523211213558163132223525777425117442382612524152643413534322466112336114147743225435134314651161417135425387213125154214223671144111283531636314725311421533515311237335725178721842425381266123414236141655272356131524184221727453812313881457325344722366647542412533215511351251433332265633645134752483751426341335422153346211411214111363833154855113341145512448276521245212721216215222315132425442236534285215223232534111551121262314221421252645251112147468512114224751112262672522356141313371781213433732425435643133111552664676412472414435143174441717515654131511321115647347134521412712615735325112814153223532613216132436143182121454724234111334127243443652572256432466511482324131335561733255358143113211364122842212342118313331141111242111625365321111731524813435154827224342653114117841632417524743331622724621254132115323281348636224573112276784332713683127316121256424111522314232523121222133168658188123364164122462125218211411384151622331656111247344512534842512322441513354351123552448461242333144352211552331274347163313151642224136333416145132326315535322111151235162221144232186461122417674723754112421526814532163325344641235651421522214427743453531713544118423423232122235148414125524312322434471241223163244428233845565513143321241222251124427316151141235735557233732641412555516124671115114145352332545414136151412228663247114164251551344227121531175366335535113444141422334574645212747112511731462345314157738314341162124116431124122122115612212376651133483353215177332512524552426533856414545243283284142332253427443724134356414463583365214153126264141237811561122712645622611532552284511462615373547351132221145158313421376531433121551614212221242131551123534415364275264126421455432311438341142414173353712656133324355611263466411216422114842253553237726432121113113513382331126212213312361546621216722565552476425462341235551435131125431646113215637312121411531145214112672422212652136231272241183276422511322142175162371138122451156533162242553431163513543112172253313437716236142154143245263235621331265234462117121723262226453251364314146442525356123563111314451127455211312115643422353711152421832172421541536323763671225363561442226222256414151244435336221534531361324121473426122361817264123343262613145623151511751335672836251333231715211651542214237352531438511316361363325212342271735321156354527265417467241137537521171517464516423372547332251462832312116481251532166655457372511436166235737572165156276222424576323874254314165641312127643122418213148732111184411628327261344121353212614237234443424111344434521312144245627827652464221423411344654262161786333318318824411613134146831214721181431211415741571151642135415333474276713113413111125145337412242312712411141541211451312734116223251117338171338646621177314453378466212453535344334473722247133127634321465343411316553555212623117231742371313542248113281547683273364138521357742623244236211313132213342335241331145736633151424334268462231254226414161671147468251221764625165712225315446231461342472314266265137465332273337414166477176252457542523732331363212212232644641162281222115151432243646364235372277313516122157761313411362331352343464353133542615533231455272313261311463171773122235348267641313561151627155632331363134443173314564334121624222272611163634251143514543331585512241342173633355268744736144153575415155711552141532853733223151523461316112438136656222316127533113737321126762254365151142373457412133331223374152651134131455242511516211415241354635436444115153515723441337253511611522422251242532111141461166324122124551764248311144111462537531321227136124631315643236212152174461224335326332634115256161431454133442113642232332231312385481132255234141413132551457421148743242255221652426471342432142281532234341341524113133141671426521111721553257372441233171851433475234354324313114152174248433311462127651426311537234121675145524515325815511132321211241333261657123114433224512226533243227482414531231631231364142451436151271622584727422416134114525441133312526121321463222618483112221385746113622253118123143122544752724161142135731113211151363232363126161414376131214145484171162413864422364362236624516437242632747141121533512161142414536425432652442238442346453433143437752142511311442424362272143552453231173263342136453114333133551456285521257311331681142141272132634145434233232123334213477884135278242266242254211661361231524713166115118242323281615411223222152445831453663664131751822452141555327813233231224114111422361154121526645533524376283722362222434733217311124175175222528253142821341134561312216381614132331315338541238554311131336125413133476141237252646823326143134426332362315134323315465473735425452437133121751765254154471234623121226124147281134112224245533112435762522364458414657224114612746122463364235325621346152113611352373513141761112266435351213124716622553151114141321454162416231835125213123261443531525752421224514523222242512312136223372125342331361584616474331123624251514252325422255443111284413413462651516211356162435348211571254241762351183132623351744242144665232272146741123132568111134133262371676432415515222218133663716623522321141631654416443421511326462113313221261184484261122287442134211572263224121724843331632317661314127341644438253311321326137115446313132241584361244213441561373142421551255452212137216512761314311824456313154532513531416173314386233732714243624531432253335156215521111113251734361214415323536118431414267183155121351436335131622253531328236337161371732624138713276333456513153425226111521613145582115213223735144766482312312278221455372225622425111362321424215243126415125425453321666226363538157226575411637353324561384251263753452116213623132742162654651154157216733162325833426533615654411534641142211212122511687522124583332134411245623127755622171655457755336115141115318344722364136225541151241722545823211765171142174413442325555851623424438344116531546381543347584164171352214134141143144632231834723682132755132111262134317323532135814435122324384424331452311111336231241245253215331746133423314285273274256411141413132142254312312771112331348311343215161764325362251211264472153421236364214273135642612725312325222344452234134136153241346533127824313441351621133716668141623213344352266755321228223552425233537851575521226511313311645436327312145612562313221362555652551461754172342566146433733736212613125172214773345273156144146474315344614611236543321641122241222174144133163413414228451442151216413312325515823353423112437138516422721155622323113313146364347227284353426716383581112127521333732226331381413138313612261244413774773226164225332177122312642724451674844166641265235335123348332524621422371322124742111657563113234335241412317171313744516422532622211512228876282124334431747841452112444745222541623315211571531742683787324641623133212344115853213335715154742241442523143416216316457462612321124617354311222436243114451335113151332211133366132153633613125252523414662412123421153452361335235364431738461714264362122115241343522422122184435174362331362323215413345312122124345213224115132111148674335251111313628833311221813413677544417342412663216231761443251114536611431232231213531135563226761422426787643373531145776444224723122842662342351453213231212231542516317665213233321537631718712675234215226161812318142242272461315632122313351332837411442533257321735131562356153112217134163121754222474144745528742172841445153115421116166541833363138111664244443713441514416545443217222231311142164124571171131274442143167144216643327441223427432266132352423121333166253623152411314122117735431132344214314424173612156245157522333145334563212743533511655212773116224526521555625321114112641264535521332235663415252146442431253462116125582212128667324833611861572521355125132323246131715241632125113513521154121426117362473524866314725143871515155244426334781553414444257612122675214423463731383424272342211626251471662553624337752312232615122213644112417735441843413212431422511352623342252512542737113431541546523771123331431412775423413414355147231132728112341233154352152821115322342511314323211113431522235561631426111426244631253412521337222134346432427447256551261333315321331223261555351126111313144655411113463236264431425211521223533223671134223531528225216412851133414372812114123523352541736242311154681326135613473451331441771742545721363215617536313453733275123542511252311442647257183464447474442555621513446113113714663761325113238131253414453531521426112315317622341115762114415211312151744111134611325481325674612357121554214334142171173141673853831128418773224114136322216261232221143253442121263562233251465111424461651621111614127236125138471122616411416524715314141282616241363362234574233453141311544213271352185333482126351222137141782125412466117312361861452322126523255117124412223654413121427642316827615571831154515431521381645423216135552213111156162114428112572722188271564361327623144421631352122124314334614426235537232651124633112361112733621112164352341165223234151141524352743543511462324153741516125317163211153231521151521532424442463864412644121142323322257711264157316112134286133311231131142151633515246126511523131631531312127215255141432162423434244537113736383614242351515342131116562236252432241631514726227363466153514425372716365217243511852547142521633231567254337444731516425414246141516325244718136211274221632163333343441461125154122445153341464141346427423212235146362611256211332581658772368812334634554141132111712528417223143122323554333223235112151338264344143344513273244647138514341612556111357222175321641244154243215614524555831682162447555213165443581446244143652133361344121352271151235533372323443171413725336231432461232744125744154337255674326114123542336325311545152224651151532114442343112327624121315244241346311362254422552764122233244345575255152653321461422574442242132431567431423237871116213265552233242235114211354578442337424242425513176532152425133135421312543111214263745355353122534171421645421433724124214135211457151415811743317153184131123515431341446135411451584731332112121544121411211142276183136251172322452121313342127632733482451513456624462163242443277765511132712244134141211771142321321231124111337455341331626467446426743614272314431552316143711121132441161371142114324617611114115523614151146313122774312331525462145223117313314266315565524434531116611786115315632353286731218122216321333723332413133444831312682243812333114552355751133146621284423162131456313227812251321276344661214341315737131722317413452221263426513555323331362146238214244162426557124283336718224623161544151254751612175244354232323261311213614135133663312231463335326633351146421762327233235345554312115372221836483817132112534131178214471663415453431312263135413125523342762314234244665154131332671742132152547523416214211214427844255171546252343651341231413123753718214321321532221441244512232376286318411124121162421311488254132133583321373424434563444122571461166253416514121334361435413242176365413132733152152127148461331412212762242443422472412167616624734282377312611622235358743243528827424432321441871211126642122237344821525141533212535261213123532353211311511134334355826312564144226875644342634233337351831245236343342412812218541627584213373434523232276482816727534344632811311161752511147314221123763221764321271216132512257312276328612331154115521322513421313542111453424217221132412122321623357813636415113514264316217834562272211413366121232214214133215425227432251542127136624112775327254237223333614512611454153111114741111551432221254235244427412353712378412211112325634612161112241716426315525254132232216623372654437211636413854253132741653212486442452323245111351442534452244742482213225415431263123134433112343542233263115222743657257535452273113271217622413343125737163662111285442332381316435163312542632221354531371211323431113711321522145333331416126446132742765565865428414531371111441531117612656142523465487626613735222734631142526211211442434332245363234612331336382223453245583376152133222621854412142872312262773365173235827322211354251831166532412156121365215621262632424151672313213518131345223426623464366342855713511633333622383123153256312454635431833627524146247637226158134261372542134222511814762332125653214234253523175782141152121754246221135232511223246315726732135365536621353431257578341117231424672745244612861541212635238321243673653344165213242331142388133444382361146122264261143514433234444412885541433423344115643647261542652744262132612225132114341324362333124133552577117246315135145651236143121552181233622461222115322214471134333112344133157243373153372314416218364213331312325446741126128421336152115522547114216632331843147571346171415443342366563343442223217572222411131611218413232213232712155322317112211258264642731443126335513236144158244261225133433414421332643155453454235535316215651175113661142563372475822218243264621712443433835466321724544222112554112433823513112212244683138563583412312522734342213212648444555241671144214532247342571134221823851681211422314355324558332316238463613871466433117211837235243543147124332312153351122163114232154211251351117823624431842611173312343152165434461284711353311173313316236251212134144426151364854475734222345271372621122245216123563625626315111172654651364227214215511125124112422272342253232443114156521561121314321622485215343561315114361223354631212361324722332363771737124431222521323142581312418526112524411433511211414331242135651512617126423714542471122141462262411134113861373113251155756433114644656136161652456451333436167281461172175156342723128345724375334123151222331251454363546141515811134411453246324242351224113342366516161332237562164413452423135573531124344461466422133315222584243111113521314153422625335554162231533762515341212641151746316232442246113634314526145824632243356171412641221333421513366161327416165411622122331331325233216725244151252372131632224214534526123154476311637244323123463151535756621115324184243515227542512584222144415415443272345455151212435224423111615214363232354322233535642613235514611312213451472575377641775745251158134618136583268352342281553515172522115413517424151776544154245148114616452355358312137631241233132514262214116132125232145455363148123411664231144211132337334753114111341342243625125514351164123143224538221373332326623233328444767146443485222211114318324816321227512522452452212545642443412553365131131731723154355441221232182211272422263462121625243233751453226431665682218241271732123113711531332215383527214163332152321125221132274211461571521463737312515317134341432145354545226426212352711441166415785417543134413351131264223311145621222221126346461622516231743216521331242314162311312226343521163823225235114432113256573333532823423464831811441353131516652122134221227124311273323122831153134161316211721751153512624555221322412152241242182241251511232131135132183634513141542612311611327165224163318814512117122433515162223425821114348143113337114245854273326314632212523324272142411824527433152153161552214411175771521155122226163136341252713111733521211242464424122432281256138633535736534531471135111535327327132125171423523637712342252111752845414411532617553536384683232342344544324611311562164661324111642631421517534511552355615412231211411441782658612311421175256355411533366353252215111517211342627313445425254113122236714337621352444431141123331744143348516617141652136851826214117534732522121333375335221416321451187775251311212323253142562413847152314271437715176151145213513531411243128751631185452262125244534513256132353276372843616112611145441117415212325177266411376416315151124644113231521652552154164144151454412667386675256547531721844353347363447247137872142211713217512361341213334214211616267741524425357247251274231212313638322711623262833126413143782131831128643214245355427171422754117537527623644155537623148165135714317432656254874113225216773156236325611533422111852332452236745222565148411311682582117432551111371174242213635316686243341512648382561567315221343273411121534241235313334265143342684276663133142131161445612821112652723785621442235163337114212146231561342528415321748545521116212333357653311253852423113715722348154551123553743642711213422627212251232442582122181413241161643544527214237714324625641232236214157675562253734634212256527234422337122361265171148416223711317215151468714215421164172443162733641127412321116554245438316214646627131213542861431125112615464211431214146472156517543224113531232111123144141761146565351413335341376171631357764863611142134412251381122354115462212732137622233621133336125341133223445661745216722421213341214655274117621315323414853344257231113225221324872426264444512446421253333261528513586228533342616661444553222632613361116211434442518332233111644531243221477165746122253232332445677338118518812176131232126144624524425755411227183442221157241321341253621126457242231126124567125226225431123415225223221238211531451852243862222333146655231245856313433426151342643114116515732573343524412124151432141663132725452155658223521321161243324653638624453312515464235117211237143424118723445151231554232157313152616134545112422351316137634541848345283241241112155615344365531124771333621354353141121452413152472424112113131234242432811132113275641414174555252426316366455716313122631344751151155231323123366823336145415643243562144221325734466512253422522244661655654243645262755211211318145321166246122555332127318231573442286365423561367145422312212424322412127113513354714323244261112217513521531831214171854446111134635231363333512325232266741367243156525342523431423711281424864221237664222441341272155251643441616454362447234685113518324222414251145343311242446414625122152431227233364111335547424845442327574244324125133722214431226264332726532112116623151125122363475133242423213711421433122316561441123223423162422162341533441222431563221241814573431452444262612622441672176315366313533142416225222321467112423362172641111517653815121262754382461262135776123123821238155113244731252241311274541333423166334117312813454221421712184531128644255215434115244321533327744361621234715631867725224121736433573458351451772456135312112265222311535224115532513113725525532383763711146232331346551113154135116235764432111143432543473263225528552123611263413432382567221422444722223137421611142452313156143734182712442423142422522531154113241114418316421213531146124543752241145227264327666232315417455485131134661141731113844817122133535214615131337635321156462111157215266224131534741417247454312511554662322732435252244344265425512211251633426821181182815814726521151254236235556351663441332545713228411162633324425652735632246222435425311472756388441523314142444131243212141824853462565713535113222321551814132631611364221641641526323222113422242233271145323322613463421461143123122113123463422111551225122217815713252732763366173121434121553633751661357245215445433124221233445136453241112234762668612624153246282133834421717534114123113423254537275314113433176261334754231212432321224117523612126421164537872574511683334654221261176412256441111645564232561462156183151442746426613623752351411537443423432232672262576411425712223411173136143736113213211142244113412144632324414113413413172215531712215363145452257663414213135163127313442643434542413574826513231221131377437441621334112242427412825132233652472714213511355148522243312138314211474352212521312346866421347525241311112212547331412113436518226214482431236143512352225262451237811314532462114244163362821533163522235763416432355438425531351174112233781512112217122312732711272514112447582654417215545513122632346416134433643311541412725647741334117235416366228812114422211136571434343434135121215165344224611215133567424644725431342361631235258752627122832364311221677552451534122257146581131311342281711327432213663352424163224231627211322424435415124451348682437262416115335552353262245636571642734255258533151344146543113461622124646141126412234114216426864151111351146164156175511252373114165221148322588332246358117112212111131547157314326636243136215767585411311144455267514124712732244112252616134822661618523132132471211454424131211221111263152534153271322715523324262563122447143131521423611731633533522231411348356844412161113621235713533145412282153321126165412354134812553512233116341532132858111414141115524543137614521266412753463152122232672764452245246364612552117112215532224121481735121641514112245824124245311473137158121271462618368581331133417463761514854112132185611641355223436242672231383131732361134663322116437411214132666713627225442212255123131211136113223462541638314513651423555524411725612222312431387371723341573112712565123871233531212531221214517211285351351112212225311323161542821624648474325644114634726135531264214811133315112334531112212173227242242164586514676744724541184428463322772143431631371316123445237424222213512141323324822384284232117677433121714722355433132452134373257431433371441151131315524152232231111425151115517542171371314311611165115835342421242117146185664242841251231542365136623332133223413511637111281242633313328121414221411773118722334837541525274454441212252132233311531433314343337543113422513433222324153353165151243515434321625214126153238642244474711141146111246463851444345114525614413144813737322211135245341231325432354714324138133482332433126322512161254174225551732154131425117524343321413441774544312212334634563454652362536214114233223215417211577242341547714223188213213163116655135832312616544462312381671213716234531284181863212774661121116731123537565523421621355522644626512122111446275424147425611721141324231524151415441232122835582255735314221312381134327554416648332153111541127112832714347221455352612173282214753633213135422153523332871446213251227343545315441422347333136453635654242324235325713336243741226144123455313134453745617532162171423356415116425318421213364411622256118224643325173156323515112133132454322341245231436413525451226313125242713855113432635342644561361213464252653483654342335135761234211222342831423343221337221874423233534514734181427233348642474275667414134443253136631225326122162178742672123334674523526343741753833532541855162166774311464434124263222426155232376216415345112113441112554143221533331244235157236131311161154574263261522123453236353215131657834861225255171127263532112381865653112815231313431342233655471376323116422815144413245335181745511611174222226513181473222285154636214218436354522413122622324222231641457461315163256322431167422222372411265223111643112164237473162173224315122152133665244433124425614881354246225252373224615642135551651614534372174346731121224312211412312241431712132438873252452532355122343214112421344167863142342323436467421342221624761427354755223627822255312521422162145111226333111761326113234425324442327257162121811672441212244675322442321331736143513717131412134475251545224444224872635112334261655821634123227836221115761432333313523422353425332115552533613351111421282322151382252511254723315128271633613543232284256325135323423232113432416833122631323224117533313173661412432431365116253113135134443124132266161723141145323358221332233225134735154531222221213528154337213124233251556122633126444212131133522813363435212122421271154222465164261454171126243865116464834236511265511322231322311336418261255184462451623112132516413411643555731213458241633683122352142148221162245513221121134253121424323515611624251582423833151422741424511513128644331664521827152634412623135433242615225148441682721273334161156147212471516824372262653231135211161315651273756267375236261148132615235123571121646413513333327212524324252251278613223142211234462715323331477751742231516113344214413171511113322141113532414282116538321154422454272332721635158511655232544515216621517442343324311174111113344422431413331526376712173121213361312382623825323711211525516274441157522628441735225162744641453212317542132733112766123645318275342111233233224233333311345336356511246351423236431335615511175255223213334315143325546442261113253111135211436443358255131246113352162223284512311361116537135532211314334274462217251331382626244121521325251265178443124445151721652141442463245244624214318521214763233717518413422734536312131664223117321563451362325533421713654747741132484436632243331111273513545161231114453438731533632113484253352627137237163212443612122515423226316254114621122213126142212825111735241684413555241333221364657632642613252413455426221524177261231522882484226441142121563856722237421854841741233121864271131271555511132763366251436254854151663764415214533376131225665235233425251452835421333133173116117445433224274354323534663412111113345822155561235243124242164353511314146163163324224754122231875483315542624237145223131422223444235155114275331373166113237212546112646251515183121635271321835323235116181121642255221338222343621214454251211355552453113614235131121411516838644112814133152531273444224536524343411152252253133285137264732255616458347421642421712311443426575862634141441351532784437243321261111244533321511224321712631247433121132285321222332314321533732433432133632216354413721153124124463215116637553221111462222147265111213471326832122341385421621533263621272534174844152411464816318324126222826624113142121574416523575363411312147141265446222124133133542438611643345622151316366523432112241524564245734323312521217342135261521852122427261517514251371377112673261643235836223455351255112451213617461442244524631312112471233416321115331323255434516251561323812425353411454114647351844246122176232153277132512348223318861181611376783233314473612513211465326741443212335745114147481316333321141138343131121736273626641743631151754221613718451522274226346223312668264524834321331466311411427251173143341221314341263151223537224525362631157323323421735311646721824312263321316213121445155375514412263411863241121133273456141144254134613454113731425187613724445324166272153512632377445435341712422114532432113611333424462611331516373332816544118511123428641552264411131348227322833424432116544111514454164134533121376443644421352572131633122725286112344642315555444261234251623214135452223343421521133412421222234162427336333156752331136673221132341425411441211374113123122135251272751833423115185812758221433133352214333635415523123112244284783161427815361136861134135236515213337214114256112512521275217182217212347215635143621531341251143721232822766622121236324115333124336515312121617315253461221351342312612112371173552261121436143528237617123443436325165174773323116454532164488412644431242614152365613413245553124551231167511223122252511412366834136152442611113323213316876127211146211521274224424823212241121224214332124653642353728587168616631383433457326482112521452111113451231111268221623536231235111311142112145123628121751134516531247357123321111711461215362655112372312387441152412261346111663812311122627422411665462814584582636665414361851511233237445122552142611333558273316213551143332242111262165388212638541424113715133324363141112664447761452224312537531473111532235224211512231161231252234545412584133723623322252561325431225753472133465412222711614251122346124212248545111372736312632213334544722333135751424322674523721334116524413127181332632436421332157527136332131442272324252281513614212732511453223553618531351262338531126153127522531328441412318314213344523411122334611347214133474125263112182462233313315122327533514164176552112736221133162612121314566536524185671432736521272353526122342335162312213353211142262142254113763368754445261251312127671111124421111322212232121222728478171153332343712432738213371332214826871226242234314333436334216254512253126621162541621733525322544552856152324221444212363556223363514262511133232384144251666416646124411514152328755814521631523153241171353414513144555424454242125715335614871333325171525212221723331431711156236561331813114183633222255522823112362511743131135412136887317575432251623737251421315234173278113241124262331331514241333412276223621651311237221163121571363133233237112244153112134121134322216484326474722146242261363517323321218777376421115556256411445315186638232162444215723548211112733443443253142413411224364456333661232212222154154435263446236311541422222786142361113654344447532712313121614311452322122255244451236723154262121471122165177231413337215682157775343751652522341813234253433213322236258722465432224354435222342143345223523834455465422141521466413433361443738683132227521755124213833312427212411121166434136742322447116313313436218542422554134333331332634344367515341455134122146521147141311233662151425255232458345714726314345411114713611454425324216322542452821151221424141241213831131716583527261852641133415164727412128363545424511145852852622721543632664141134426133757214414471241463466144114333212113475321612514645577344152117241186161371371237111631432232272547223623133244265131183113335153357441721116143421644512111112157278161416432225132424154562534714871155513431734318642222754141353377734161425226133635251351661325841354462112112227176863146345565252245634453771655431431236518341315114156711315311725442311132271651224413148626271131534351514231414576462616275521411532261511123521436421613642431324226532514517143216844312141154432417742323351353221132346738656214255762147441252351734214111511527424447172232563463164562524513757755414141157252522321185221642223111444417242142525658166552112331326144121142225341154532724372421424231124163162331813243271388416323822255443125152164163111711462441722674551131373451164172318421346423742624122582453223541154147221422731221561442251583234421336511523121352467138411142815552511643432133133122133445168463361514152375113465243866634422436221623413335643571742153212216124412314115311473314458435224362448161322241222142362443121522351223155131232235116122725462341115431641634161871236111532353135274241536425324617151111245334334116234222652187142243464427342125123141432124813243443823536725115371443121248445133115164144411175365751161122131216151112751852415164313343114643636452414415572312462444362535333424477257327214753148735124281545753261755631721414612156643475137173735241123374511211322356622162211336511527224443235225512333356326612518634254441731425221375456458844117313114412511354214273334324356626713136252122874156275428543417263754412651222146163551537173526341432151372427818117574232145546111642334126814524272343454263626353177681521522123312666671333574481116215135333265728651355382432131313636112315214617611353463134463238733118211457463521123134431512423657321415165322571224462357123661541266761228652222524236182166317232113312262161434431425431364532453114315215132845311453622241141233323238512746323212575321171121213421121574513848613315621143532412111263816537633345122416213371231281417282417155255452232135184653272321811234412434623171136217434254326264172615653664264112232433727154153122613254411117654445133648112143125821241343711628262562231833243213231221312834433131445264112111534111836454111215224411312844131142711432873143132346537713133127232124217265176414214313412242758338525183324326445731233615725123472452463317211211321254234131311441115513232257414212681144212531223322333431457132313126464117843322426414632235261344242237231123323216813118144152217116471223224633866311113642273123365514272414451342146231271532156511827411752313386111621674232338735331526342814163355113114473131141331115842836357515144633234222116434537421174664652172114342835431482428241514367215477526213148236112333232411367763152566136737654641331543324333251448457312125732625231116835613161123121322224824123611517251542342457234234653422517253112118463123211621626455147454621332348312128312738342322142185125374312114763462314431562582485325161117611465772313145212231221264261165224231211253334142325626165331361312662281834354614646638364232175242118221131155133125441461652221313456817432137582164164211545414228124241816332335231235333771131416233311143522631353855456511312352121455815523324111143124141716135521551148484236532257181212533155251444523221211137318122341265361116245111825166443462414226311356366216665323234313111642355311113384444564454722162124153142521226452514535245613513257163663128655721314715112633742452251843375484372552234411451114731376424222117324237223811551512236345411342622311874721635443524252622152423153222114854156132126451454811737113363423371123281453685235113256114622523235411127536343152533853314358163341617344144533324423445522221542443135263224613213211312431533315411263413524361172413441327421541326142316544617755221162631346727212245832321118237782755225515521843111141436634113361511781122422515871324614225451442357247122672421522243562335217321141462622356126142531241514136111251272334231533625221323384314232276518163124161533336842344731418275354112633142712222423522354115742544131344132513515262337121242551671555413462812116446212323272432215812246444122615522225317321522313446183623331241174472144675447141111243163147226135434252366314311232281436111421221242341365747211871315432117418553531513618524221115414587313125122587327251133131153223261125523621421164711616324251312312137216152131861284435124332673447418415655421231522111611314264135575731452158515446446327341332133241442232637431281414813562751411532616216112316273511431343143133122266414131574462131134343413931513863518352853435241257413272211221452263156135721836322251327414241244333417842663231221241353123132171123622111136144473172221211411527741242363285312643513245514713231515633164251122522578246475465113757221476412421155741837111111736212412321437144765261514586722711221323157362415653112721211321422378133427351111276326116252225334361354384114342617121845323216162345113233166324131324433855561452631215422554264612365742133162343441231432113123152534613332415447586433164123135255536625623513735322311137236546254141544524122565842411112433124423742313534455675145226148255122153164121621223166286151522183314123247621123541416421453645717164383335333411361572211224115266143426421613611431651123532217737154264126312451116242163444484284123211163232146142123383518752153216451421664513464812116621212415244246142253581314621733483343231211581284218172511211122556133273444322312121882342521146121221823242171141426313245211762615412262532874122146371173151312125311734612311312154222326112512412233162135433331156641151811321616366822565214351325217112337664436724323211321421123862114425132222261226171211312355112336231217342271353121748726435733224173465323122135212443444412314113225724123634262413124322237154154122731316754288222164422451156443432255361214645657525181324244141147512753434441436141548675552524665145221545535356242227113322232126253855445333422482475712261181134114634267122324226742112823177131516123141665523822371161332361327137435642151352315414555545312377136541515416633823464447345423141443211222271365266132342646323122213542432436443244131762563145762663246672153286322233314444213763175221356725623421212337732473371761323526631443611575716136131141223413153231813324215223522335255226756673241363243212682212615333555628554175225437464165512151342174723244312641171544313227211473484144432832727563632117153363212233532315211313621312227334686337415314662481235335213212571515561125157711812424111311188654252541313333742312213342731136264544527561331625351756647421126615123123215143574324234581251374123241447222132525156182157173561717524347723235316226311455323237575232121216344321151642216734661324824113132324272733321352262652668442444222225412153445218171486121228542222152336522321152112128532321314553351433357144522561661314813224253138412562313546224342652683655112522143413625467772516322333423652444114413532212571343454161215253141123354723325125361316145572121322217316357321345314275613237113626167341444415522121176311164136154542248463225522541421754511524811221584112148238311257311733232321215134224281545144651445434353633132261443322621414223653632475161446232434715211712442524317171456524442723421643142123123476171713754241172462221411337251182144242134152367174654315661333672214375447481121237256131757136762653317433733423114675213135218423211587112213134326217421121563844122135356875637117273375475633285845211257375181512545371347154531114824134154216547221725234371563252362742412377121141342234145232113264554212211221123355182321246712512341516142232131331311144113613263213384482642242714472331138871253215141262454334134173152572111427342112522874773226347454453341373216341452653622384361115112625231614163351823326413322434826712521515344543522275325124235321188232611627712528723335374236384261225382132744214352826226145236261413133741321223445113547455715436141364473572743141143232388243676624338451132113123335321155633318374511681553112632324864423243422515753353461553413614215344312646725334121581221246111512343152222113314171827143451362116322643343121223211545313153124438116252724211352511174466325611277333331723424427265742223485362456168344321425633426381242841226113612222211632133244344614723133244341553717312674364121763225151543512557424147247117651213514342573638734442633414823115426183427152555854125353452361221325353213233173446311362731143224311313624223823731825553445161644311365321111344541223143122474434141345332432114255841262312533463532222521264331531135311671123673276657183112114262125734371214722412133632454662442613442311256348422323554235182621333224623724151351233411212251426316835716231265343232513362212133223426756224434116251372314134135125657614334262457313134142267415113271121132555243146443241644237422634212121127568334732113721656624224277111741164342173121771151551565317141212115313251611771232413773274575116435271362151112126174526346461164173321582215451461454551556444311415347851473356436113525122342614246353161478543311124142353161243481623645433511314436455461445325661411644366714184513652121611223322216572345242314126144121133511355162511751755155354632335475322524816344214446772741465352662843125236173541514425234277232371326521415835442142712526141251146253424735657215441356526165355117547315534112322111516111341416432123311521114335132261666315125313515212214612333346234231142232511152131265161213562526215462412621117175121355341653732131512834335242111272141326433643236113443281461313213226514322665524237415756213112346752414432111532164551135155615714531622525856142253222136317223314536675154232517347332783113515351234675266612312242135113266422212773213174373116217112128423115332256533312554512247618362245582424145615163365352234155225516511121453835433145151516211241641322132213321641212358712111152131455118143543873424312313152442551221272232413511167111313535233627166711136614232133123214333333413213231115122123221152352466554434734127314235212127546326365142246521134512333122411422856481223415432214152313224225215445523612721226615636283632114364312246334651124511131511126142116431115111122342412226188424311444332614222723356132125611723137236118338142116172715322241712222816442543171246432221514862542132222326135111221616472341625521184226433563314747245211174152111675313515113583671533436337243145224125125221135566223324215322223114343531627518263151717226321554212211455235133316132457674313141473434241512744155444731127464312615241116114438112235475231526232153866114361311642711221512258746225253312153751148452235752121242334231417642111251641661312423354422234222552144331455127533142515524167665253622161411224261656242544578283232862777343122532172262357316251331323137263257352342241333512163342431347421152241655638552244381235555326654574338124221251376712815724461612341361712376431327727223361522321281256372125365824615177235131525236115173345412633615425244566155653511481323212652411212461221562323112722317326523541254721452453258238411713432312872135127673562352136244413243371211111313116512314517331182752562682311512762824155611135526265234252221223363353144424422736412325634163423143614147114124827216121251423263232628622116441735651124317211281337517325256423267241123423262712112162141215254153242232427315355123243136122411245631423835235151215432577415456544473344348247175764131442272312871413746324131347164111123127252333281314722322381743222512813322422421122765411326115712124646152631332112416234335286352141643337644133342413768721147154117111154112353213431551335411716451413612224454431426342162125451314144311723421614434133564517682844623184616348115138154342323663451211358564124226123223115162163711143535622564517114572815316216141223413421143416323211232142332532113533322371354132515363531183428167822223243213662554141135111142226355512352321215673511513725445152467274541126231131714563635423237128714823521321238812243235713774114115141422234232611416352713373632733652612183441451426325263361238122527511113125664556313421381564151242146682222222513473432684341418232225134243366322414246155344548362535114243312762213244612752126171134236322131576822584445812672253313512184721663818343641751574371617166244322435611385744344132633113352474473141135645126381147154361123465832314457122434151362242551323414251444251326475236314522236433341435623151553135111124653256531431337166542221431181531211215568314163582111454314121481323214151661453211348534567142115517311223636412122311216144244566331811244113233332151531613513222131223151142711523243124231255784236261143332752126236123453111116142165523765335322388524734437167566551121562214421531321134573424425424534111511256347642563525115222142223761114425642745478211411133133124223153227421213412457216411521332326381737625214151163536238682543452465465673111163153733165744111123223314515373558243737152477542465173572112567221624335531342422453111511475415363232732242115128421242713335543457573435235416716764132443425435612277312134427321214211342526837113461235238141427317462116322311331421141653725536116366222765121133514153433314222213213884145253552734151447613446825376123224447624224364531241161243174322824348382623225213624124444771212353431513137132563552442131116552123351335233463111168341274352114221381255677725552241214841533653212762153711126288435281123311137821146533723112242143181438334143121752445324335136556281435133125123424626124325421217632266311385622172712225272147531423413211235585154176511173264435132413342246633466314523225366332112141346521133263157271212225617135122322741451542417252545284112144272614648423213532825133253855345141732261326244583272357221571265152647462226525567485132221212323116545123622346132254723211766213631114214315214215734142124354551154513515328623432164227111151723121574735532453345611417117321342226243123141111111451543141155741118222524564421116241433631415262261654732423715344122242156241424235664651643152343543251133274224134433124523171642612141254642522253241123335552533426624421543251262327236417353223286812321234361833113281634442127523536141524261352432241341518111712251623321274753153431554167523336255835113215446511281152214113232345261331611552747115141121754254223152343656114627133643347385663258342522475512147211337135761247721332347641341111446221261113223714437413257583321812422341621514413341272331423261262534125834623333748147133127114441313216522231525513411436213656134412347242262225615572223367124137355225126262233735243466517244117483215712235676132344262124127564214146811124413621332221442244635634415725233111381362616158554222332145734534556718142684442412333223564381287152312464346322131767364413327132442464341743538235276751164225173121232314652443271183253111314582334161116513746462144787225217152115553423353152746421515777152654121652162142111112315134125361522436237271861144231312151413628333225682125144364235421374343333333843452521464541316662631441243613525121163245716236461521164151621341113726546373864127312174442735631243551542224634743386671546453512214313763363161352856111452361223211332264524412156235242425314143542333154635142823162274112318112153634412414175154215611224421731524454312415351424225631471222116631227242212725533435312541374115411535434662641122226412832641412341262512212634385131515113241425141531412132233678133812421341113153431222532332732317315148272736152158813484431244364353426213125815531527425221154335628731113857122628137445475155176412222211551133243332341165731582332464711436316116413212265124115115171342112821124167611142518251147111443151152312123673273441141514311772324413516334118115111143742266521412742242218618414341411145341466354458331722122286471221641452122111351665222126121625411135231642122384776763571832112543252144361863228122136127511124135264143544741261331348131242424425211141331131313424431311221531122231362432384314142261834124313538225484651111114333171542125161351215422864425623427816173246541742153331421314233382242355325323574254225246141513121171216531331223772542111353642152421654112322246225134521143562151123241411433262442522531516463231131221116232126513611243821213341345213131136323753772241135245413264676157428513151714574114547284163188712163315541223241623135171622316468424474421658242227554157115125588835513783151316321423225137321171186342832421111331421221356142214222265342237124411241422237121161213217122462154553316126554674313765241382625322317855121671442553714326455217211352446211556531432452541132623883125123413425137223244361225226231715721157131242411585721631714334648157256235217537413416644474241331742136221161324158214518445331622371675333536354142211241223722744171124363415133865265186222428216844822611252361213121154442751411611331513533325442242365423463354212511347123165443352132131335762224113361442733613252321311772422284426123238135431137336622138562414243861713125125613314442143127221155531515142274131214384584444313653512532433252242223237362112356421137148735242425233161614532625121452321138347431415153136233131175221616324113311711171156525384371326855621322322316463262135124114337413115413233823273623452413622225111673515153145533511132454352387323351111242434146122736351224833325441155311563523463633226544521674831223471171531423116315682236542342488555414352133715411137274511122642132363341141435242212527736775413144363243211216311523413442378111133641173132455317345126317341334214141216431487641571325332214224647413412133154436131175232217125451212218447136251112241227531521831323312568362221112427834164232237426364144437813424436264247471513336765432713115236243526413137212233343472512161411817711217342135222258172354812341352441131326421163717162265153344262352716311724371236132412315122523321115726323723214765141442274173471361135131315122135334764141153474512313288543656312462612352532331544716411672131611254251123111673351112242714383245115434334471125135634316361413541671122721282251332224862631522533113367353343514172211642252312174231614341216224234286281357132276215317561153672121231214321446135611444351264124535346325346135811112723515141332257314132721474481522257271232132113364435351251576123417525622133524111135123621153122486385161321422341441323234633342131115344754534141224441124473152722753474645114717331211522853316112318637316777151734222155362244834515285178142133414331244327531122271442234433145361512263345451662443628664111551333466642134133333642123245453561271112651452183616414316117524424312113383137541735654456334411441141363422145431332336318725181232422184331582567262432422317432641425463144521227312731442162141582431612517275323433876732275335141563233536822444114821236211621127138344124248316234232221153214523535546531722532738651222251154672411145653215344153845214582275332318226846663274221264321443761626548142624212223112425221311331321435435136177554241371824223726156432223283142364533646734442343823361611624162611334411651268511477141211122226511143637746242162315651612217612468362118243823841515342157751577422422113531617315261351455131431313435365268631184221762122225434311473463352217155232333116441711453234522524331411232154323311311462314372633315131223324554532615311232444753223626525113313412813524247364813241174214424154858121323153122622547152124347113325382123324111361263571664613412554343617541334126433415113844535351347323144355361353622655661214222138121653423631216225551226527424432132334322521421721524343111474233334334131243631362315625764325321455611136351243453435132245453431321124311141173143563535174656433151731334561511136412722521121162141312337517231212531251411411135623736217461312344113213711142112246477327176141823837715324473444515475163516413331118145243223251225154123523511525116286721122342673162221141737653263472331111222325223341116257328113324214415112166657741132234235444222152624352262116125324414224855215342162452321516234411715613453445363177253511611422453611166322222444255543545564226254235521642534356451613573223512144626111425131341552315883431227133482123334711141882263382343342263334166412455151321431315471423474541624273118354162138424211573127143724114324242351131432235212183613551665111174435831245414527422521122122775413422221555242442251412417872152411515127368444125352334545136783828373622144823713136132477244627457334242611243141314132532211311121765446132541621247313125131342273162211627732317451222215465321112726624155537621583654321113121246211216553218361428234433123121142446144215561511322442325256321811243763445352242625211381628511314371527433548513643122514115421511833435132252273513143317511334284242517533221724112152743563725446113337115847563116124253547363623331723765116157817251163412213663326282571414114235622641112532424321541311825212353628132282734417136311242566517624226442155221428564146138442215413341312122542283371441537326824127471335613241848262341824514322285185145261216144182223421323453557626262534151613225211265443821321213111232522722251323314431252323174815281427172551427136723111344331116325231531131311822313171261251331656211152123222422431332762451673431273346233826533223115543114142122123271736615362111633572432385211222332361734571241712152228711446323212452234642642242121132221315252364531346151151761822281531332175722231731532234132212313822111822651645331811614451411137515471631146486761154215135112111512245613461217133543132335621466122612374373231678121173244231146226221526427711337344114134725646454224244135741213271612641344326141626545336121232241221751111262216235215517212516171378244614121112744181612431116227515316137262642155432613221842613131243146712443133515332262172433232765441424355428362875242122271863242623761323652813455534222635141628323323352222445621133334111512613535723323242413364413182682434115637123515253452121425143271322237232645271423143457161166135121322143631327375123113453123451222677235254123741414223636632611131251133147341225654455146781348562258624212254242224135157615214635542528444542115151311365557623716221486126312521131552654156323614231326322651227338643312415523143122372722461341252247251251632416414531121516312116171242842377241328228131527652333446336415174311364437611362244145136317445341525347355323347767323142624335412317235161131185545123318532241641514432314111142523321214634252773528735254247114321645524123414575272715332615115253265322426557331333122731323721612558854172246381565131131817111244312566312611442463123375117212242127636613322655232532212333222582111154141175715211411512547224862624128221354155822536321434322433222321444162721521121632831734362212123455141262132343584555614217375755126423157784855642322566571715326258512227664651112441541365611541113524234522641145214223628317664311823532667213216423731335211513545221228424524116145337314452314565313343511521426341137264765132324182561466322634411654435174811348541578616241334141811113381522425712241854413867122221751212281321145131115146121165363325611252131361411261342563155561322225116112214471218335255224513361248654321541435311433632252135571854261242112343515412343112344833163481152543751436144158255215531361445665548122252576466738355165231133612211114554545531315255442233222442235312111113331247613171246213276344648156121628212763321421116245151111553352374745145717122323332232227642414265412537465435443631341422231255616325514125635214653614217132725427435334221116163151243531155322335533372643553468237716121331321241332411114612215164114351421227263321544612144132727225661511224448115411361421861527121622322637212635332646325553532451154123624553344155411346331224443815433114853143125411415125642123112131213144214134511622661651255654833133574353422651842625162573124132371373232623151744481124223143251462537741312144446546463223335412121311412153146522336212546212661161153353251145211763662473163677173436153322312151333338324522513226132421123236332621264225123511662234325263853116151618231733673222523542115434153442115412486671443374614615411816626333375112231433654213234423153113431165327211144572615732464436336551572362215411316544437217132634481863833328343633632723435761453113531152125143117328353752381133325152143282325121241311812313633121246433861215721321528674443112762442365421338144122656246243665624242161253114343424615314642216121261353412622313536476121225263426173172515211212123212115145344152853653722221422356832722671342541241284123237435211633174322851713311461424732372444213172565436331321312335731242174227754412411123375827661463352216737253251542133653272311724313561171413566417151316232642314543224411244613256163364231116822851243515612621311725223718216231323546355351281323521511168212332227222224127152233142152217675135161473421125331563232512653663415414621211237483321314877611335811424122325211222712215424341216271225516546281445523342134225254623311433453543733634131123158564232781416311544628332832351414118854211128211511714514838281622634766113765423214421561513412345152724121652726415525564642231614725426623134132253624434135473421443453217523347614222662176146213441226163563524331162111813416123424314447415324563562524474433716223342822448253132145515222473212177124123525415467411323524222165661541411214526131531621126241155135116542376232251334324264721571414233113241411733214445116443612336172367225216543336626555455547321116581422124343541233715223712644413323314345231211131152546163448142277371544338233442354652314162336225571663125254373331322855535155442272331611142143546382465621431152111787555134747132122233311455534512423464331113252646431117226212366414113376823534134141242162332314212113161221127442432625414462353447461411334211821351512433713212646741262341361273416225251126164433145121352213212216221412132211566254121321672162533115124411341311152222648835423553324444525413352213221563613455534536511454314218441213672332376264234481114226332713142432811654313455125776156545314631361787711436543223441372331116678661224235232761147531411343453151137541254813516623534152541355537132284321422357114222372454133116124746113323323443888624141142433216235631434225682511422323141113111352212222283413652176543461164381113546241221338342423157111442437552314253535523362636558336323118211348115168615628344346317241414542222371344332211524632138583611135473234158182437151332332228236542152144534237384435646373228621132424332414254334424445337412742353447631468335664134123534121343246553116225133571683338713322152131122213861125125154232436212441655232344221545312322141631513141651252116431522247351473247314233435627312215123731625421251241514541552112157216143545172434143846155347712435153578355742321113263425112131326385211311611424324752151427751531163125161252457121122213524382641716433645181621272341525131214151115432315631142546462565236214214646154612215121466134126412751311551431124741162523343211325524212143452425432642312312274314212252112433242621121176524135255353411333184643161721226123575425335445511626336121224431644163222823448156125323533561722211332248316177331842621724616344243143732134522176556312442548122523321433177252314513141332337312176721132852537361341117667514342422213532241111351533412533218135433733566221237211336273515246642162122211113227722254164212145454273513743163515315221261622575555146421855222364564424331143711112554111132757542142714414546137267415532214453272431677114333152115221181111653153221162712251342433614231345853152351443721274473521676114412212826342142453124514274456344451112133344121221236232544211211716452515413355165524772221152682611347152174231636144454235646243332211126323568544111832153531116534737132153214544883212342124321245113145514511323164551262141112314524145321412173511554388338371134334631412557655517426247318171252265455321612215611644111372344576471183421412334145281632522247371315473374237414634634412315111233324343663138186661311521166242315231613444484173166551431842161245423512551523558667333337742312844524223681331253226445125732151331257347684124231865514641144322325382142324256113632431717276414168311627265322781613513114652414121321187526182371623611335722211173255112465223362376753135337467215523313242311253452611321532212662322471453436365126436112114232134316534112514355135166533413322614224354127453812226126555515331246414533132314442112235627235414212237452111714251526422522232135423344231467375532141587561562463377161326221175531286356312124611353131763472311164123411252314773714155126113262436611241342236137574315215443633244413244117374675382534347736324111614222416535322311725112311164122713513334331164612313125732234713136143254426112142323344432561225526221622223521422128544242724115312817325445438411343331411132223272471224113444534313436432255127213644171414183621141221312172214152221263147845233762213126544255611315232135351114341745254512657132153144343643636532417321658276256721224122852252234854314242734413531241341114132421512523636811322234471554522232372531211247212265115152631112414268572121412461174221324255313221131521561113447855868146525425553111452514332117557225233562233223233384421611741154111844242421152124358213376323145128573151216266367373132431482456261444243614238423331353243311311224146546671531323266373224221413112545143133162376523365163517141251412525547545828456314438554823113538264534634433664422246132148121131353136541443223456337137343127162116273241313224216337431111228332622111126514215124432213111334113462545184443532413148112235153721124657125312231517473113231122637164561134243311623475145126473531122426382162213532122674431126226134161211658512773214823241484375827127422121125411133341213342371131163252245121121253413161265612212724616462643153557353413552351525216161525216224116124211212613246561261532152241641821164142223642451128477226442113143551248214533215141512711825156113156426233314263572282285554257721233326221625624163272343326545311441212184345182431643721231625112315433164223148326344554412673634556352822653111327513231464745153125612523114283337253154122452111621122611354131621256331457262323161223713123432835443573143551155325753423122146147464262211613513155246662461161252123222214751513112513531413162344241516661334145523143214823233663237512231421522153461388311233514524735218231251611253431457151634322332661644322223315324141236625226152553713115236354113531156331264233732655163315624516142234321213563616523142345131575311172263731462331723276541312524246314264424311715568563751454321447511645178363363244183611613267212221445342371226643433223254426813647511463422623312523141232552222333312414162331823667221316351646216525422157872381231111222113414321147211122312862111575555514465517321142222425366336722664253612312514412645825444662732461241632161743544344151123373235144623326652111313257112535728117662421831521532412213522271648422243212482371737153221561744372123233546226115124111625321232123813212536275242151343342145443312542375532724617626173271341543242436341253256134553466351426121321521743122447113245371432435311145751522522431222213364451521711222413126461637357455115713741462213223254313613524245336214244235317231422612237671631431214512543122131111131114515412724248143116143152531221352167735151165111111112654371343634274712743423533451324453347641561558213624237252234456432445321282413236221122732245268133518611211282511212216133345554313154484522112133313321231521332423468133373522561116122214414143145413621562141363222337264484142212247232223341114417717442822671525822164613224616634222212152123215152326112344122222521861226731553122246114546316153732161553821712271512122141121523211323151133315453857122713316132422354333175244613415266734614111122442362334451135153573231626342123722774327173221311333511313131566173656116237441243342622111815322711214535323115716332522416266252512271451534342342746765524642533244832211315251377686441143141123268142524323344515424422511566222211236135343663328155541311117235134133321141322121332434422364446671314218162271246124751333522131241823313125184533413124546524122217153252354343227236212173321434112652122224614611421332164281114122221628131514113284834133222472224132666536141511376243753133411685742425117412344778243326143114514364123156431321366121452251144611122356154741341144244371335353226333317114231712154856261253113234842228241423154115462215645421314271231355243512337183213225216166312531343365378327412334233115213723155212217616137133551757326526518564154316414133114383113114333652361655376453111145822315323118531142255143131531237481744336422688532414227752212511432212523112214223456111813321421773261146455513367575317115241344242622528143224121232614152136125772861122441241438813262137542222278457531741135324453231323414427242542263111234333522315812221412335266422741431215344743242322116624151124243424212226741313541158252216151225272562741211243135126112722342627144631341534624841215822612224231114158342385421461316512445141221724741746177345113146614754165121111421311611681133113113214554122354323752141313665525212231824441334132745617761713141423512217448124521122233722171613843327221414413822652712132581116337254132523132235123333162213237665461121434148445243422652751233321751114621317117372351523727174322211335425222516211122732131756162251412415384541253245873255426185713412816441342182114511314145531551343232434351126431141624482415143254311152154176366212422424441623415442114353113241161314276612722221221423241123211517731423313286261335512434114241251262736176171823142613646264257514521211362842428522521541747615237571283175217151111676123342178162271662354378664232677336625137331622123232811582235621114344322626247334271711151321563146241311132421673514461222412241235723175581121544121563657622232673242143232546234133224114831137733121454424323453451231146114167412741717127251423616236545564157726741315355446712142631783371221343165131415263422576853622221112121513622546238673213174123813278242727461454111363675541612231536268241323353471153442362431743141335422317213213262542483185311312211233114678213364234565223112173221331635713515451314162612436612841344371425446328533234267732831676225463742413464723523151441522421275515351252173465424122455413461361732111131313454232422321338826137331245632445251218451533313635643175111651421112132115241213154142172114112853142631223536322555141676515515435254135526543371734141543232414311554214631325115343372762413446534521655341124122365244522364121551431141332324151431637274167232625164323124466464414128422234362222116126435621242546145172131126633545126213735722321431421242131326842241512176283812611446451366544242226363776345733557561835241137611413214362123222211344374167751434283431371545876411336322474312361313272213372651411631134675634513622117236342232743143212252431351431111326615328514384554231417331722531334736112421111166321663342168611142124853424482641212312331221554344183867412652354487656623318147114444521344633138314476134423514325334161321876763511311273423551428242853373446215215733715341212514424741464865221633156717451362124318215477671475152884341444622323285363281543441564563215151523412176425544112132424774432851225621487611217113233435431578363131313152878143632215421126132213522224522652613334316265641423545463145125154514682336313121214422286216122241166151315217221242354422184344525625146258121348342213511836116127215133282381663341352511331421317352554155841443155433644184272513223172246831151123113822273382122712227217227443133411864411317553222546316121261144833121514114235321352444731123348344157346141523142321224236611413521251217136224241326424331111447164311533433531761251215834141524333263324531163211211212733631434141263412113412326211543734535724731345115381111116116242433344111462311624645138425184153632551455421277451415787612144746631644334261763475773214262411352131542225287633173512564231828556425734163215652453246516616722232844658511457531721311751145552275126347621331717226744283264842167162513465251211725633332714134575614122123332412161362313232722744354231366121722273174331853342241423332133171216224125321861543212121123227274541546615314337712353131573122412444352472532111642134546814115815424522211361326233124425246243333146845217281242131282535352251265813411324313344227352223161364122424563353413125511121311447144454851241722217721212242742223424161568672614211625113315813211221614641326364331312153312481714156472631161342443212684442354314648114742415321261173621614126835155754814143353643414521332518362552215543432242236173256652763218326212113551111811237565325234264424251211757426256212452131263532184132215256543715142421213178345422671343162647242233418413638113144185446727412762141434243228546333715534313244317543251655511316131513235512413635232461432873115317411467521623417352223421761114382124143612531317121262331534611351263613622133116111615353317112451553214333674473444565832521311174222312111411122851518128522223344456233216226134442542115342622434132525651521642145538535222521216626544734632312426254328445587443225236613513115176464674414365511361712531244517111445832326235533422132233246123471451134255155621442323625415213316521462425575131761165171435353313418253354743225311214148336546236531153332128315243142738423835162156475511162123718243422562513122543113545465212758256631456253222161428623352283254156453557635182241214574614145444381526374363643312141555151215814335672186328516332443427221142134133375123223241274362323351333336535121335411332418374124265521423418514143453681222122141251315254114714271761131122221211755632417375345444472222135222213133831212356244716526117575321251131133352733232132661563122162413421226421554377286252124643331186476141612545214127642121658355544126352532161226355351441245821283166388432223364451263436133461135631123814443226337363351123721421112241771425182516312313253111132546148322222162232162111745452324254141542123225413526411741726121236284332346152533452725618121141337572414121743534625611546215452845121364556335543545611524184128411634334563315375332541611447534242313511213343555625613344142274125343765171131421221278334421312213134137225124514446262114516111324131631132141526227515573126241313225261731653715164642181414712135265561476223182652541242422342141543312623527546273525614544566331563221713111235725221283132426133345724211462211352362323511453424245214635141231456417166331558224733121144342344631616153135622222311353526612236158441363534362312411451134446241232114442346623521132557133424216527421234428171251861353631333532213161635663224425263754331323543363212243531616217461234343647145114565352151115256325477323361438371251143311334351631216111744622445431117311223734222213641287117723223823125813264142343562414134444111114165173336746211141152623246326438287327452322382177443622351634572213441461245556716151152322241122213142212544132741126244111114125227162235134435322335322368127361544712323213245351451716412843341116352271256513533328362112312341614345715834313267323246623115456534121123661434712115152542213462736126412511334128125131153241654611711512251341121532727423146246433652134341726256331718685354632142261726223472647712514727244633317554143234141424216412551262223264521312552411871728251112118351614454337224145311113413344512344354124526524252111475447546441731114224322562626111135242411331542132242132241247523337434247524141752243114242617213312113564224738131143131182345126351126524221221523771423122227143225354131358251582416111621261123241162348652242551112211352134112511123121238351656122533314211543225517368852145211136314545555211425312423234438352341143622145522522673146121214126211632223552151463141125153111262267442353236183152335855416311642616526542262311161234163434522144121138423736143744645624241616244221111431451325536634277173237114461373161615357535341536214114373534113423465325188762414413538442122135312475211153761816573524123533125223421613834264215143255576116412226211141612531765154256624223221672314143234514341232326454271611454463434522446121145126515116553545157232462162125461171231136671161837245345122452132312358111471163713542126175144824522616664432822733284431122143353244214348223763635425171163224234422435733275354378227311212122141374353812223662412512212255212161156522511435374184211147128152234324114147122281121332231336665661243252155131122243511243556527423114433241123454535861624516514226535452161644281516212883113553133655531724383348271273331151832426416723334514315123336243231331227216817554861251123273266262612177142311524248312251123333351354852531314551124463552131552413143131212111121131226325313157671412333432441511125534514623121228561143421574128161147158236424422137331152832211225342413731521512725251432316413421411231418634134451111415723281321435641472321334268514227323446235134811124147774454212563266221151413262142344145713331331332841376523124226154552675214136231634352225363234152514442525133236611465125331515114115313112261225241141214214351234243716344443244214332112282761336721412743521232684251431135147224312461614425445275211156315264235431145473613355546364356323115363822212163348152511121417632124112121522413116514421354214321455111524531111256314113526435135114515142631145441214231264122555262451321122722457573621135766142175121616512384481725421133521155512842216726132243331162764156122754321353532742511144333223325421771511347221224621263556813645822641163241744117141111646515516276115211123251112464755461211112183313374146261615133362222425224173256113171443117446676162513323821434343361212727137552282434123724882574514232222423212156454151353311256437122432835642152241133414535452161415217232611263227411213163114633513213346451112543253644532322321121331161623261221525412243137161213582257146321324117644723641214256332167842424662634134236512234231127822235213125645256632772141176132214341472131221362761423654443567431513423222352233331134175346111611473321711412352822653236222842724551521414416426321152216661213133121123251124184533524462122366667211624142712332675163451252641422158125325176411152247133151412752331433525163217321715424314621821321586363321254163234285111324353437164532124426235113356135241111443147344314723724261611615131117164312626853212431522341413411134332312631144438222282168415533341331211121637335245531233514133161117517313171552612121253671262622781345361451483155254413551626353624243133252342522144216367181746135565444854261177711632251355542215413143131174242627561261556531636116343741651166134512123313711113135421424351374225541334267226111115451511416642555116622413512353431317217217251263626356326218116126171851562424762337314215116112125212611335221731214777385213442114741611412413411323112425125331366436517341352314125434212234611712554246322133634212112323423115562415436258236121124125455251113125255413125116122364171163222242551612415653864336123431614166624733441475611346526111421131752452222244223133226681215412474265311717536526311355381744324613138514145334174224274336724254241641211223213571343134331732341332442111432114474123415348251612524157384453712126321346311423612132125633422631752323325252484224157533741651257812121841556526432545441721734541136234173486141875142155261217713213735362434265433222247642337534231423131562412311611252211413347124136124782231526524132721223612222722714512314152351626127315422434565461534672233121342735415231361425571172541111142111413265252128223163313114111232311563623525234142164636842287415827251231522338214617231664325443311136358551137531623334536837324553532132118144623617122471132221572522312462213264341142231723361631254821147215172561161246465256112342672424321173343348133644325331476813252221231722444558354243183112522213461311743214332122331464413411422153511213742217343353751452553122323444514532411453444525112611214113366511784441111314521532522651433311483466453644453814841851635143546455211411121633247134222431512341433342324433776121244213413621473354141112611257141235136657731451512526325255361553735751236434358312831531412351247144115468426611422223136621116283434131542411364323242211521325325441774371853424325153752553255233222128147141116651572548151711541838475343342233222141171331541372622312242745461611324613355333123217623673485512352746547224131437764412774744253334321456272636741711252354465324161832241115532152264432154223615424146337652141224712614135315444475265742132222256272354117138228431521283112233134551145246134483324745656814155142377174564246413522523132337455126321461311117174531151344312321241123244311114111213182234181173714661172542321112632423642215334542645262112732213462213424156813641562235451235521211761824725425531325241352342226732332182118148141121322176344563613213332816251485117422522425241433332111131312343321852216135512361147262411354413214672127173224653583451522322184344213241122226234133451435264245131256812135561537452571571335314144633422355225117237333215412543274315414627131258526114545867375422214144154613142153311635634736141432361371331234662737131862621743111343333225461716412614535313663331435521313122343371145365112363214614284481733212831526321612122281425125452553116356412221212466253722175211467253112314612232462687357312167531136742221623622365245641617112142336211511444351647112324742142161115226316121246731631366153415236415461351486714133332514251746513512177254521231643823533113376622286241421123867461536172231512136222125154856345351454523363117122114186323265434322723452131547435126315315124175765118238125176724151151574624232242363724571432144424213441111225312442322147418545212212335634532155343226257532812312212247242255311155554141162132336573264222831527763241453321415121222511125123421183158333741231146722221163256755334565742414524711313541527722436212123662764452115633275353343235138314415131283831638331535522721656244121523722412245182413158261414547483141317444112353115127732672564264335615655215366173463525344221412117211422226724413557244611456742223354112151333111245246153433211615733644542131461437373412223113217331212122645361471354584384424321658411466131327441473153125121211112541221322323124657431161324841422162662474526533222251347333513143415111113224764511577212131432232412246454121545443455854143336223131561821522131123282418163421543242184515222228567142132851114273226144222262412241214532325812222362611653524412323433528861614553131212448361441812233467333617487312744334635116152836215685617123711442337431332262572332721161412367371237132146124224258141215651581544113361531165314132451244211134632353428344334662563722574215323264142524122542363182155335471227542143136454156224312114221354483121412511412411316311422353741451571175851751323341361614612641161224341233662643724632475111131567427226513122273173364533213151332154142232123222476332176414114132371236423215822236125251551617142318114415742423331341511133232531315782614132633414335558386223624242262533137221324424233175311234612685332342414156746855617423323177517157473422664373114754275243355513518214312444425713374266237141111111312132453662572333733124352335217214113115132413165251812321313416731361133216322121423123162543231621232612213144144633373228236646543222115118184552561386821521623234112273223161511345333326212334211311215422466344155436263231435341321511732445431123312275457184631343141712258414233122213333477116658213147476366214115151111263334161133517111765873561533242631312234142352113134118121112313524662211382221312544225117632121117251565322843211423243634124222815418568134144461257341521351222154221263212626563221371117113336511222611554374415631612146612234141411516352144145116423663133281334544314833247318411843241361532611312136446117621464231342722652815131435554331543275815182672124133211123431521122432216211343353211242554325126154283111161131152532335464332632323142364851511257531615321664415131231333161757711651625232254742472111722371141311273273423173123613655414361222313262574655328427284131213461752136145514181315336532554625223261466517373523518427513331211321613143272272114173625675337125144116364283321733614181222346137417611212643212631112231461315223335253234243582331222474127451234817373381551313122714263452511623562325822161216561241232233344432535356611145223257841342822211151223811512217687637412272213125215464312525321213457613623144332414444753442445323554212654734341175645125612867124383515856143666242136423226143112225663134871386324133151137111114273333326646836443245142261612782744211531432545216332233257116513163415355717141254368114126712332726772642243451111223123552552153515423312112411661466741524547732543415313372112432721564622516563624422262223245533347341251422166714217424326427352521633362625173213352364542231112248426248661113262316543344224134152257337361415416714156717828322414564251561662627515426271434424263143231352514522317211524412226628224146244243433656251343215644141411355211543521135452411162641134543322132166236514228322271632332162172115133146222145112256147123623357541735613862671621522314252114443141214341531222222765222731182221246331733214382115466221346211314335232171343152611523125353766214374247231814561211151531223734164474183311444215123432663251733322481426531853133131122543816312531553241111252223721114361131214132272321821122727321366431736262425521311514264124543444523246157334473432331832231316141123272151333525664222425124133736422131151832511226523333114175311648253166122311234456567213151842386232324215234174551225577775235367414534362255551612431131144612335272122543121563351551133126535122352111443221432571251634545237413551512314642351225467211531514366621132644311235133123526112312377151451173148644222341342131852352137133225334511586331616711475571134241855361634352511626454744225416214162132134322251351214541328231113162234425534128541555433311142116411125241186123126183513417364131733514422374133124334141172237674111163322432256453343154322442561111234211441531815255261114126231312841167458331211125333151716211614347261213242623267423144156421131321311432141551533232116245232273125214371134621255737112166312132212451132743312354543251711374143423132434513533111753431431523164622516123224282643754312422122221542242588366812241614333115622373553117323662151311234548425223431241375314671146842736216141114448847213273421553747537413276211451353443154411173634161225712155542323321251241116313552631221226331537365123311211721672118831213655523251421232111332341635211433121216341741214342137612553325258563282322585182234565133226522221334451413812164242256123332541546335211721122663314235141325311132268411412523151241127416554114161131264327382333844335245641181216652468136134354361124147541134164513226466216418625281511228315234461225633135312425416626215141611353636581231741514244515334366721726235112161211251617832422311543513271113232322621221414142623245353512311322431446341422611233352674715623347124214232365217212143422326632746452125213343171121354733514711211321271316525372354414232242663513116313765354214765232154165552312733145251633441653121223145134638615171211141143623732752254262132318173133153717536221447411653133355445114644155141233225235371161674136336423321621512127346132131312712214174424322216214284154513182521521354732218352332212353111523512433153226134151414137112141475231631525231322454213374451751323467581115514233715327572152424224526613111212733624115336125154133331642238213313552382451165532132211681517124121212431132121267161134133211321333732326434614621332232422331435142236721114336375341622254513533213523131312322743213232534443443435137111411413551537525151374158216415135741113432542455181843224635135651232227523513153221533564424586323152331335261436373145348222211442263412113413516124461663324461214755522157253235563333433212152321517311121431125242334245545224222632572611412316714355225137362352762213226312222454352461143114122513315433232113631274223136251841352322335711132546234242123621742233511214226161373123634611437432751163112732552551265481513446243211425841435334234512622433314317431217517415462813246328363653263412633172321377132753573432633761524457121343245434513233824145221216223221356434141155324313121426252211132822375233455612625222354322315446211117147671622432612632412134857173362266221734142516255226421351113345513436112125173437416232243531343633236651121234362141235416441431318245213424241253647454281621321664416413443273142511443233161125332557851112247144122114281544254151518371733242742281137617542147551342512125372351633435113123354455183422433672547231135221312121325153134522776311811271515164211144763145118144115135175414414623414324536745652421218158148253431457124223632361231213211232721311218611454134212144341227716843515113131451362423223263113125421362223272762445512641411421372323531233617324466144232511211315351121642724633242173271224343122721251621125144347321414321152314653822226441654222256211212271852211521115612353832332531324322622137322641624742414331164134144314431211313133741113633232231431361223234377472448522116742731544373221612861477655166884161722641554177363341132424217513431321281311124124813142431225832327114415238333143623327311663141134152615152231455154432411715136126464135635222426131121212754324423271614233414325522682513525283815372136324246237246186222531232653152862643412132222142111514722512213242874328221316463314333173425513444747328135213513123331154322432114314723141125232132286445212311241131181132544313114231631323412425311141337515532143453375165142547672751123445118832254771312867331454273111411344527463747242351373123222345513323222141842332265164145564836422615251221251446333626823142225423512258331118415422431718432265421248441262223534661442222541232354513525136124412166216214323525164182213132111611233113626321333161642375132271225222414474211426434244615622644254133564554421341431363344125331264441334231462243536345422241132322111314335347872512123222311451142325412514344213433251342164542513536321361272124426522155143114133313151342332613641155312723342622672245542624716652754237374281214222412254321413323321733263422122113621411174463735113144312842247411323317443471143241422314645152162736211314125147714352214351152481574733815315425256431134166232352426516326124613415512135161335614581224611614524785512372122631177425663243674113515171417425122321221252755321666216572342121331531623211115666424331551132563232511722342221682323344241544251114323237421234331251326131426734434612253142225345644616264221144483153314751623332624115161163361448261642222333324511516413375418212631415423556654223132211852641553452156714641152227512541272623321311131351122313236312521513441414774521473173244425142351743673323245123411271441617414661725744835641244616735247274451521653118521731644513513343341345772216311216132311324163516145241636567165552632244323562122322353344163212112541525314341111322242146557736662131111566442253684351647251212822163343144523212153421645444786562245332315262232352317121524343334256322263745314286361614243437231224652322251733232764231464221537257573115311254161512314184114216342213144725343145113331823524542333124727125145331515742572725563234111537721224243115163253533154572656525262276142126335324456626316231533115232131255627851322142573322162422124323277321753341615356363155163213264643362516623623171673623535243372441176126431165511437162515422321438183613517433551111433514221425743444371231323312227351364122361462761712122312727246423414372711314212223562821224146428181243488425114522541414823234523314162133243421562238745334514343535141713445125281221341164131131137232144333452162526688344341133131528221343351346343234241672517412242446425732134133223362267328722445241532136115251112226151144613426714231134133442154513157533137173115335242234125224222135425242213644254784513245552616122243143586215667653413653322534213431276121235855171852115275144143625343233313444221246416612366713462245458412116432331131152538666312444381811454321331522413572637255121736263333261152433115531441141556255335812372151438445221254226342112124114283125214453133433156375431134327744472543412557322112627123171414152322731141283311112222735151225536531244221116742226361434456352361342543433425731531132636264232615233651222524312811633138744118141361335633175222123124234137322254115612451723432637216213442242246146814535121122515411715226314742527613365211424131624615322211314314154125363452642756145371444316466431211131431334437131227333664276462512267222123126422481521112332212164521384611562711234134511461212365233444372762224324237113783233112652734114341252323353164172417223144622516513787124225134252373314562624831141311154337121153837752225215162343314122556132323543652233132224151117611636221642537325111121227145154551472576131441172423336238222832166444123212835151531514342631452377331433534251744513616428163234512211536134122285672114622412652127562111743532116127862732711147231323221613312216231312471311121565544112221212341333187352264112161733471364762523121312824181127233212273273123374242413516674236134631432244381212241288326265651166461327234161183214355217442236134388612213726211122342213683511722137634453446111118181354344234222353146423431182142123114513423522844317211373414241125315844116516251333552711664323745254666248222646511526516535612214238431142648122112336214143374131351234776532314333573684452282512621246472632421112223525334666344132138128122466126131121532443424378214216121632421632841223542314121242166162213213151446223127352352314425345822141731251224423251151342115447343812354222684834514634632214144617431112312373344116323116413145142434441171572763244252423281635543166627216525563142133413521368243583721235235317311114212357582262131114113631158266357327133212367151367621234136425851446113142132425762114482375834233631343118541212166744326613475142451133123421312354772613116842514235714618112733715716244662216456232214224524161654275412325123641433362676325137121216242243213374315223144215622372522623731241342711344614323312335364435714175463425235614145512742356183327311122146273612112231235331172315122134416123344777433576115463426121333336342253321341231275742121441124444147411213333123231123154131313126187514237385268332631381111544532314612421142733212111253325511434521721536654311466246426223765242318263342431421731387243223162236381435324744212243351614236444121412531213731332211276172631253371422227641274152156136227122132255113311445627425313511242823341278236122236762514134524212263316384642114314114551321317527111512342434112211817453233236436513337171567411415475115354221631143876242512553341118134452331113322137321111342621245242423136262341113311212611221513841514815227541443167211551116723126432251754126111151316472222446252114441544223365125126111372324813182414521516427333632273426514525125337233324333282624263653282332221112424181631611762336136134522242462173462433214222133134355361318384484441418313214411552113313243111512437627461841286222241166772613122562116623754211335166113132723223147623721213672375111521235235133264214431326122232512111736573333783134321142471221153226843535723123638122478134313223473621421151328616134333122116365442441242633123572534481333215561354223182624246253614131725276481873121136716241224716315723322441134323577132412644354332511614155152221363342255343114382371164243513712211334266773258126451115421337111114551467512352115226464545372314371645312351416312171223132346451152512147234632411571453413516451126217331174811212233464151621234125252446815166315311322771165425217512215646131438461245143355122414173174423451128371124262462422271547223515348615211224273163142443142721472231232146251553412617531617116112132631114143614152163635642615153462213227645731431133312621453245152735642341232225265542671621435371412121425487311244637351333211184534133313134414358527523673511345467213252151563241826233163441342226241317462212116531254445247456315321156716246635811573224442111248326741527122112144366423222144864431611832457213313143213426163361251612557181315121568731824235166463121531511317245351526725246412237425486231464543335521162414553664226512211221552555231231724337611444342343141715286341465122323842631511552122614211516155222351652381113224226621612164413742515427124643212555146544732162113285155413112325141183175351652543516448123431241144253468235432231713142743551214316431152664586531131145471542175258842733711132241412141126252255521564152412433121112114123252264232565252653156163545887211474441521634315141622221542435222315114364311113133131234215251224913313345541411432372473211521642356715731221124133431214271431135313333413354315312684314626583416211457121471122222123111234844211543134443112313312342313314412121424553246725161513215421353216131211134213432141433516241141122215213521463622447621541223231211533616531154574342335233331521354343578367425214141826144724632245352443652654415411318472411313566436227328412846123712322284124623213615115123262352285712332351184528128178231127163423226124112155545354725128556162224562113256471115235335146113823657146531235128132124711451336246311355612576251171713626144146323214218472653813411182372341241317615723382571523421415161265753217512431313161522533423127216634335122231556216276161531345455532811343321822545212368524515212221447711537813417682132258123222141233615117173214343744535184235171144111742135152332534548124211156223123524623142174274245152535361123233742242135555452452434253114261212712266116353222561424251366341442323524521132451452534235772121341123313221817463352222311717267114344221236212626481336116722623134282671646144362124465721564121313531171112125335712314241212118244613675113338612412522413214158482361126371423431641455244121242255473231155117531173752232123611371674163534428312114242152265314333331414334631515867731162126135133431127171122241631632221514162136647721211851122432245145183432271133652362328544211522617264642167314427625732653371225217511136254221565232435816612544254367162323711421451343341418233313261732534831131163532211122124113182133254543663112534681368325351377263324113738511211712236362218232542517223431412237322117152122254212255624136644121725161233521443354656784216535321436747443211614186758214418625252133666214311423113246112111154328221326148422214514482135222231314523121325322221132231656231447274227666855231615413512431763125264253215416717122422241537541233121752734513488721642233414162322214336325634446352268222136145232712151712348136662443157751331721524741557637125715152272245411614123626636231135452521623177333343551425215223833213361372311253211157584212131238253252124524241241245342434223121367135615133711486423161366178517736221511525654434241635125373424311312331232532164137731427426221354151311317411562377621114523514516322352632175211115356255626127631442425114121238113711151114222223123344232211147315646647163537553342516437112312346722122672776351155431113322232721352323641124184138475373113742162721257423558522113611331561164125575111546122321513227355228122753178735567644421332647111146118253141414213763521413421412662214663763431332243131322822252134211443422111462165553466312418531352421323333212517182216662738611461542155551211111325234825432353314643175111215521524212417144113514311142676213112511456313513742113257734352145243325226534121513311135165175217311355142312231133643521214234188311451456333544211841375741414352733431223282223611421232234243333115151164324152443327254225375138355153443723523312236362312254213112631133265424331141471526152615721722331613154423275113464512343344212113222312436132653135324355212111171323775631152115225766714336735717264862733717463624711144323317633631444565144318131231514534156275726152412488532222412188336414412133467133813123413223652114552263224341244532763532255673111151336165515451362323687412144465332256321413841627221223323546512615361324125561315741454517254243522516627475317321322256782341326442234261222636632222343767415683772534612514714121353766627152814123352565123122133512442241226511145252442311344353575247267362213616821112212164153551226514582818224234216212441214231211323452381774275354184142546164723635813311612213525714418412226136521667246345212231172125423742124835112131112334352325723162846245721563373346414622533451755522514511461112316557331656112131236113286115435341333466234371416422562231462134577113363242617234215343771363182213371236223744143321771331132225543233512226266565311321331614132424247254524552161311111314133225221313434263115371711353217345357312257261124531447255311734364346341515114426127243768161514514315231641226131318277145764653116348757142327132232617143521231456125314416115525863654742438563464444226342113614427637254154515624411211525153556732454231611322521754414561412324732313281762411273425223364312255451542618122455114322141778214214553213363775653114125122532244482323247521424214165332354461675231422326723812366351411415151541353636141371282416514245121515642146241645432313113311114126661234522236113473461112131333127321118367716726318231117152832612111424122523513722872251232316121121421227423233331226183742271168123273331674117144421246172665212714341453311341315622533623331245812727344811231221332213762117423666442123314827211233115341572632441336515721134232616131423161336641283867351653223253632761411225452212682212355122226352113141111331523436554152323384615521221331452553353121534113821146472543161131152534117414326211173522261126866175326453613416422322333713224321238444427253323346724176124481182187274516735474212142325748165237353122243811625122645432122461123654443262112222247416331651814651214213451445543311433422262322441221437447421453245455417215572115656263343637631546432317615763113721238114546162468325112361141711672213351325616333421641315233834363153178422517613431753337223356354255155233284112584115236265314446332211654371534471661611413661255364336653222111657546717324122447247572434237424124312331655222342125265231214522551611156411122313132131544121142238611664141631122245327515443212315123526321342453363215532376243163642552182217721531456311112431651312143522141614115432441467121324122516242631311153155122762443453225532141176813151135121162741543751253732117115253126147477212431248252551655316353533516412152163551542332523261521361152117428831121733133545413122414121326313386311113153484521133374671326764115161451151761462124371376634477377616263522815115323234112266652362438346356243113263125512114213816421142522115168411534753156753622274556151236133725125113212125245872464513633323157737234487241256382252546131152261334261265256423553356223654215644756447
868877599869448649676667887278626898898597873988697968565885746398388892987897797996489978598969677778243788488769574789747697839869799568746887488964597588849277997276765362895896965269797946746487875787944968698573985697888597599579988558568575989345859964679387765684734969838478678358296245938453586798575866787749943659888898446768599779889459678975637359246797594787957787468838989874873865926599877994575578663298593965665662748969934974877485995786877676748989598996495789767868874389854967677567967578748794479479888786266687563683999499979899887988577698369887893986797777478893549698364956662858895968745779799766698895887867559773748996598987994829998978988269858638896676377945878245559765886688786696949994747933977886774887873968869967677697569933387467599588999979629449786699997382955786755877779869496498924587449896893728675862456573986797859878988874683499587778592983649453585447299549467578985684598535669659275896627688988376884857574759847856954799794976754648987597995899537783874489355487636973635639756838773958975835594987792495659945625978928778362896777577579599947794486749669989659598837325949798397945767879888454989648548977889493995769655727386998768684865789999598594566787645888827478868946986999459857598898694984436488939554669869785766569769768934786477557555667995559898857797795784949975867787637684722377534477659689979865822983686468745382879982787877758896964448999787386966589886492479598464969979978756876629973897675736978679946899895999753535796644694649598877766868389956369868372899566879862697939783473959788578989669728697799798678997689889793694977882975548598867859785494594986896897499885856494734796657736997466898475837598359548863699538389988789867969647486367788464887845974855385533889689998749596895874699999968548645376766759763966886939877564554898828889869799899475259957778868885688777559497439883778965889568765957479944643448269965897756792994773878668439877698794558739449279847998876864768886364487677786648885887869573939548976929985889884838778689455894778747526726268967759655999682276889735778566282638685689893768799693686484867888989747877894873389784488778548778896863357592732799676956745259465882958886776459555597299889989959269378889967875399568466594478747898875369599999849599566457658559925797947855986588392572465698474774638879788646887898576983488846965999759657722529686679662825776865777894978599878567777555995399887879885858388879476998548538998456953846565992499886864398988768859462656789996248757558247985944393676379989588768698699894889449848647658387798589489948967793983462957699748638597988544288969754979697699779598779883549884989988784397494686875988982698999949695964786879665976889947666327474659944989799949768589494859737377673996593583872739985583943689596729382395978878996695855624266599686296967866985996856977449687879865964468886988586349482989653958897359696877776976498878789895587955997778879684959555857429477983536999796976678769746889634459624276886845927488854469638989996399583899827889986679675798993859485269788778773766587437876396969538629987799949968763636998977645947969946564865596389837999638729988778497553459969488767959799534578996783939697489969866685769987764499795686898638998985867766965978653558824669997499849798834249467886888937347977696687997678599984479559636985547999758854679589968942475969689869483664827684878648977694869739269999966847888769598958538896229798599847589326467288475896537739859766945888593647896657874877489724553286656785698666284779876492299963797566993626838579995563759657396988466689799975496898589454987889784898978979399646784588986988783993977657678997847879949696794939778697897896789589637799789886657889598459879956888985687554765563395569579687666759593846863639659778294787787495666799947996589767847685529695779869443897879677662589585488897898888436968987864499775867986448845895969778888899772386692649447699886698477784497583466896947976789969589779384259759789327958437743749897999776966435935956998778777858464982369382963887434685999988499656656856696568379997989449983787697857475557663998799857898877784399289998597627769679995792794296663887874993888796839586828896798766588873896777469799559747962443876759684996954727984944939799955893638855999984975668839687874489966954774697867585739538868268588998877949797999897947582586669942272796788749789895742597857998628463696584597799996887695545996588477966677999653652996888874997982973753788756768799988448487995999837888494992659884545884986986589798867833797677647682857655997597987655557689893784988567852757774487786638579689698795959256673865866544375355748785969668789864689755739762855827954978236475779557875287289978278796587766778676686556885643888959787655368478848777999744779859498924279737593699458976993548226593769975878764758987997935879583568946659684533788756585956869784825768958674782574999948399744977659978978652765745999998278777689896997678756289878898745799885898999954667765469565785988598988698853579669765879676969699395594989272967689397649583958437859987943767828628796988563898875539857754957964552993755847538989777788845759693975493948989557479485868975636697597887697866899893497848689849463869577865595988689986442278576394445484879555793657473868485645777959938895998868926688885869888889666897747996776595894856396977589688764968885459996598572955764969456647697586797658297876647957983566849867385639698975957997888766874696695532869698338489789739828858746772827363385949959634655479448986957659939489596595379977775896895999328897775867948594495374996697954767389688774467469886649898949867488978679289757882578363688957985959396673949997998876884799548937879234338677944968876864696889773758759998356857856799385595352726687576793965395884948446779667598889368544556555648579858569694976983947258769966548766938289773796634797498957858784975756489289296998754878627423427855949968563775989899592555876979749768985997699588864684984889779534788399869969788489497759588557959595824775849878784698797954583875585987877568768929982846598599897877968888455697867959987488466689555886488399388884988786794896493963689574285958685558826867976856239937697428799987559946488624866546978895933554567668642849597589963567756979763974599753868889777989356959996288948937777882988998788968457786886356667793957897348267879786968595959445887545978598359697664757829797745949683465284796847859986769986679687889947938696568865787864737898429887648697965444878996937949794899785847845858988668667959575754869937976897797797948888289998785894497829996396687856988528773588274655988797988793994758549985648969767783697688966868688688778589744475958878683865788946766974988276569765674297986845882378588547799886873458784655663757938567695956899699949465929558865877376987557799865873789558896899978865784987644587296879628978387595966896876565877989889579795357879555989736995385294588754869948954989628358687489497989897846973977326894574747437558876667474686899994874959779949659478687635697838534688778849828758469878594859938965778667964568796659927777973945849887769793885879794569858589528358997759485988688976985659838868949647779687667698577785989694258989378689989698999988948972787696854578674989843588823675978627779866875678678479986577326666882588593498466483996694399489837897267968583894656679479476378796565282692779879752783349849977995696832699655799689929669447369569474999879878459584756576978835552737579748859986684483329898999726339495648839374278686275685745594987796656986988437868878566924445647976957766449977792736988928879468929548966988838748599767375929787897537376994379589976673252898988859589783574895537984769493697779736534686699689585799374378779736697274658582524698854679999677628498757627575899889985689465566398747985973659488646697986395356562487768394766859579857866279695868799883769996349588888788647574896886495946683995874775899588888337489667796879598969768598664749348786977875688997767776855876889887798388777858223663789879899346294995998976596675874663793784888674798779579293277888496569775677449587233843868758462973795878329365969865545829558332949993897788972455562989839879827768927839587794379597987483968697786889797239979897846999958857788688977394759773668363853379887957788735379788967766869999367598765668967639567627965888665683887699579897843868499798589575982795988567373698578894876872494869383876697986777764895787588944775599975958839995922698897784979869588979875767798772894756786788779697963953938898588987825287657999598694839784447998586993825695697696247769976849755665465549787277998769495998697867998865839778492848789446643778877895982556776999794785897588688969269986995956748263768987674535898689899898889892555694998986977583928764958678968674762686948559659986858975679859897597597987596784688999499897825755925787969898887845979873457247988497577997525749837478798657668769585986795398594265977586599886774346988986559766878796766989863667793489796796689877957593865675956999498686384676959978869983778798968869286846877294696884567736984786847892996879539978868988398882956266549973855697638298367395479988758887969559488974697596996637847669847969869689467337568788867668895956954588985959787955784568497969979695569887859828673695495786484994989988367997499856999377847987584697848666996863767533738975478366677676558877672367799599888398784545688896948528785947858248399886675899298876888873799683898666994589659698795747858789883489949562792965658969633737938645988375768397975985879945648772746873855587972296957928348852889692976774866698597688477989888699486499753237984895658566868799558775482553598966986988599882669544897948849946999879995399679648748598994795949859694977373799578895659652998986459667978743984597887995689854788982366449589588889749456786799397759366766844487635759746844593978575769788934655594855687393999699495777888886938884788695839879788934785698366695983978676793556987955999958684545788998678946746943899769976397787599878997898589558659985977789795795692899879599557988898488588385887464497686839345889386995877764597676885367969562389894399756368974598682694976599599677886959828969799897862754528697798996998698776799968389846934998986888789855767979293979795764777986699869499987756787467898945898444595386798888898886786585428959682559889777896625993369578877556658694469559652876759949896788565684369987595988879947587594699934786965856763765499786843379858449594627893999984586995668569788368657868999789889786753797957687696899477957395959799888677996886828667995777987927957789799935752785699937798772885992869583679559466499894797597949874748688697799398986496967997695979658649879984769696598995966775596697465889547669667488347889547278556598877668778467296988669999449899984878782845585784658448476773787867999744997694757894843977597456896883256549987973988567997457393537665967684894934496686664773786757723579689986282697479559978688494593526657479898448763574985459687945687679274858888899379449884596966859428288295959689874989899248975335457977368695869778988864647875898777986696787797989989899948783487969558479967776783963895987748587596859457969748976793839796939795695767968657769785693686689596867795963775938844787687479597494859966789769489576837835797895783986996995898442997995679698479888795849876477447899879866494879865978798896944984969794774987679987758589659889749978247964996695879575657496897874778729298579544656866446856865999877877495927566888989947677798662997497698746688868867979888739577786934755558388899386879658497985568288589889853752999394896872677893769786666798862977967884645897947885989598948688675935953647687477478998794678872666595578366579896898995726788239755576495476779968458666825938466888978998567798995998863989487867957673883996699986566564522887564873776896678968939862757949245969797856989679689634258796993389773958547969986923674997785766889695842858788596655694634668738529899738694784767827475829574876389458479846846898347343788889779689989496967999497868437879584982784575666489978979896969958978697986799768837878698989672569789637424697559858967355756966563672899479238997945769976873776668997224795796993845397567599389298684399844956548674689769868375666279999597593763989599696989673933582593595788766646488567997794892998895999999664599543575765459969789887755699828657957525766529798894888469989886392734998876627698499888987769558893869567688847359665979855989858298387967786857997558985576882375698579995367647799796234978883789635585987429997835955493688249969684494696668859699989986849977589868355868766886696874589858987877955768655889679365374887555997776954785389979766942837598987897965744946876897579799589863888798767524765578789647899874989899986658559578468779598856788697949698656994988969628375987575774459979885848585673988657269686485698489447968898876859694688959675582365567668686697283865525528579769988899558969298965696589889889698669725855977649593696335689778773937975798445886958998995758856479995395796789958634786957697798885475943468773787988642678899976595864988469954636897699588989599496966759987899788299976967484376474897656284997993949879397897568397599977885847997983535887565525248743664782639687843877684997868787678858796899989867478566989779269476578798849278795948856369879639994967894597375989987369598389338388967747693589996568973999479778489636328769879954468499723667664866995974896679843664468987999596898466658579887973983798659674268696956848645579789895664836977623589988588855699898957968599697858569773965952358546596974488954755476484967957869775477986596578647976898392978747879887852929999888959764869556786975399937966464575958669386747829789476989783498476599497875669679792346799688494996787263946884642993989597939776349969454528756495836367648745999885859989774458596777676977799639557786693998759728854549566783677778789595737865899869679553989972995974749946436734693788769995979779972887659965766797673383598392543928594459789868387246688599655974683786556789848599946975878995795836787457966835789688499738845643687969878299284328575597498349834874474729443796998739788478955685279755578945753886848289677897779589848874274836757977849437898986729497796378828758957575946979946799977762696755827479486383387568985974768275899752998858378986286676787699456964969837937579993829797689935436887596877949888539548575496375689986488789657388676887987459657995895979829687755689596367938978394499798478449666535976958768984799867449674954469955798988779777689969657947924649757875479978465568797859996869899428475786988948586587957959598987977695569777398546489729736557569669978576669698944885687987967678698875967629852773653839756766978963795948388777747872697385759658676677849749995947585794875698787869639836956679869993676767385886476989976978739588758788275688959253874898355987547677779457857895767365785969838576287929856878966559896853656757727949945867799275767595755938379663878348684967989896993756779699988979495798587559884588888837337935675586756899576785789726756993696888566937989268499824396956835795489789432494873594898894697779645336886897948889436799788689487857596933688865974756868354858877876996876898885759852788857888288759585675556795467956889699598598597779949953976978759895787994779663583747742638766959943998899485458456497483667979795548536928468559695988457873679885849693893993989975858388876488944497694764586865839985486257449948459885536989993968289889399657864277555978778485595988497798789567675997925958899973977369529695969968698799878688693267797757558449833798383829799396688999499679724366887996989594968887576748274989896499665783676955579669778588688765987546898794673646859973788895989287879687979295985767394963873898599966839673789786689976749946477693848477672389763686989858834899942455679575698885983888537833983959952628789878657773497757457967669998967398768874442768296496378949595473888798587886989293979977889888337748898555668989569657937689659686632879388869684883599868699999763667848789766379554954897464888795698498478599989499994297674279869969863794588568888969989638879897986997885634969792797895787455859979978495773575536799664784998576549968438696529924559994656955973767589834687757998847799979559598858987659663356993969776673864967848686989499866998887587374689493445664279745888989857654297938659838585988948469966856689779464692254568597386838967989589797697486666567888794778475995995983474938949783967857888597855554784657527766598538839699945927744824394364658659597869654988589889958827999667488663686842888788875594289988973896752872646359626686694596599836498999698479974789787799955784753948786746747979779677868963945998878897643885793668585256969896999399877689779955699495845945955452947757538844959966645969298287657956777798855794867795894885897897988888656698898737486955775859857768585654846529958375949947655984885647555799387976877737749954779988897569979489967987696385739345649254756297997678567864876857887467787997987978753555697958997432567938593487799994699859999897599584844786879848978778689438945295594992494985486752969865484997375556494569855599468897698377388488956898369958659989885368894665975588878959968488942967637787869988773732857885969992387438688899376978779967964789657594966685497358842557799665469524445797786494854277956926797957969797986754784688988995788386975998874899396885928569977988769868298793877389439454866578675787775899876644964559445676876755586468794946779498978679888859377756795885688779556686865978995295786749537699663978279973655587757968484677874765929794869479857799959858877434245978277559366498982856966567389789456878876859739994697587598595786669996846396978779667797877988428869658567936798996569866683488882847553657686695928573949977929488685555597727746289784695996978886694986956879867955675579548997797997464578689487778582899988528489883894698734848556898799957763988687879855869838944979897975899479667656596789287956997476777677895374564948658798779897434698779788459674679977395994938655898544847649937579949536497288957988978775899589985498996793999985669288365955897549265688894798589979597993375678856886988694378923889577874439949998956776895999965865885299768597943567676878545799793538594889664974599599963837365568985654897958683293639886998778599866883286696756697643493893578696679694664988923695796796746897635886987978997599964798649757945956893475377956655688268953695999675978594998638888798357723587583873676983968999454999573887497997545686497779759995458587343769272678873897839974897778896774886486589887959667868348688399855679577498588968969383657776697987995995959848643866696569699987448947989379988576593337383348778973296897567455375989547999579956848853688766857878469399947773763889957748479746886478479699845738894777987987755876786399857678757872887987594277664658984299995249587898469669797484384997868784956629559997596679394969886845682734839784498882485879866959889825644455988585745847998646858649668843886278848357494697769447995647935799896957488986377688963795397257366796565986655689429949448755978699897954698868999474867857859458666979687545694884567696894695637987593894695569299788549985759976979483598988497899839753595889548489649698673596497555489989768757498367898559594649699957989448497933997765647695486897856996599998689749788584979783648999778563389939968679263478996679862445444869695948567599959769966779947686869346849753947777775898677758899466667976687754788885598834339668489992976463964695497638339968985975877985579983399983583485349563549747747866682499754629759798299986889385758656999678739774998589859694782396798394479654898779763378728835562276666995899854468895748675574689977865768464754977574759678788747368925986797967879766495769992998765774934745686358678789679938878588697988686982579978857995278798625479896737985899887957495699887593993338998667458998838467673789896786995792565886887478454485463477673589788853459979988676897499566678978975974898449829972899566967885594675967889985964897895866795379798779429477565796948639839796875575974384698762896977682556238939988494967994588667659885959485476628477367628428777665759476995976957979987836355469543967976489978999959395255695699678878538534968986647788788957889978567547735794528678897854474386979956838649977657977928895949787868463555645778697694599335998778989685929259565994868889677876996488956779624697647597983829579668849579837688997938597983965697789659499888986477879388865677386856874974999559899564587747556489686364799839955979672996996664997886787973984248498897548995659988882867682279966995899666894798749689859877989559574982988768556595675956974957837697885838799975523675984945534686966688389789854997779987998669379835989636839686748848676684446769726979975588769478449598886957636957695467788997946852996999867988894578435768686969578969796995984499866955867945348736985869728899349999795597754886327965992498464832665489667698468976577955998577766472729648694386885859659977479573968746837778899779736577699284647998633379949296258778453298595869599962966388597793997978288798595996969943575937837769257767749784879788589898887773965646999888898474735657996894547774559693935648978996998877777788985776887368889477889876889986758373698997765929895653687674258475446968856979993435355997767982532752637464997729557477795956294868798489253883686669697447789654469997576577439849659593883387354574935695897996994457857678234594855994758898377489598889358998983769994873776469899687564996488398669878682785959889393366869795459676974996385358776989789964866837897876937895977485594968989898669835969436878488887448546598867738794678947657839829637468687695869589255375999738984499995766865983664979865825745557399966764838993975477848946778949776772935888787656998825693778946758768967975766837993786699862995727757865885424777796488548758897279649846679896748976659696485497597469978259487846994957387789578775767479379969875895339877885869354848655968977485978878839995899747278975582558788554984375998683544994887859444764979866384957985949934886894698988876958899846458887896693366496493749744879983389947589957668966839496898686579789379466658793253898634586796966759987469659558674457869737789855686897886697577856798789666479785769998979267648566878826848839987468795387986973886997599756899579778696647659759799955753867874299684789898798938972844987874694895793889353877395928946588897759496893889998686749784835479747768578588649838759679848999934664969678899755674366596677924847668462664764999382466584869928795585879729695899296578596748649946964994995974846875797799869996678976799979786468469967556367499877662399598995898886957768647799956778688335969996985978988879698866789534897856498548759938479523677873978488759495978895657459589768587629577787999695847689788857334579689487392255989953976629994599876937365258797868899358578686578946495763847984496959992847899689597999367959877266699846836838555893865866359868754957562458859457745886788468547896968884579876997997779853366487887588937678375955778997475999636527726599784588895498993795379846839996795486444944862769964879785692787797845482988743996668767845926568695486566859778893966488653869987689763378275883745898868566966952286798968349758789578986687886947784758267958864665699298484779976492439896569666644728977997238426645966879968386875846747487765597968397687655549635899936979756399996572483776587938297888787869938768629646859499665839968743775778773777745358768992389665767998848885985974769459998956698737397626684828946897586998799649749647688793638475388996745947765384525369399595979787649989797588857498975785686896879879897889939679849257967489992699894598574375955968539997959965759762756966396669977469969897796678764528888842854888388674769979874988878498767869656779789567858986339747797665799584499366973793664279565998499886988896889559665929677876825953496988878689898595988984639882599796676946477556987784967765589786795669672849468858698467988269777976839988897449946558988667669586876787988938678699627396399836999976599978695666562852948948979889786482677678689263725948685357573597689777996899655588532964595467698867587939869897899477295957845879658566743876785779458899896566753374879884397969547696957669677896945576878884978676758878884884979835958976885747538799843438877837937985796787873796589549879875622783655773598348979889995966929889776649843499879574388439799295586976248988967786865897677867555866479899854999799785922856699557738442925468889648959559699869976499797689948296993887887992569436848998758899669968468963969589957534779943797646966599896899838567997958694888757996758877929879388748539789944385763968398586659299746978867449596769587942998654838595875549688693488297768584989777459788585682789663658888698548499869969965898796889828797737387988949682439729668496697273689577979489997668857599857936588388786985852729937452577468952885895778688558785779378766849353268983986758798648776996477895799865989676667984858696997998383788586339555678986978984954899788867769776787984645997978826854974955664626856748639864859448767799964967855945298678639798264625589667676767898794757879592839478862598998586893759894599879997498963988345965949746664446589459997797749876883593956659468768483999989672873699648788678638649798476879965739479835799696677993675979957656986359659242886684297699858479669976357896938695388955786869789388669698946969868478585784469768388999668894662587785393799973578359664747848836688989832258493487569698747897696985996798243859783597969597797582688335445866526499464959445646599347887794387999994965578377859569645466374986929495445484836743887557846464684893475987976948995836486746588873577955949849947879275828423799556972644977464746299775365938533883747683977759836648997667987997398955994499597564688284982975939459789987768343934777959655479587748989957698854967483876946664798839878637564783899689697889838988769928232964886977549842768798886797969638788475865967956869899877679376799898889723828792796979634566588943678898777886887598268375737676399362599928848577943358389849768794975558894775795577798788965589445749777784569445978479622897849784683978777845959969697677588755877785397799899848868494539947859595859766999657896597759998658893745775778878495995686967939697396743489478999949835887989894999988955774825965857973795797637877686586989884699594996938653685379899728978844387846589686598859997599983588477778772897359397599457949888959625267378498547576966988595677864728966789789747759663379368989689997379528967897899835887835993567998399978889567366638796794849597488658865498957488968938459689877399889294776986277445452598867567939639944758898763795843958588962796559757465396987636453897599693679588665969746796999688894748699597497899779667977478758589593774737493573935648755889548766548669667337826965797479799947978669659849627742775748279773385375442487849379888489878782996959539899868897579867347656527663848695753457774776878994779473498738963797737695989837656799976977668868999876986628679766989992869557844387725959786832698732878673338569683988583244669974679947599829369994867449977993739462784868763575978985475697586279748847995878976899986356885487397745336847859678789396977949654925765938989788899828533887599238965583689947376658972987774439998296497966665337679939927988295489763899565499679776887975679975238954863837888966694958495878877795589793768999289878966757786893869977749398984738768948984748792985994999766744779788988599677838778984963247268677688854678985292656476488593734979448938356949689385899886638385576837847589388698889747778598596853863474983736994797986464587596459769793929983967463688897896825788679784699974996898534768995475685686595777697597398997887473729657887939882957588265858686579489773458995856977869774636647559977996996778769896894988675389797995797467477849999458793999924969495638899768959988757896285733738658968478897987887887896897682765698935888667576885359496779923776979852556997849837679789978795959989893879952999465779495577995889985828947325588939975437592599689645566985889957786795969485557699965648585882846897893767673984895846957478929869854967446796479782585798688964496476554969578888776959973789798984846825553698583363499839896733884875842779943756698958497778788795897393779597277777749685665697897789698954389499679479764664467557656835853768559399963694893698999879784962499698565698778599997899534557948766988989947599555987898983968989557695663989998526896888767598736884789894965857983972638897982693437786298756663937669888679459986929859988682883279994598969784569463588877576869769658946878249576564999399987954476989669845889755865845473776783866779877998755739966494379884778699899429945867736999992982499548886753786983555745397889826799675947946999668965885789776279789978399386965687794769987886789889977427858896647968885698933877783765699692675697967988343988966679885359462678597788654464689685778855898694873695676599999834868947753786556845867493658877949984964948887859636834879947884968967499954728938394688934733797898623559498375429978938678786392928996779849768669696865586272668277566997498492776784978764577789374969256865878796943789887969664287695595265958562447989998658597897769772988596449748898786655558485548848787678569658489793758394394875496467797834922789986898899955897685689869888747493847894649473878937444749588865579884886848888758942887987967797585847937484773769959785599438899877896876778895775649877644778484367678496686998985595678652787837735559548969688756999887658999598879485848899396994569776839656325695685775976699998697988764572659747832847456696349978983986845677385759949298696794772386828469768359443846654287776879595897569588966366796838565379673496896689997353584966787866889968435749656893594982688568495727354865488775699839878784655885564389658579988563446993953467799698278799575739899967778988558795599849749768555557599458896893684778998689579728776975895748759733498499879989985555789659883558998995696588489898878799485876847588699998969939474997667226869889556787597859576987949999826836456465787959855885925879875838664933928733949897489597959959845636887959963869474568888944539987985564937748724698865963566962765662798398658469899797993796787348776679997595779857458979797878487764669586897465996658873458268998667897868667999988994549769988978996268586958678787868894786685284799682859954795464547698745878766989886959896429873777987998999886766645477566693739275854287548779884596789894747293888753956959874855796594645345639998785477434774788795765966678988475887785479633935762567799948776636394778887386758999988964599987936495857756776674496945758997469866298589976789956298749573353798999667769436786658237945952949647879894898769499658869886793267828999938848677944866593828354393676957953678968968447877977678688789497735644923439697588996776376558597695699758687597589897699938987856587637788964598957896656977866462444975488464588889578443359759586958452356479469888878877648985798738373876799674759685887998862987685983876667749784727976864455746647989579975869788886664987839548876688868683845965476898878769769673289998265858553469948988573668786597698783967862635993683898758726994795566695724989767767998537879667856998547666984993789698854288995957589496655377986755488899999999685689893588779788568859899989967848688982887858956495489698699976777379386579987888635763997539885686937785872845676649278635967354938885749584377446986744375898796768985669795998954287785396889793884898975899385993667846958774399385897697758883886299989868447669825885977987969666493865979969765659826795978988967994488785989659957778488454855977448877627997895768759968999839775458357968269938967868247768792599778897989857847867989889673675639567699898763369779996678448848443984856955986685688797866637894686998496787872977686744396768955694945667299387688265765449875855754979676875498537978679773969888858969976988679844673485595759977974769889675777597566286488986955784846859683989988793758876964459899686786769689777455983457987233989859669844379658686448979779366594888469936397566976864997677747479867985497447927453698948567498778449887979286497888748947879998769974874796878533767965797989797698969578567986989665887265999475375768666829247795496697768696868924784556987446738947579287934459745997684968749587876595787788858962788735659789666847996967887898969976668572965779889976848388997988777696584589688889879479887998697725735983658789699888999599924954668977984838889797688629798934878683785659897797868868797897694789773423698588595774968996775664586879996356979599972968754947989499355396653976977877636558465893985679699298769568679569896987859968487589458474759787758678693964655879578568777597867866679669565887358757239949987965539677968779688478748576569767486479888759297897779759857897643843846789485978658998679989996669688976995479875945979697669635666673857932896852886637889688997459587856899678669887879955875939487943744555959887985999443733895359598989568695957349779687762687678697498559793693994887485549778968255257883674596788469599839793838799777386367573844448793968649537647557964899765958778758748959558969788686997528737996678839683989563637899475747756497874886499869395964668936595586988798787759664939273489687977754668969869745628378394778643559977654485746558896774789978958538856949564596259986954589728996794345776866679848839429684686658878959557799858797933678735885998999945796965975689297862999469983938787888547945564389697793963895589598845997957278586444562369889295794478937878789876397879968999576998256484635884479573393479499996597764553634797498588967686834799599732369797949888346944494929946596572797982969699798524676878767953975699797998488987845674887487968485878498755926676767493347684294688578688488983889897998937496897886897397899724887579588784659675775797384798988966658735929949978677572559978788696888898855969649873869776969868968349266778597784959777989538899568464994395996738577935895758787338862847568685269599988863998948794798958476354897376947454785279869489892978658679955597989268698737394779899959978789787736877596583644248269597234967888766999559788947989498695698989279849949795739583869695798876679788697472575295349598785686494969595585873769984336778565778366496974596327673999495685697938998768795338759558645536576858393594558688987769295562979953673773597798698666974887536399975989568646839669359599979882992948846595846765696939859597557978486897897497794446694986569844958664376938899749368843568565878679695997828568659657685868898999436689936998945659879887466949666456487995898886895868299948968647837997393827954976867878779949659737884799866879759888985977764963775569789897848449945788985549877847596876793769842457864886629837897885898688747468874679696793785899497874979889737994873869597597867897447796353692653866898885963897748678968892748549279988753989864927869674557477383333589975795877757989689749885889545838455769884694999666865366479975867758768789889898969739997589432859578897688664748677457938695876527488967849298695999999874495466464968328778869794459688468492884955678688798864784836958968694349559693558696597687884999389883559393369459999898579978797865596674386853449626989887858828647586476986474259979862775387964595999997896389976635897784978689797996985983677877568886789997547996748978576949699679587844768959789778767278786356539585999939956578752975393679789768596639766445966844776398963867485589495389548887977848768985469549943795354983896667956698687264488749557368798889249888787989939966988764992295999945678497997789989588984987747484749297938994579795777479786857357662477969988868797235785398388783548796985399246889965997495789984397885884995986788965957866994962889787646692889666787597286998948748738998958498796979867897466747482854384766443899976568466987783246948737938786875686473546889695839448598748488859765966867964788669855543784847736936875483749379768949866585967758979647897488665799366298794552757447554386788262558579366949767797754636985977849855438988498768945337796682855347487275689494834785899759796589349874968589869543676676739896965659953984465899473493737485693979968547656695669476687669429844877755448947849997854498999735758479643749858847573786497685744947897868345358344893294576957879987657869465538285996677379577786865896797824993858698796386685837676835869935537729777488754268964899797887649587777585934898969947942258349856469995998956456876755879759499489882885994994845599697388725969739899749396999488976486779983764798969865557267937444978777775254393673997768657426373689798987969892793859669967487773997568968996728595688959977557767973677857858499539999584698999976669893646997989799588739629765398569587594568799895858867567986867849874599858857732956479547397988788866689768286876597635299997949585736998946568485664867935769897959879769439762788897985995989668798789496554758446395874324486669999477992886459868474888874539698696995596987966768592758743399398874652698657758724978468597858245599898995673587588869848572983365699378988658669694579796378798937877877868896778545696997425623768957893986847895684995969696893986649968458696996669835797888895847994983986478996595477852394848896459698839768989977665335395896589679766443534888798787375949578886847995859554939693779976782858899566988578496877587973989864436899684987875747658847828987497978824476456665489873958898688835739889446589655956964699975848696886658586759989998987883939594742748899486358765799456546578996347986965785785588987779588779877596738973558894678889967787993947499838574775958688963877898669499468743879339988974638736489978998778424975979578976889959785896344697797649587465766475889856587869599386648699488789489768386879656598398687767678964789549769589474579976988734937654636766597989746589573789589999972788654477884799777799399598978894953585895598379944886785956555787586357783896688383584964579469599877589383896688676865888577426898263874689649755852685647645277677485779967979677438484498948878894956688999997897966646859873887843977689388887239776976788275384967578999774554896657577784488739478268986969587582846877848959834943697955769337649968853864788867668638898888947874889799699948867797869998699985637986834239348989999765773889989944258379978438993694769899259978574899863879989924494786754978776978697766878779746395596869996698986498459999747896686767637879799858796879589999993598797999799748884598669538496374275376647998676448889978349877854779637824835492546899668999586892655587778847866563984879565378694697997973687698893386776343478299436932685688984834996999857876649679979879524794858898984799797698997873888627996826835772944999778548736997757985979582977985888788663997788798666975998479944794499944378846998258973687448669776957698598789972947963996885997978568768883448867585723999995948968749857768789748588399956386665247547737999976548797984854798979785447776839762597547643689947298774557659859385393456866949999645267947485795986892859766855679486764897599957943547637378355748989867856999968585499297475887875978962558558994787949564658677899883777989594686548689758745987486649872784399665877899355955547884978996739538746869854996878537999937992898676287889687643979889675788728987888537787885469268839989388586782758579798952654697677879558995898965889949798982776845988995799778798597584785957388988859734554834795598592957999899669979349859985876569966469996357445699485949898479978655824757258785679629677796999738955878697668967276797996648736299969463794886669977547995337786785858527688346956946889756989969927475948577765937678748378823888398538379872478754756787867963797267684878465678943575498864853739898879854949763899649838888968487487389696988367448496845942748565996956479996557665377498979765993497987884888999658843797786996969689996796926998759988758895667878684938779893499677392566669838238755775867888776899547727449795768547775684559889896844488868899774675779874564347739428784999683768859549765657599596888839769988877785589939939988978749999879646969956973739977369694978867833688779735843383874865934848789959977966978877967965998768747399686992886497593796698987843798549558937354485396995397949662298783675688897969999367848275558978358529857854965268598937798898987684875645489797852549989997678895227637629887758477398733475858895477899858679596989868379768988885885266469897989687848368793957638888668988988949785957596879376449779787778669877976967983896569799553989358299966379847875758676839747588879587994932458878976987987879752347843978457237996776597887795785666654947859838979847954659847393598899287869772669956783489999896886866875998636797898867798379489768887555879889956997859497964994469727568886382644688678686955779299795899787945665774896499969747859997775929977976987579999966768623858688996877497578576754867592722989888266893989878979698569994868897668655497875975858638857638673996738948759998695776469883986836898954949789656679668546965978885759772866656378567548599563497699497379479469686699945599887779878734747997263799559972588579457879559999573977988674499869876892878994897859938974898889859785468985973999789729646956786793799893786489847975466979848579258899828989925657978398969695898959749959698774756898759987979999433378675989786444665775853993563986759684993283895965677848798659876744832968448366778468878769964968566536777967788829253396648878639858954847885569389698878878979987867987568898865379785894854598888376599689234648777684877489895959886888799889576596499973577586747898535339997399989586399658746999697892685644286698769379945869567946696878498469928574936496754477739784986667438558864444363888364775996744458986896663979785599385699976785888899845669353689647795876579793464887659766667472874493487796986579989378556892289974988597898887869888633386867449779435924898479787853688457699588949497787836574749787694465869687487329897792664967466477997976864765948985928849693998945477368827898948429953899864678566779488778339999789866568938968556555686593956735899498666383762698879499832789898233889969978654857497596645938689659877694843739555877745978679795849968689858776428499298557858958793988849777638335896865656658689699578698758454848698737546877596596587876678459578895949635968478329979884963857999897694556825637468674678774788745789677669689695677689879868695778357388589978662699686798686854856848853888864745654898499884858887954939276927756389973689794999937698879738957454567995987559594888999897977966558489266446898478967895594773995996538298698935398759735778794374549989969848839586554888989588888953795837363868495897587997875884357979888276995374479859799836592557666977545976656952559947897675643965825624636492897688484549997959582578287957886587899636844688897888875976995978698329838988769467952889537679696895868797584857988842889958299879688986584988976277946649885997997996597885497957875585837485679955827579845648848399638698834469595633688758963988999376969798998888286758637777547898585954669678386458599937584796498298679773786687893797569999556899985878897795588579979663895298874662797454878849689988965573766577673565499675858468797894858856489577779492877546977676988988797986845897599882695976795795978485666798684846686727565899992637986546956969849588654976593568964887986845689965589866858429899994798826788964996477672375448966878868876479485598684834656367736798788967489755869959443999587976567327669679933864485488669365858689792586877949989498734886699773988797646435582669469865383999639843458975575687397887977395777962649578795647895679975865888556885389989897588888799999968975994959937949769469939974537899969268787559886897583499358848996868765969789469934778558972699862693786899983885669973658778478827695898687879467636776577847897697859797888977795968865776649468756637754597975897843998728687666389797998594999958593999475647977995376495779965687947388778845588867777782747987435758896974494868489997897839885783982569884466267989684699949686982798957589494593959676567898985429979429259698239277689896475585758439976856737495989959827537388575876637889787387569596558597736889945486762798855797295594969525889889785278843778894588648897698925694589977897649487649968929894799686797578375889785849458655577875887689394978666366459858495885699496893857689375366889755688473846799679786589977883668588556979979783847984996666653899366933969697769999997987979975788867583688768998579738854637367468784952985745557997789897988876848988358599637786688877759989959389889424497654968887828367692899778748859377769744956727957789829999578693795799586663675689495594974558886299862749787997688957749989889988596975595588999987978659748884575878589629969928797845752982554855768969686698737849932743976869954573845859769545877473775656769479998857778983349786763678868877968849779749885543773679658459698364396766764377948897668388675626779797947827998799766899776697587958959867679874389689659596976794868684937972587486286454667899946975846999879986687796948889666995359464482896776887898986698833987837684779676953448647593892577595853898773986756587999849757976797965669877385588359779547796876759798827998789772939896677937789647895347799688766528786943577749695938847838782759524389975364889898875879946296753398999656459388985788284576894695547399588499768648996886597587786844442984599793459546669858398747489477669635585793254865764395483675398978799888668479999963773863876566689786895794676879889772499674499744858768676893576568757699844597669683838927538695692787979763837757788872889597676492559768449838396534595256885794653674953389688976659997948685664736638878788946777898967788988696585895973978887388564997858685784895694994958858896778996967987498644986973749756738978388737527727865969866763669989558557489469986959664589995376585959898676848895664997435499987987996585375698659298896774854553894748855698975498949577888557886994689899893993593999327494979749826798757599494996388765649996879678992776668625969879786926656889899589788794549785966958487787368757395498345297547594892723897979432525364463697985899683958979598988943394884998786759545377983448745858694899763399228497698569998966766864698393988747768789988369859968967557396958489466459959967965937968749997789858768678869668686759366498236787984895989356435977666969893957496889999669557292688834884359838943969389793355898497676746992534696698986595848389645533698869985348989549986584779466869834767584885996984776767278869474797587679996568856845765977778798966685259373857886688879585677985949883897597683968946767497997596558526768888658482377937684694976766689568857579599878886746767585797649388789969788966799963788447298494989899787957928798458589997428375734977867596759678996897892998933889964348976328586595279893796889895597746759487984886878289358999878868393884757878346895375653865755398266963396769986658676953669788586936769386758696999674795789896867648856335758886976664948997987889777889786694878589827968635728276948349988548753574747769794645698593266559588884948696748594575578878776529974798269766589365879975679937495888849954577748957555795786874895688978927863489376988989448877982544975899995878378699567866475777439798435876879339988478869893872939967999938958462638896647497756544999557392578593696996963957957987774598579993988883945788768348426945865987879889339779735676786988884894686898899792575399987399268524599886377766695468563787799497594974964688846495889299988486767945877965769656878579993587837489367999955943964797947777799763729575693359793739587595285799948959447797685696788468999767769986648999466868698647783926776876768668922685926676867699896787693898692876888994459677999869969897826978898793294488979684969897987579459987388899247434867649498828686933952896995793998893828743975687988894847589486824776868834779788495575259985876989794679897769943764659899769693788544635682869777599794456943878666376868546979983747967578977475898779547389789429986897947759889698999599936956679899799859769946989399697748897794398998458985899578875789877365963469488596862998579936789566879669989999525888978976995964999985387499556566697579855848788378499855669367749675528779499649959676794977666999978429977999299698499778694486698775597495587796376398763998898956729859776574792849364899987768457587687996668838768978996568999638947867574679586985862758789886799758793988379789829795399666838495987834579696679268527454956788967677689567745849397259583558868685964888854955848769874849858653788864642297994776787849477695862987969388698898849597895696777859338568892494937786477595887769975695457639825569793997646446989654568989796778842746974588959534765672987688896558797757439335384579789367895369294565685793993967476397386489995579688557844395939458879769947778938885963599589889578666959896925777596673369466786783867595458868989777979949856995964769868998789857668828386557394687755778756568943947668765985646879957777689622387398578878748389996774258459999999774542389276698955829398887657758744987885997997848977636879574689865699776646868897996476976398968294989798756489397946868573563589563598668494978848858542978979957766678664352678898735535585836877629859489485968836935985994796698659457987998762526549538367895959982638958798476658796578879557946488898975888745877729596795757979779499393486999738795678744739697656996887799587769546255687743773986985532968635695975328667689899596886596499696598484987655469476548667968692589878649969658699846959999394736679639999729489965799289687496873835927966976663899547792872533945669938889599889565998855756238698649863699869383888758676492975579898374664975956984986759348992377899678948994854697887652486999995473588786948577688968897876479848746575873795987785959994688885858454896693236686999344467872969759597662972993769979568795949288259654759899836953478986328598489296943554737896887948798744465758655835894597955828828974467759795356683874686666729469969279977277685976876848649786982397989474745954649434974345687867598438897778896952878888966535539974886689998676888992472245729959757699694655367697894795636599897689799886986796748975598843688965849988999679899969697976698635747978879368658767732988766687639843976458679846786397679897988685789953688978468994579562736689399762969664797584798794446279674985865468778599967895795669856879999729764448447675677959954988786687635689978839764267857789899794945334625996385622797389956875883947253493862676888349688699297697697238899759997488478638996989875398244474958883859665399963989776897854899587798763823787899996656845999255244939474898477595937696389795848858987768778999878749588796488896743885448593976577446597579955978593997345559958666876739879664398676696862539579788763998739855647765957765748873899347799769785964988579894579488699688866948993788528578699868699677897355925959478789753876857656854686469585846767938745797957862987557345778777949766995779829749577374847874945698835636999987945378866898796563495797686692789979795969873878737878473759446876449675899876969686499387527878349998397538667587868765839993886865488466995658965547896562987588874955386897683766997659839698899896646846377759375489929686669439637993437599789669749688874959489979288587388798798269745787685886973789979994899879673934235859888859958658899586589389996996659685739497867659768887887669475896658387988776777596849256498795795877797889659759693839955565666568857869436495685397889773477795628863784897878868274369469338769566877646487959449946577887879853839275757896364936699875868687427976379792975876988987859956575878975486786729955987968346998874689668999688863979879986894958234689899969877769995685988744799775294892963697778964478988297957479379898478697647668668565389669988726878969386285633767756599938948559679765682976799859769599788578596988865899439446948998384565597935899866966868973794856998894465758997666996797639694572459652977943863729557984687986687756886699365878676849939784958872683887693868274997598438992869487685697896458968575676848744969398974498886885968346749698685788789399777897788959865959696934889593997798775435599779794889794946886775869363979398444375229899796969638567977438985873753897986685474834878787577856397749928258674749868989785455899777989979467995459795595945985757376244669955988598997783389557888839675554658975533799889753938966596789786996975999977582967779569768798964894998599287488957997958794934457787759892768987592685938897948964559949766647877772787368369896487897665577665725699986599989976282486988598795368886982733448974998559586787946998987497878223296988586939859727787899845677879877879949736999954376883755727496867597668558896589977738988996475777988659739955783795859846866278888586468998577338944846675867389845966746878679624683557996936685846573984588969488299898439867993984795798947577884585644598849967854748774489836858636579952982928869687779895998448493375875978697946956778369755797679788969359646665759969785679668487949553799584436956477897468769589845664964949969699678955343699978889687898868959849463586658657549986694936885789468745779674894756454889687789459668688328394569896688966647668899899396659496889786866988837737686967477495699676374686679629798598498747997495886857984566867478499896949962979336989885568689939479989457948288995587468895688886875658995578974487969855395999996979795888889986659499987566746429897869989757929675763459967493739992589377397979752959799659679393658696248997568695757987459997958878678739779697649999659889737984465393849978589883898978757663875846839878997898889789783984887899856965449758663957389989387676794879797873896668466974979647889997529534878448579977885666359877836683599844845759893875878278699977759566687976678884783987779796784766575575348896847366897927686693866898457848387388667657665846998669996349445997998872578985667983337369876394939887557638699756597993737677244869589892753297699893694445589643769573787989395973556674976549858687654858889728899532696579796695594977937878696867698898349636827876974349396888889666843776899784884567868966395888655898727393987999793875897855789557754976997498642629883596755686582968259758945443728948696977539579959766779487896989978588583896423873976876986643736656686447894669965989988875789557969866968527999486563548585667359696589585943845396785286948487247986998888978783799665885899666782769996998838595898989949875987898937299788899997638367976899798766988698955697574429858746878848478537743878788739549779569549638777754457889298962953378897978999689878388565826838798756789867467558693698797768567476566998388482898424578994477849659428727948865944592899999626768997498553949775954868987779599799293875796445287474685996569692458779889598997599994986487796995684797773957565547788738579678723388589678898776647769985869535899787767443589983338577686769677692339797662873475379363884838845657768877869988876865395967858965878762987688776467837459657673577899839699584468699997857695686854578294999985677897794878557698689666834666856968959747998574476748868946675987858598996888992727593887947955566288788683484279687658776867898588935835749948536458382985856825988785679769986843888896969698835987495799488956288798649588869896689829792798987676857996678888937678248876895895798787898889846576585538997759786986863788995567589955941393556888496956854577786467789883974682593969778794553486999696947984566284787378979985827732678779762687699467979986583893749895273797728696754577984328686866872498588686927544385459779735375683795956974295779596889849869977549755628796968378978389685865547967887789885749667978948565455699995889543895487963839279857897383977789785976568453858896846649685754668977879539896348798826689992859567898485956864547944855853473968788557989654758778269875897788765834987788355825984769999748686896949745534466459597898985346365688595778588889988849768988679548626476969539978788997988987836934867476766798984885992456379886437579824876887595468966593766983999339389899674695793796586469399487737935954643888968797998769594696955846728699734864843257239349739993724969377879368698936866889983828779965995985999646972858899924956895578858772695778959978328488666789799598732968925489683382398369798799998658569765697975752962764858965288676664898477486689769833878449888998988488564977538287979865583964283798946887886856988548889576489689848566767883597737785389697757399999737728547489839667587729444988866873598888599368783695955939959896857668448388779754886658686689682425396588438996657893534757478689979486664786884657979978789967686969789296754966793299968979799284976876589936593959657446635897455737997828788883579549932736697673873768849558349968897366389485945764878694845586797953848886689778388272757974876837983558877727656869666657677999766978798866642978979942836379779876636677869438673899356687979875244995895747988534664689959538988699896663368668873378998956577259768725977879999959288999876799789452966887736652779588977964994677955799588639875367898428889469637725669578878569786389499852585996345498688768498896695766556796489436494747878968758988668677868259966966438769767738925559847897579824885885489788898998779948894876654998668884799595657599694246835578238997986666254575678755838869599677747354776994954897785654592768946779678967446576376788689884796995747797328358967987897989487248667979785644579787456464776386598862923778586976747993469724785995686959888536774677944786794879582336977796988876994778587866897488573457573977355478869989697766836745887944985494755559858679685488553844788486498486995997978845872965973997748374893975987884797657997596598256998578798664598955867685669789493579799989797869967842688675867786967468796789836594647996979365959849986869855694646674689766976257689749387867659526338597688636956797388786364692839795835769457767898976875977798993687667978999787868698967894384449766278967878939372697655859784938996799557987864789894696877896446949767935798669946593788999975965466965924589679965989778883876676826667987695984897748888538989749597472976976537998655876764998778874687626984827758988757864975595666459799349599877756774373997676375797699996392977676663676795276643889738996565935895789776878998587886786599868396756987896889967868898876425538475967964795999274959484958953947952998355896885578888529898843946566975986386769879342999689834895888597976929595879688927649798586537826984967567679565868899766795785666989748588898857993857339595947979567979888875778589553684996773933753999656886799999976775898976786964869676467669748947846632879765869858952659988674799559662887894649788724757759466798486964598578799663974785799959988856836578758938967789594647895855943829999944389246976944967478999957834984969565688656998829897996554659448978489879543844977554476886975876999936879485773977844887686856879736986948585883979925534879962994876996879624798948984499398859386893647456567478375369576699584558855756847768984686796794857736237476638954865756598898488787686879698898729949987883978794264575679666957259577529885295497955562957898758644987565979898438489788296895754779794779639854589548779875834448976547786695694378565887547688679669837667977879944444896796367675494857777389996633649482868486868588777758998866987478889999978997596455684667953863927638467928959589443992465847998253767999997957742858987997897968786746566645489597398959795989995668388787985957649573458439797967866633984998899875555665695386646888292667687647497664996384569978757687669765385238394948862663328499585879457579754888348539356399779735554547558976729926787999538779448896865734368977799748674939887239978887577776849953796357493974693656398898598796475545947688857298687757999946868498575456499579566733865494778994968896798769284584989698845689868887898943949986357769986849594976565966697336753376865963894786796657896294329879659575494769695975389899398788597679787963954668464754582965986369695873644698859839886975549588587974488782336256698976778968796796699739835874787768449978657736249835749788692776939976885469357865582246447988498937788436898694347888885437782486289699499578998982953367899565998896648598497768868889666665459974567857759468485867486486865989998896768789666682938797567588985548894774795687988999598998986496799958975294888863969479949285844647597895466499584867839683647455498779959579698633289946899758798979784797226575977596437449758849442565938355489459863996827927662775966949548957894949767769726785938997936384879558997868898687687579657777938779865929257765789464678828967784588357796499659746667779923447559597725758979696694288657847989444766986689748858465654699695852459876963499868466949874679779689678789756926889263898326847882442379939856493683776967794574976754563685976866845996894498842792789459878693923579273965799999869893579949882669739983979985939979889867992678679778266799543995455699788989947883575979449497896476557956999788873789643748996899299945799839955477453378895396873886858989764967694693888469662829577777385624686989846392489574668986659872768984895278848967845888829947595868477773555984293699849897687557968985885589282535966796795479355947788995586386889683686857864979938845878487799796884685499856885772796877979947595756532256397586368868998959583476587698835927864958833679797758992686577954898479799888976779424977568884698958699265388997888447885286786965855867796998688767745949687869578477882789873975498685956277895575769978988799429885877698997764794599466798984647946699879679486926559978988775985858857787899967727468655889677948887657456274959689978998795497488879784566457728839888596769979958559589856989997887857598993699588983454688897547956786495898538596886888688998979757653899386898888986967369986935836666598935967399577993498658685973877966799986699889747757768388677329896864998956854529588673629764769799787995967888774968946944889884579464857379933639668797579877476697889547966899979448699946989699569889799875683958977699995997827898776797488799776388989938428872484768596785968977796957668986836794978386877632859485899858482878869754655756757389677887797952968537779798754986229376594695899879585958886958789447988855376859868946584486375578985685949376878858998688969569737866389787596879978945356876986696583848982539886878478462789699648947494767687738989757945976288895779698796944646887957576628645933787577997679562588539838366869469677898957856575447998985475875399898997678397596287768977589796659882666957798526678853768977867739988384589996389958379796279876798595797969278669574789899478736879966677896645676595747697766738755998289289767892433787597987948893869997866535859937967745598688485867589628589979889475547735658855654873686987545555648669796897893965796997989987937657886625769758774686974645769397579857992477479465669927797698768885558858782733249896765839357685958596837864789784857377989457586699658988966563539595899688343378628885988882978969756787697637589794599667585639787678987996899466869638887768989749995276659365984836895767744979885976497857877369279972454368973379884599249686946854525683975859768567758798793862478859758989469695488797948587764899728548428939255688847993289599999984664759487884686566677866657639653528984988282948789658999353768557587796459499988556864669995378978697964596396978992765748899947667779447746947786995448687988958869769789987289775938778695535768923596866892778957999747995488388747789575956694659777288978884848565926488875959358559857978949973696962777899878979893255889896597376693883992898957538788568994879689878862899885367975964856798686765784375547687393835964724999858956538778588999596787989994973489787886897487699559487998946894988466873688987473358684285997629569786375655839858437848978899627468999794586579585976294778757668555475878979845379759658849733774288998958943965736678545967995865758789579499797958886877995986792649287587695677984754987754586635586938978994567568786653894976994448389649893945279997999564375998347874969684799888992635959539978989697979655658996799389643966443888792834495843977782889794688889995997699498565486978628677766449898748598577786875488277587556889822876869378668996666699582945465522634879988766986397689668778669768493994667677599638567975357877798827672278374967578995968783988386226869749845447657868885685929488967968899535655977686275568757898577489896847959447664575788829898966746977579669695499548872855794727428599749974349897586486687654886438889798777588747683245764569575848989493989678998975896888679358446289999257367574966489296945739929828696897768585689843354688899845878378278858786983553679998524984799769374979999498487799383985888386626798848478568476674967455366949757888677788864785389787648963985779874659785944556478865498787978436993798445487764395889389659769957678999579588777939995599576977486788266468998334465644496783545787794466759557569475596952249797457876792495879566649427854925938898975594976597884956847956564674859584575675348599748957982884696582798297848985296958696678564978745978873645575866958564865989664664488538676758826696999588993768993989369786486756869856478678368996875987747696896866578689988845679389743673747989797526588397999865659385666998878397694799693565666899527269664276957889867999479889997997867359969845786978398646957995984388532949493968899978736653995848857846899989965876574449654228876957867386699576745869959285899698795888957864648476578578839696456928577397768936294886869528848598795588544939589889596999478549895978952549556897786946567566989979767758777897888688989997264465999865788568965994799968385435876998897387798754439579684996899979746274247439765443777545559276567988888978547877638959569688539844886962578485457897799747698685694978846893577549976958397467794893782549547977768985937677469749675936657776799899555559675498386449892988699489978978767563649327798336949249679776769899658977659288845577966798987984689888379288899889469896285498799988786967883657775585675477639699296876588789569849988648778547585767769426729956373239889386955495746988269299852638995939954668669992657887686588374878723744488926979975337959972539698965849888958666978969998366459369994427858845459953797948879864985369874797375569466499842997386669776688898598588939997557479779743388576666984667468747287666945667885683976722994587847846877368763698796937797687976477786865868889679692475954984634756778585865778578789897698557797738595883964785285855997795958828967725268669879326962866539637595899987454887853669983858353475799797784754884968539585978495746786799577757563886889565337837997958699684958766997878875669883839775967896694779965566958996996279298867645986767259922875794769592658844969964959797899378779947595559789745298792299695796897999898877588299344699998299886364842869365476486969697792777287595746695998994767975989877447639676757449946699968327576475856657468496577986954738989885657479798495567656598578632867468884946796665778293495958499726697729799677768979585988973987785678258478848859596864894697975885487879425598979797485964796738959777975699277369822336778679697588479745889994995963552989298887594259996599559856996598968786859657998796967492449968588967925238949765589295587998569399727954885879487698796798527799886784988676447958797785987727754975999644478448986767593698899997785998998696779953372468899697995676887686973986873927568959929976897646998588555859999677543858948656268988845937766458789879866967798639549939748998627784786269647563867479469784489865524959635487977667465373798897959676396678537585875597788898696767347492887544999858856269388678326599757985689895896639888845478699585952969966998786758568779488345757597982826797974778973799797585989466664665686988975434987544986659339965994878688996855498476856464357877858999849998899685999893893648748749658895598894867689844973938924975276349477989798785699997876996989485489795876968975769896952677849865789286766778599597967344474867859558898888796799949756895679746665825794666788568459646889536669655687697778735799542679747489842676486995375357883858773948759468544998787473799966499364797895444995759993945696766463968863894995684393697579468985788837588799749963598357378649796588995892737696359545986867489997247669756979559568685595979879789698896932583488498855946758664676877369599983482727846865869579895572478998624988979959987956879499639988794757479799769783467657368389973584869793759495452799958996998559638885964898587786545989864443979838797482598585888664599797486686779575648884649794847599498876638678869996486773779435849565797274495765924778789686794559958758848975798857896688446774758578948678856526998992749574563959949878689673394964239989476764689974284965975637793778794896895756859788986586877467895586898696959575979799268873978798945476488769786868888385379589955484279588573975844497854696895838778788599975739689978884457637946826499989998697858967339888889799977785888479884639599729748884859558985685439668939559956888675845668568999994576497685889767597695933798897988485977977796465585825543867486987647589985689969949984782496358689464579995955599356735789476893865598498748798663998894756562789579897599677859965867794985878567859869896478975866376998886245755786898363687894984595684799776886559696437988679587975868999797685398678385996522578349596399998486787768563296487354757879777973798675967785992879979889368357858559927782939954644795485292958747599765772596377999986698297394686664474697998978677498884898488889759887928969786927888777634866926779347697575843473488759776796659896397499675799378583979787936958788874557599858967642373875765968542836966766445686372698465477889569798878969999757795779599795874959944878572785566589776794938686873969867249354488949993964346596665494895366997999889984976324668895888354865854999758576747657893999369658759795692855769348854759568567396996389667887959896897795686786879773974767975735962777964797797499786768384374869899398976997853967997684969459555767963898968589565749679988589798868995798996757364579388758677844849739765783775698797627989958844999898658669496592977598566699976948697976475956978648988973889967256963778938567699944279968849797798768445738887957486777374334974376452758959859898366889374979838549482452683859959889625587778369249775956936677979396944268888485969274958957697577985847778678996775575288658699869445578879967597535299347789649998827699387769595874865538798396489665776694469647958499693879377644359959474269279946759933989776999759765436487977489878996878774667854788577966699795577857989788948448874487849736699985768876899268587789476599997825869458789634699269669678898389346662688739585355788987789886768687769759985474998994556888695668843785938486485689849964585698983478655985892572365959659639862288589596599575575878498794995997697893669866786698878755837999496899832966595372697986759959569566823895485464867569958648345793585576399488487898278487989959886877784986556579936937836567983998266758697684929252434942956788686949494258864856838788787752799968257696683987774885787997232866698897697575579588886796794857789789867668855959952797359836989888986678977687595399859538666999988327778768679538939957766979974638579426759752669468966765659678948885429399757794885468747548375555986739399359968296698624577559657338975658882886577774579636797644489699938888735875248499886559469778684296826979453997646987799466786957598468699868867785685993587689787862968799466967958858499869898677599792898853895644257499966998798897676988774666867725385885899845998788986977698956988586548498977757499888954868979357757597447858489285569869247979486797548286759466358858944867784475598389798779647799473489778657786787835883698456668976787987859998825864466793968586556769688969778883468956783875765895388657559848899639657985248966846936993686587899758982954986795689487584699786647887849888759866579999597689386685489896863599888877688969943788999678549753868386676975549689949774499777689747747996497887967875545999639799898979954366999395626798587886687666735848258689676358992839829679564599898759645883948889877594945669367758579949478929664687365959444686777577694886876845779887989346799339687689666857678577785498384986978789847767997887795366458789677856537985879842475886664866959767927487296966985465627759684257989959857789698288945885889479359847657846868699992956954996665569899367937867863877965674968999543946794645275877683364482243727498739384654955796838558765739898969976497969348488869969656377879386553978976669896973565888986855949689849393895982875843987689498872795739879654995898489864977544953695868686383889788933764968766575337888535599756845937467968764287899586879578765668469586869397988775889878952847588349687878878449398867797798424799567997887765999979689746886688499854877949769544698698957848564985955886869658675827695989988489373885554694894769666468498887689437476889987598798987976655768398778966395389585786799458946488793689968978768777687567573476874775354888858977885862348998585474789899585992567998879895895775554393944595743664436799886966788964794964596793686876889889576995899649587676888466795758998998955988526963788599887582393483859674788888966659479995968989856686639899593479576537747889237889786625569699789986679587649947527888284866898977787463598669466827774878498357699478575999544679478897778578699567667978935566252858675756499935988487957986893797329635846649878234267379887638467864793433648799565636628557979448399969856489769685668979855298886599738499867634335684787968998279398575896597398768877589667588979983983446427698788489374986788756958777788969867855788486925458898777979966859957888586297832797757654638339564638669969348496777947949998867266586549999498898898798597889777484924868976948379269765257593748587957765885499486698897895887797568447959875688692657796549984849966577888669898577793639669948866556988656669476824385486896888968959577667356497839478999684429257887654865687496288496362597778647696982996889669977668837698839979886688735449769994889697886829388989963945888833994938978893849879988989778998886937999687866566948765659996984748469969689799855795265458652948599849986867576935857985683575886962768865553788479487986599564466675758863667828468698736856484594657998885969767989879846569429694787727977688887677798967846586948593586879656889795688397929778579577682948389948647577989833969696763679977693699453779599869998695387394668399938594988657995949795476997696858997687986993679466666598889985764624988889435937989545498747694788797776653484798766398696988677986777976849468996767786939457645264973368977686776927872949697994365879995798969789867979474686996849599999857889568696994697669889948876849465947878798942736727899788868955768885759938429784748978985279675996789396697888378467774868388874768787675877995887987888879753764985999945976949257878998596786997888896989879662779586489475993975869552765978969898277496778988985665254888868999635966663584997637799887237773497779296877797356897695797667979797667899767989998746649925962986677298787933964795572686599678779974978887796984663867758878557899534467858757637786875969996689778859544867769888689669437893864998977997678875977634725595873895763969468896638959669788744589499947975956688986499953996877659876997997873987649857875475955687869285748597959389786489869496689766975485482676667798645496749476786525898585677787798585576785995943697796672365949859587799437544557497287987798498499565974587574837988923789536979958735944855589769863778278674776689789978568887457884857859399895886298994783768736555957966236882599638568485665787584646876888724375377546759975978238869899898626845875455789479989499698349833868959766592847885799584996798738727998676954888698365839752574776957488479645644487588957965994657469789653797779528664577686999669787844948984689989895897878638979368596687339374774799493359956798579886395563695749939987789774994867989892973995972697787984997534684893842895488756559856465567577829555654399968894839885998389659975383866288587474697987869483796898649963588767445857974356944593987869437577889559786527465687796976788698889458477585676894877999587659869788936897587787474736989594485685898336797229854987488978649938588568844684288854968766546868988886883678698958399489897867828286338288445879687947856646493564388955998264934989865664758485946896598924466996827489585695572889882288747467839655389935967787697569968575794969595279538539979679789832897649559285574887769979738745328939579476889897996994977498667796959989997346998587879678557273799384366944972577587894497387787768684584745798689565978999983692365384988775786496954867558787696457553979685389896752697747992975698569862946866699796839738876697678789798899979888663489634799887799796897939697886858676897498868656938877953796776752872429892545879974876569976558794996889789989287597739968453854375598553692699979574668898859877899278888897389727958858898664877349984988858835784496573733359653976972659473468299539684928867798735585568832999943854784858927899557795786948968996967936985988763987687288489668654459629679694525454959888659893478775748737329579947683958596848589699764739773799689674699875569647787755784894478898784975794798889865336477786749676939888779282887948667499756792573698897979398577868694497759978698368268635546899947594778887794896777876858248556866899758799946978993979396754767788879278788887848398977999793478589674276498448548639863589773755949488989779888476356766476987795975939887856974995848977564982855999773585486785984938969958799939675334996986653977647965889488779938986683859298498499496988698998976979857748794659977799465878879776983579575796973874887589868866562876664987898957784835882959434698964284769497858387762495947827979788578867449679987886799265743766898822656884697998466972959964687733348976726349486498498828667247855898768776773574698759756869997983887793874657476793793756287458579372638897967696746985936385397887937889489599956799665753889879688685748799874569473857766858895786259737487785876969748868945668968538568789879953559574943984534682662969797998458776299899947687699769696729476887588889857595546877549948979345969585567599778995739787996869859689668982969956998828698998989449865837849264746975999895665969374889995898989982769695967953767668995776288897582977875354896777669766899939987779787698695986658289886498769387473995879637586879774877966964959466487666789368697625397248596567778899794978587694299783454872788938799796955949577697572873656973838385684426255527577369988692988666395668393558899588989753949559657933868569868546788595664977637979436876857396855969384978598563535746896859699368845968734686988847678664887897728659869799864939855979894698966586454345758939893667459886897966498799988477765333999592995893898849869888932994659476683765569957458864999786862784667749948492797628795578659587787892675797846397679697622768958945797687956899579696545747867649999879898685977699854663879799697879294834826597684888744867987996868978668573578657677378769788949955686795592643333499693899866667346869666956943886689947879563639769958678579482926625673973848923935797699468653849448593899979867667858775229455885374672974978984874698945349887696935667268778884858469976797873993933777586657758879355889799999577332794896696959258789927978363982979647955567878878789988487566874787398637276655879579797849857647999699595663369662793858956768698658298782887564969845678465778687986997536457458967885998884967794645593958897889968869343786878998676447989459383786587772373456589888239855778299992888259949738984835653674698638459682669779884966799959349296367989755347989793797958465782696679674864774945789489797877925785778682998844767965589986868467999996787856866799393499465959798376293975494698287978584475696693968883446678769588788737956375848657653774677375788455278396566847997582968545953489587848488824466975685747295394982888927987859479434797288355784988679746846667899969876855598778796669566679749599449844742927997797876737347386799699378995998457787883864964888479374786599795787897567633636883794765767986783893595539898999986727688498895688936778659698868875977955296978596599564559878558987674886998879786278397865754483586983394675589897938839869954875955896559998879666869368783769687369853876764879992794579976539857988568865269578587485498764489847598556896539389966848278769739888995389692786993687458785275237857736995867866898273898337976825789497897957399947988759583878652697649288978956777885779899749274959773885645973344984959868438898945266748965896268877439669968986556999928743979675768997479983796585786737986968869746996399886872886755359759588889984593446948498648987973877272887596384886784739597964598775783996759897468974855689796767989799969678964887775948698977532998378894927879759949597476548573478856635888788952976947989958938358875776999935886493367575839747695545789299946442796647858375689598794349883556962959989769957795868272994776789983987972897695877668984855875759687245667759835898267624576653875685374758489976899888947992585567958664693577598759889869676949797545949667685685787778785992772865753894699959489798838895785992566885899848783866996745726466659875858748588898795698995579698738574979799849796854863393296899883389578659762825663985797639698795896996968688977476439378858634783356987478968346656467827994992656497239775946749628633748687778477865486888896699996788585944257685283756293999988959934799566697488949265983454685467794798665454878889384779546979457248957768796866458595999999725677789588888859678689965668497959974369738578696469642983778889767426987587734456985996879664734899885962877869676299798675977936486755629722749999992898769672927836989894868688949294556969289667988454495359967698879988394958455894646289899879584983987878864766398967969735579745377976548458787367269843727976895574858278687664377988864896975469887896478966983987697969647757796937864978769728985798885565589379364476699399956667996886976977368697689689658589394956892995789457573635387468967999988973948566969856999898926686583584399766477787386965685697937658776859879796369489749966734588286874888646765986968999978386996468996579726388946687897499769697487767733773793987676556978684785696849638675759358948959797977968598789789888876769988277757859773977964495678467988969568722768997895978299597977786235636394993688376756277595958959796995745458765978265592789873996789669997983339866288487877958398847744988984896954999564886759369588844686937975569598857977987449839656578746858948489559549285997648676739898828785844767797589638486947655999878868496467226967769442696498859882385656977694459875433982895637296975459398686996879778897368969395654836899556769898748837985874798838668584366963879275478968582888938954884269884989696989694879998787887247487845579966868758738589798369798934798353797389435866899748648579577995592577835969989988268996688789999676889979783897357576936728686974696598598746778776234669629489792797765495494654398898736786667884548786969489785686595374856898783977552568755848233776987494477449687677785322695658789773959896897997778687548499499987455885627955669788368349986959493799739795876964258676543687587488464875929886859843898695637977759569679995966737676997455489485879849976398785867877457799897944458878747834779497467469596798328359748328999853659299627653857964646959574586997867787756773955879598696874867478899835676489776656992983686993563784479599774865579489787978596659869777975488447746667496745783987266979995776996869589493388457696867667979369786699893457893447667678797944895676986779497787669888665693599698838897387674945869779553799548494962984895685479986999589567973677993776547468866258646577799798957497769656989699427298985378978495497986599962999476697785585569334967765394798996869938977898779968882495467998997569959728367693377788659796797997947463888576695753688746539398935967639989865574585957382894889854969799699587954857986534676977889976978997966696747855743887577877298787555594767273867768928739344972688766792957676963797998798784977769877899887779685978598579987774398834475498989545657726947629473572489863875785588798496697997977557886367779797869946595794677696249536375743368536375669689467676984384795698968869878954797989696652637979857667466554386567364692679789665855398976988782892784993975693964928286636873899796246569938584698886638785259943396989835589873775283824598595796459258299996937874947764956682345939342838978699888744975478666869948865999844989984888868999566849953852677365938776676957993878949896743925996367588666384962698476855978659873679968586587893253999797779749498757599857993698886659827747893728378739888655898866889688789764452964957689995638798538438975278897848499759755848682778978792687975787847889887569689786898989486974698894679987784999735735586997869965967957756898856789777259999668466759675898963766798346937384992998377945699865899498985634635987697894857889574867535898565897997865898947862577653989298856938999654448959998599665576369885996487954667923245766878787633748297789965998497998493865999829279689968473477986685684999675728875584879764999389789964974884782296964778898528959398769788769494799587997299853463646779974799569762988668456869776596939647747785494979786488966879766827888857456888878697578886535663798764784594336978989639958569588992947788835857779589999594659694656998479369664885774566674656976997988874755965968483769949596824795596953935458867466789496989948456865887679488646687795888989649678976966576759598888738586798665989678499479895882598896969856755997447897665596665956463826264976857977499896387848996658756836942486688947666489739866974564564648779252559379674827599888989797582473753599987677965348574832893959688968996697779948597858969889458682899977758669656787853877799888986768286484478748697743998487987978849753478796799994779889897997986692855957978999886699895889558973989347498559994974798754586878474589869969887985689239953985789493487885798796565534924885767866866276496598963959896699495838696445556748767275889858845995488699878483497675436682993828848398657483386696849936989859587885786869978898774885866378795846645889998567889699945793493498866774366868898849448574896496268569759977996656347596997399439694959997286999857458697888465856884648868488994997669655798698939866988587449766965967297797797876598972585587737998775879747553978787955955677499768689467457573695842877987947979459888568532359666456874876576793379997934688772338695878836649377599427659469827578978487553457589488959964596659998763268789677577748989988954829963957794668685666785398497884998598576977797357644277587783788965858476953997888688539668968255989988889946836756998736695976675973976449585869588587689865998766478696578959656945769653796279684497779796938429993955364993866679968778984883638869699767568747658574999676864796743838295893987953387873294456368479978795969987486689998586669988655849969786998696976789787959388779368587963837979757875399989955998799877987865659776483889339896768975542884847862958559849963879678967788864329758977996575766889699589657845778698625674748693892777764389968998498876699468928563574984868955479563692569969883696768657959223676798629979284458696393956626867976744677688696296667358334748757463699998488998296699876685984539656995885455345598687796944888839998959926866923978695625237896744398258359767973768384847395429897787537489476968757768379749877989793959586597775546697799566976964982882565788894395889564667787275946765688958938975759583846987387563682759999983989696727789639645575689999758962758945774844795668865997962596895745797275899886889638837967958839778789466487976257568457787296276754579799689686852895868779665863566699876998386777647976932976479426476899694889738796995898335877976869247656977674779999487684999748867779939995859599663996865877667976594786984758949967887568648888999765284893458899668677847586976896882369546577799983964884379377886797975879489845776668397473799687868559894695797988964589897873887862559499857758686959448835933587428878396727688456756569949542396757934997599496999486988848779858938586897868686784798595723683645784798948849887798899982889969827796649976379789663689684879468967576255478879858964375597875999887578927476963997657777789875958498425994549569777695777779529379968936948425963669799775578598477779499696699898949466393769786469775725665657968556988484556243987856555392967557647999947877999897878838258652935569999957526998595696995665888979995599356599954689865667599997476659789849548626988977962783697658678452696877778568266887688489945856985247934955865453883856945789976747577328459798689976549948977566478639889688977975497449963654556689499566799788689983768599788988999478959894598979778978784888483598778769498846684879955973629499957969948869987593695568996792786273879959956757967856997894868692566624594537797878693685659997799844996677962959898695859655498698298899723484886397578996398966874992489949947799888998486759795899799776987899934446996957883296756999469899879637998275687768766468294758979795986694593567989598839989969979966779796438947797666778998986679456766978999589248658568756928389967839644699536877938856658267689549899795998349629888574897996959756948696687638773859887786938597893568869945826958796775542779955899779888628368568889856868669569952584478696998798865948847658497668667836649588889837945588258887335399688965687567734989334977248579899859899468954847668695756685657469865537984896888968775596973389489688376882575763958948644799675989589777979473587964596848987965682866342959899568873579989495977547678689476574523999554629259993875674995638588698793697592499774769674847596887566536799899684796965877348578956594399966979469737378949549948769662757893339967957686957784967896895542686789969966564794679398983553555636944567969389488668889458549943236967729458287898798979288954897875598767666328782938999683868657996449952595984996696875888498944975697982893746987489946547399397978977799797989672354943433999848788884985655799488867899888977766634795868869896468847983598588389976685669775897629888569876963794977957964978887968677387997688465755384738498999978667795987588296794977789367976987535885229599939895796699786976524754659686356787386977957898986787337939943944663979997748569288344679838827489582972859965738867664768888636677978879827779476986957698774487578869986979895962878698994678869646789966739584398887697563979865677866868989459733467899759799944869987487545777478983975757694685596594298958763837898685475696475684665927888798677659962848484658757797799627547767467497745546789978895588857479363558545636647748569487778974997926759876878567639886979987697858565966998684879699759898988983799999838878796789987949888769783296694584779466995277447888777947228888957868787297858448859867757664534863798898949539998786559798997265872857976885692875795269958999585954699867678459979492589547566897975945785766477839478968863978397979899856996869586532996453989649546655986496398999578668578398442978855869958677378897479498994227788499777868768587592977628866997383895784489769946954995479988889935898676739596575888338849797378889988968435879697789958795849487732878755448927854278985758796897868588958784787358746677967669495588357937798976787863987732986556685858737964674988597999686639876482759893877886979494658345987588949669987675768658974697368996689787782337538845968986967557668567523477598499682567573895754856788869548878835796264736869997787797877269788986989799793899887764499596597273885895989469995673979674849984594366679696593998896899495787587448953398888798629888957996987988558985866936596697689397573747987558797675958588796359668258896883699377748597754865936886377945737648299559629397858789587886969679949989679669845977954788997239572778899277757959767949549574974835548295887879259785699685988788956687748976897556877899954987998999499782986889578897746898595995539865856799586997792568956649958849369578759587856543925756788689468699749925756647993969977444884888469393785487588784798656599576994438679469597895686586696638755897894932886468858797998938767962776489593975979329788975776986444885699885982979749667767897734637686976567899697886559797877676748778897379857949279784589476679476588692975946788559669839549856479369697932678665477884868976868497778984789963465233594376695988679557577776852387996897959886897482386373767898479788859743798785588938497958947889899688843857478294955789798735886787399565367843778999749895747374997798987673893889449899969743889659578892558859297524774685867896787849947255897858759573578885698787658998986758728466597899669838853786979988567778838838393476848654894725898669368334828969888597599747488545754995698295886798978824959869277759457899774377979553547799877574385969763698386493774994576276764934397387967898469599948696768985484788997694799687859599786849346997547966988977698877584996347996995995995893548756947348779979662556339479575759387857488493257666777878749899957738688697948989358985669489969989499784579833894862677986869936994792578693944986563689977496785957847699687995385986479394667649946479998997957232784393679968866964679898899579884396889895463799897982829959859984597978845467969432798798887785297897697887488967799444637739766875787989555879779597982297568987859348755997788848373867573999475657963398896589955497737956689897998478985748548759787699228636255567979569679957869666952928277985486572665968485837949887949964585486797994879867777557486927987888767377972468876786639865598994846296885974655858897469889785578884899247789387788734955294343833874576899295977969689886834287777699826666997576948834798855635596948889768985679999898767878888798487837575756879827979996636489783579577973958843499438287799954976575599599478889697676342488396887493596825986394928695668996577657944835735974867636777567948848596699988789779989697999797598628599899775768354676467899737868896798336876855964878287955673564399595369997743376299968846599676966392784858947578945928987797695982898898772676997388977969539795889897996799699465596749748776355778478774352654788869283468546973696989399347985546995957879569694949987864848489526687693897979597664384996957794794788397959588699787577768687798978894476578699358825899769554887825969944768596889497746998998668888545849837547383646857997824847364488987537899976449965978975485567486775998993684879466969595759788897856957999999889877662799258529739636789387779474476778992822749484899554486778885945448997765727957693898985824492877988838839577457964897994296847835959697357985567983892569838645488899684466852939878999797696594872895697974839934869855689397679767389689698968989736827968328744569886837463443795568678967854799955555595769798999666887877473796666695776797739797989574672879997877667696788995373782479997748753877388669796568938999857998396777962747969673669737686688754876894569477967859436478489847992956842549495766496686389654934794628994457846776556795984795685967765668968887985979966847985299827678789887698544794876769773948539773864787287769686378978889875883466548483749987863393694683847886245897798689889888886938586858599827993762776858563239778589897993887979868857999854877483868726498759766496977858698628596778797658587478639948795376988687297648235837999853425974626984986896995699545968566999348493969899969788446799488699998778638498787385876587587996789926824689879936689554894889999988997677859639899884485696556957495659699266869876987374546264894764749299829334827959998978998888675589882997974559678538568999848666593984895539864794953485693954598955779875699895986968799987496899664783798638669597998984524977289948676268976877463799497964588362944898559877947274899468649989858697788998785474855887377985699876986974484566988867995986956757779278783447697797943885637774466573689997757795479599698798529689745964579459965879785698976659893859356779999762966787929539479678365858795849967949843698844627466969579993847595599926667968779977439899967479693876887873884945699759388459763888697868545777749646778882637886657899394884964968669978767827558936486933779768646764599387996837736947694979986983876995588899754629724386662799686375888755748584832647879698695257868989844986253938836847597994895746896796868858956757846685888938538669998823799568757669358755983689326699867289997969486459789888577866847963329998739875645944555953895389968658794975778545897946758559766946899984676995998696944432483893589576869396776847995787759879962965776778674653759486439938299599689685695989676774868843976688592569374699565849658895759885998777569596999895836884669589697974976793737873775783896758857699588356379988748987998476449669886594496295957537797989598935748499469679997877979289898898567683942989797987795666789898548986989478876499383858367972737658679389792975488965974678555337686369959685799878948682924789998875497898948798476884644788687279944899849768996699969779795697887656896775785973644998986896487789958868348565688785797437488479988763679579347599846857578988289888798439559999982377689697779593844276583577799947739697959997367477895897997449887998647268575398682887632893688595674787989699648696667654996678838989849567547956658579673849797987877494965844368948998786696778877429358693558597549676999956988958955998294795977799476878877336679997689227595488644347929938588857286589598686762489999928798678749834999779897678756949878888799886757559849676997494879849687468484684862664557859565787679796769329286686839394896836474776779578895545979546686699699937697866738997994896576738867449694987679566678689487764982756979273685588639989989487846883396589893778579873965599874859487697869959679746587674957966886479278747986964698397699269377825487758979287453668867879987665898797679388685877844679956359986463499748658897687687547786534885967376888769984468835999986874887547937999985989869885679876583988735474569956643487568772844779885986698468496579689574993834646968532866776844586957737874875569978697596888976968684976898652893979875493869975879698845799457757589497456459996568976894868929579667847888859897694269746654635989869997794786993795798896979994967759799278785588979827887798589978979776647585787926847762789988468958797893255997754889379495798584498976968748439266864575958694277976564878533678953782458394778426967569699947835886857959295263757588366486965584488677588735784769962878949559772389788978898948486795276469447757976877887388485933938437589645789876838645886865975684999689428735299685958498287886238938588986785899835454778733975657858662566469582726979488643797773582878788949535458349844898476856656958498995873888988856689946964577867688689766926247868296597775268978997689974987987499958769556335785878667776988693493876396638689834893946577647765667793569998964867497479739589936879966736567829968883878939788668897658896945767966647367958668585398599396875642699899689492967288785768668566774779483979774889658889577673386778799388378683785978989499389775373896997677544573378868588788679793653876899959654398866948436267569995984698878534979895999872683995396978897975869757944876549985959996568969589869775379996384398849494346889669985875498856998489347985388958276866887947968856979987994959885994487857529774776487575749487477976945888879794266853765859497478825894347955937657869596778898974577978789887475682769495655674895746946938975988767896888696889497669796448999858565465694882875986689498745476299778884576755884879636675888637476789499759894269865897765987588656888267957279486838549854978875989248778599967776957879362798284688662877987974738737496869849287856753954894944758575967639979459255728395985672376999946788999997698889464849795458479856288984937589579978684538667597988875668987695885559676654866683569846647874679496899274799636998746566694757889945769765866497959978378894974965992989855948686754865855553929799835399997989897689578778649777577865576896986869697497728733386679979478882363677599979884983997833965949858956949986683798774457878778884987566669999826344899857985555588888547658578686656997978568577665798948467275477887778838856676659778394293885475366789979758349944669487796773998868796982398889797993739788997857988488786747468859486599769735896954486487529778695585987938657684655675687968463677545995598637894977565988887986596967888748654745778554785746775969867695987897777357757657859784796878996995938773696558736849946795476793469499966884664998886876894869469848643938558887343664746997796798566894489438583337895967686789388876785559655473899994897997779799277799995878779776868578997479358774757756855976328888928494946647498628933998427245957968476557654478839459688763539779399469547589894587896487397727979657689996999669899837485557999258933596692558394862666885697964848692948747377734868568988673865779884678777448549957994275964258998759788596478966754753888653996828445787798767729986554994989246557868568663985787844837689788378898923459393569378746774939258896589885986957888869287259864898496438767626477479758569997387384638778772944579877695288488896945725698796749639385637959978965765876894983784885548779542394948677686397793455799585625436674564957739999887787959739248776796836968429585777866886697398444887998447589878869558993498988728976626472395877779984577667799956957494978529547789254976985765959884999995567997787892839956574475269846588728559887763996869577499964564634869545595955656489442398983998995878696489684726777787657988557883897496776996665497877756287989877827669887998849567989799499568662986999652953787868896776978599699976594966887254678998296778689967665378977799889759899727922859979699589999995959477994938468569889498555999969565776483857669768859987578748963373435978992387849799396978585993887498672967279877347799666558888799669889934598593874989589877849925688968498838965736749959978888568758999869696754736864877546539696689858999667883678559565659299947939937875961656753458485779858446847667748697585874656996999496755997798679589384892855987676765985859893733862867457779596869927895598788637479998587248656756385755969999393782768836656945498594777379944787734787992765388989287846558894778588468898947777836798795655845849397887888697957255526699965378686997577559967888963696897998889387788895779587897489879743879889899895644885986875789879584889598486265898967937637574684988968982557968879288988736458864955896796852876644777995788993569468728327967866369847666578747579868955694849997799998933549779794987667959839778685695878365589893558648798777897697577759996835398765948897475988968765797979788659729999699899896869965787377646389588667542989883796965777699895696856589975879677855954976788889754958288575998387838975498773373967343487887954786589949398877298897855864443278794859556286699569789896878779775567797298793976495426365932289883878794659626779939649784968749358367753376947777554985859875874935976896936875983226344992699872693244839978436798747945495963359657478598994644996969798954886968589553959783977969869887667689965245899688638969987283879979646879949759574765649836869993877579977976652778974858458677674389479295376993499597989959657854769946978268596999889676488758475789569886867834944797596566992478759585387769869799959692869284993785548735469683758625485979853265487987884669758866375863672999973398699579976868796448968548995998562557558977979863878759868786986656969788649795987368889779588634689859569582977785884899759779985378395378939997496994795978892947849659796977999467678889649978684269792558598288999629995386574877827647949747778689899278625864999344898784627882987789897865985887297955843647998567983994799738974449799895957843498479797978657762699967683647489636892999885547685738495939987598764874446952997492796949868998369896999989659569843895953537798993599978699697958498899468868748665658867877979738386673882825975797684765447798749939865786999737727898783385798969836359958397699974535966788228939752794976634865749486563546895486362978388899953649947896789979938796973795968898694588897379977899983779492329978398873754457989324463959984657896488897687637348795395625886846572968778978256777877948935952478966889759388884889972346332485446725776548764763253679788887899587789767475667959474793764976779794893637979563679967669695792847646489548783644572764886849968798739336466674484889685787468775658684889764976886287794893387487857598985993589888862976595598448985999399782965483499859678694986286863793583879937823959696935658668337479769886535329936897547348788998456957788844797599436996487898655999776877678888974766377694968977738965577383627969875839368998685666878995636997884998369684863687525669794488349976259788688494998679666856959836995898989888849259454649677865799693778848794659778566984243385665998656694499987855669838878999875598959883349999978757687596476994966957789856258759883288867979858567854632888467764663337879598995987898594947373766578686764587594865759688689936949675467354948685589545926995999489879568864485399387979996458965462598874857797399988485699738797574969946669999788999976958596889967787959789578637762345867583947859789599699887379968736849499727998655586483969928969844777975756848585394493895798996958364968266949838479955587899759574859938987993389958798448787948969969568995599973549786884537658597879797578697748963369255988688938694867648948769789699875675448494886958377699894889879447748979998844528689873265989986898967596799288559886688898478964769556774998982256485868566596857895799989496899865686864399946683588294797936989976476965866595878982865589865888649969656936967454876579594885765978865987899469349753745458577849979678669647358799749488843956865889996789288998566387899765967966997464895489978445958997935555978678364687999997467599532664965978586788889698769493895799775766487865864636599939385965587588928258677779496987768458528779987876446998889556588774693737955889966886775738888438869996789894867698349485883882858787877798796267579555394792576535799898888998976935535687968967858848847399986984679797688236725997557968793478567889996855869567938598997599669487896697769777753989437698489475774684689956798748995899886597877769864379459357883697732485995988967244592789688969787882958487945739947999597366766957697955998829644589845586983895873487935838675869673866659989796797468998399397795975568494866892893846976895789759765855599969876898778788789758279297594889729889968648964478968769658757968839999989936273958867344863748858855968688594675979846659659555798484957984699487796977922998785468589773955479589784468526798394988656483959674688652487457833748879896657969658947947885988749756798649759968988939739977567849955745567594366998599999857777688446888898868967998278979579379756255868656749836573437688599779899589588789585789298949977963796284845984768624859576773846976964775856749676977858985679775974967787683662865675787559574785985787885778776847568588678946869968543287667689547576446397574288898998995967478792738985646889799789995546786536835395769987787977985975689967594478566947389787547887448477757982888536596776599774956889789678986673469862285548988395453447887799576858877866786878885797868287888966449856757878385554499787959659699392767766799948984388977857848628556855693449995859637878469827878689566769279879756794893895537846988565594997786889488963354896487899498444935975877957848997965679389698699777798974599995946687597586586798498836474967877659848962773993898867745787844864399747875746488978492869943979479869833787654944767776987548765354864792364788636575997586478889887878749759962695975799974838767688955896786976777726327755695973999789649959966379674535936593784888376686434786758853447935799663789747693863489782678646868579858774799888835948587968499799499794665347766298562489674897587554893654756487995784649366866677964897874966877296675959369395674585999977877886967785968495899845845986478997678558865975879774395887949489577868968376988697755677239698674545876888984769873465896977383646758899686895996377599999667438637787536596776678959693988956992648339997548949883928476665874583866956769363893866866798968386776363856797776655879859765999899699737584474938436895885966545878795678786989698779248788883593658986727687683869879587594947627287895685995287998968487723759699358999899476367688697779688548997376646786958425269894787769496589957857598678879478982859933876868976999765888858982585797867984688777769969764776598669655798885684272998998529559996589844685568988755876292798327957963883876857999576979585798959699575277688469769547677476885538676854687598523867569454475328699494559788789599555786489599795796686966475695975869389479975853999789897668975986645788878559885484424677899859493669796486988649844898997985865879334678866655787646586486579997968883687588799576985485687868399896858579482644877877598993949987667769896554698686877988559778545886689549299999387478599856695856853678367797473775873573998955959384769979998577659497589945879437788875929577796667899666578698969969888979783996488898777758574692995257848589988982626888374768999769952585397574284796786465896749764686987776865577496648869573897766596497895995488479959949859789688697867944775552679975975986285786775469554659879768593497759659786868894858985797598282874997788867568869349786269877969693787997672739527546777989867687859989397948938755488699734944674764564477685427387979888898344978768879369767685429787749743785769267959873598898767689766389579636769747444877896899499946568659765477985345768383658699599869868589592536275767998775399869695766458768738887588979489398895687757656775865368262898589648633896665479593957984286979685997499866937685596397885469888739677748792539693749848833896696685729437967852573436662479777787869957246787979753697949966338797537976669785385988369592868984899946695838536549579228957679859586638768498884364859698269968798897266955795579894396475899978968787466648885746773472476468989659388856498379958856899688394988999835876889587986737569556965859286899879766996695988669746988787695849663987866775354679884874796565955797877595256878788484385486775469877666477359882698497735888727575894275477383659955676999464676284687795999996498999986679664598464882788673897839479887589578744396947927878585586578969799776995682866955985869988948997777654336629223969973868637977968659777598795943585897869958798739957687887349699968363986956489996838949593858393852458859678389999747259787646974585599355668887898999498596877958668985477678884858889697968746794589977288966899777776784896839874688439989693395545597557889938587995678595969939789977956857858956695789646658882988399475843477698935887979656788996599766496928935664393549288476897883789798959336469955779764688776985567868837836478459879459858389495487488886995899789699544836765692886564889959499566854495659564797986768436887573768799362685596687973879898946744482859586477889469587698953299246889452356698897497797644758769995359298888988846946957574797996637686677885938875646867972886797597674256798788676835988378696498858996867744498985888668467986759667653743438568366689659366693696778958359763782485699738986786787763288999653873478667999868465365794995667637799467699389997899358755887669894556587358698689997692996794979856955957899979736389496589636594798869273849497678879447848392785846797689925997599979699784838887743665827459893376648855878956877897669639799399699486646979687737873545677626978239838297589785934887347876879799888787837779779569982695462396984688528534879586957576885964687369499897689458967578878747899742899957598398956938857798769457697784266853658875389887886883877869879649288858737439799935796698987688782487859878936657978798784498695585849998965769938569765887984889992988499799777688968687977578765367886645985964798968977795272977877759655883577996546338648699896854883969447669462482866665368752869575644689696395596687734468567743966675735973987348692699592977477293875987687865639485697966844358586995395266997988836755877974489999646755258268459887885978975877792898833359969779897738765887468398889444349437898639389778964896752539827647674979577579884557976786895694775789773969583875394587787477799856959943849486388876887956797299389958988847977855894367765463993635873568595458388779876677499878858778769685954898889955669574693889889679967838389779764285727767689999768699476849829594794567368657779959339742492769969574725388458926995896737475746593388475439878939862899988988895596688446379859859886999564989978648894445978874588778868364946429898757968988637666986834789899999696677559667968994884676986879643868886929746793798975796899938762934368344589369969387976857289889694588765275647857929868574777987398739897479947699788725896556846897575838699678898377957837458989988839984599798573898984598776469886794879585975576694745757973557695694247999598486584744784985949728479589285687698548567739886678359886559579573944959949485659968527888687549898689877878475889677896965768967583993979655782396994487886645869899784985667358899678357937833958773979665787544557458868853839798888487449436969874979929796455996948494948859883455687976446888463654893469988598665876499445966658693889284969458665386539898685689869959979997295994586795287748457677979944699469282788885695958755797987797569889895497923275389639685595555689868795589858348774788587457589754399659794876244656877967747385863775764999999655398468639556748794873879867689798676897798889629965774733766759885487467767688869848772949443858976769846653448886649385579857778399994597396999898399799685995755985693796877648984446778555867868783276764789967485644899929573986985977746947469993838399356878455992788977999598725449899465765775965797565995973847969376887878777749499978686863796264637886835899956597969895483979796999587955986789859689899848989879698768994589949984665997936884647789788674384949725589467268594467983367747795662776754357994683769977697758839725777675944869658999668569677789799558858469797777667987593758954975786577938867668697996585549577849986744579346946866944338985257545742869949758586977599737984984868584868675659858789836297799578479728586993947682883984699937487397858747967564886888867866863686989858858979598995868686983787869729668565985945974887796665689296496985766896696978547629629779958266978799827753446887997962758879436997537898797778396998985787553998396469796998977839599999867837947977849494554842964497593576577883788792887822736587799864489787658878699969997298738974858975848777666895789562795786389795997588874868787754797484898545899579497796568577995588649599999837593975888543838658568349998725959969798799789886938978856992977479838684785694766795967346879448546598979257769489789983999598789793788996969757952477358667448999767939396798987977847946833576788848892784587878798396654496582952957785988965879998489375884848748978387934876968889678856787776594597985649976685486554584688826479489898294959897556438647483467465988786557968899756743975659635468837889297844385834667455969258957796997368662868755667549697378795865858777767877539587689966787786598978687829759874993689267697974446789599758789844649836835887475989876456899499777996897974996845779987693388687287779767669698586669849856476697557487823589652748696879887979945766859968978848867855679828869698966967775449678696388786649697468659866748496966858659699865848877533798374989448974676695754938988986886978895584579888664899658695969379288769794495865469778589666487745788835666494877966698757874589948996559867898768786787888335769659557466877756796448796389959787976964384889955783737855376457462484898877797975639979975598688387695774733777878699983397248549979666554978994668975489869368393889468537776689984949898693996844898788689958795669773737857639397697859469489964976483545977576557836237487589835699786748973987428589499988958667557755569748896579899856973253595686269687797596697795859675899633893567677678978859988899899925697976695388765596598877696353876377678252689889686597732775865272778986994672768588778878975899496868892688577489873933486989592488275958689898878496579855878567487965298989747997666998659498939756625578566998978766795279744998528559993696499869599788668652787934555874278889977699797357988787739763978983754858894596545675685697866999926582733997658878555587748869542844828564878764679849944677569983898969899476595398589678737495657939738967993878567885967769296399997966438692989657739348244887668686684596539776885468983874788858947896997885888895448967896938284875878893689727583876957697792684796879634338888679899678559869877867376965987963966294889967567546565345868977978683787479855772675354925388964879345894859747359963785679499687798929977965338484958869699485594357795899987938598879585788788587879394758765567886598749764855998576828795859978984838779988776738387886785668897793666699928856868397799454986773367889885568949978838967749892986967667873896678867956747694686885999496854248995567424972646868489699988485987397378999969785895889948578988658478879999947946529654898795898687946696346689594988939989489993938537282875829358737935995984758889794488368949669368976788779857776266979756478758888896775525865775569634255626383675784569947948826287939897789598976998898852896997245447446859679798786578565664854449579955345987749578988388856797778798699998993657962555994698459475999799889624499858789924836835556947858277843556987637947899785657783679874594977979584947585999599353868895876897897787476689832975699846795459985896394879696952998448787947366887863678679278759868778598778593986269787588986864895248879976873242498998543595937946699438993873733888772982736444762959893563645856494548658587589894964899977989669637666984396769857298885999489996978699899855957596989855679648636944887546485969899867958744758495695569676799699276795668772999968864988958985897688295986948643697989362979999687748267662789626746484968668386885897424879669756987978875586887686976856954878568783997757669889978999747986976848738377879878589699947495796758668788745977994686896967559467789897588995999676499878568667398669753876668526998858299599699939564559499989965929674879995896356853975896446977759954969899789889677568853875279799848787996489299454588486279846897766567557997895578948987767764968396999765895887588753947884249497475479485248745998799548398879677676966659584392797994988783688354286489699895695966893996384368784685789785457948669696636499899959977886278949545847466798678789447799955458998759998679598666688966487988857663985428984585634978973999924895724453968866976488738528869975956994674349689664648565979668379987546779778958898977396767995449678668326766689655975755889998988938969979998794889986864996788472835887588259697995565978965395825796799279999796698898869976897697856799665866469894579696969958768983385876989995797852799756498746799898949869876856987579674989767948798867885998735554826498579938775287389495657965789449964749774984997585433756474897746677599957696728888678489988368967347899678378597965899877685599492893952983979657254675867897637634797997992686879628449724747868544953685557384885888356588767886558488572939997398777798478239477775988756533577769894957589894898965874679873457387995784889987343955776664854324669848967779874663958468746978658682638996975584568369849975796446663767998949965758968479692788888666746577279893795697388569763937459957999596685985894393595699988987777293679927497898788978487479983757778778689739393674959785497785779877389988773975578579798698398947865897855922894794546475735738769687895473678978986658584855666868989347757389756775669988889945966764477489725753972679533726899474998589496667785638792683587784368876676976393697873766485448756959544987797993998758687375875474989869866799576995698746578898766995488999586898678498486997878983687586544935887876477569498649374777989774648787728665898999686899888988999888962789558929897799889894686995784839794785329826978557575899666996599699765929886798689986389959683394589769878339268555798694369888899479986922789795899382443668788865475746656997766749558736788595847867746699583794449549786366489566889988887796575749688569958948886878859884696597699966996796898967588296466848864895578653538797996665689964594588378877754497896979978845996794549772384893388588856956846858995759947889893386955498384343999994584797734587889985836559357789698479798757879877526789835992998986998928887657536592892679999464896759954537888999795874838497958638735946974647984724424899996989598934697789677985828578887469975936684589956948657888777759775339945699759899872995697664973675659798788977872987286985758867886496847369766473896662885922388285676247597775844772765984657947589786739475759949874498235589796785776967995335999765567898266699988687867765749739676636684268569938999766668694772877887523588987857488846548277297673964969742857936838554887967539673894598299758867889848968995299379896589449674396486968976869875787364569977987988966858839969878896797357499587995948878629999785979745723889864556679676672786998959533686996525876998979883432573688677486876779878484969996957699983989898466789957598768639458858748749796788793854458865898399699877998469895479982939596728656855967266964598959454848865686499986976999729834979696786734988888649686688927889972756348748858927595749995786998964697656698657899767244998499986975788724747266984949689375978488798628797828428963279876676573733994698776375497972786936879997998388769793947979667669987699568499983895748834888925892859566959786322749489884986836479489863988872975599879959874985893985959535899998662999989869399469668769684943989328899999946766889798846779988578988558685997999997447697559888379657747792799576545986465879858877468677899799673998795688955987898785696677538999497898394978868989899679888648482484497924856755579698774945987866757899498876764995597575997789935359784897897936774387486688666926668799985783949547685899888956957929989468984695895988575869937845879989868268896897877927454844879536973984577995833492579766993857687658476798889488889999445798757579987889968847748839779648756647468884897577393999538669833699388492889848927688879789577775976756679598777898685368969528397787939645445896988942479723848979667968368877596288649874549454788375398285385688975379687492935767474688593842889975994859689899597387793665596369585355854869793654868878779368559995788658993957558853784357597578867898988857857477527969897799988785386574646994959689755873757654775966976769769897659674678789984566689894797949692687647556676859994646375869967665953788497888546579693445578998899349899963399475946647958846678868978782339297663975999783944888666738937889879392688469889867878959955636556979667849649445786575969965987578654877897385887999624858669475754758925668768979786995889793498962587364896694947988787989454777433698778698778759897784595698779487639698988269966299847979778957996756888777897957257976449596883649369856962999788394376974695287947886999757796983798848769495963543669638873983968279939852689467945937998884599898635986897474737599587977868567678964967876975999354894398989999597378627976598687289785638945888866579556854885976897899786996377976775937589367665988677296869965399529496888997399899948772678667787839554988986686389636984587885544798385878688839652885969479686997998923957779577877557869946346487892979374289756768978867634984795877986366958989679663788995377573897857957778479998398998587679756976675588458887432876878668779559294762838674587587498768666969994878987498465238386964326864588797775987874287269987369246299596889256588989447999788695889538983995698975554678578584897668663648999796657994988884996895786574979968569995988876677469885684758459765895989863766983684867697858974987855394997597693497777989755236932499769589555848997654832989776457867979889389435949767753836973399867869795488686566777967774875478859899838479969867978976738366997845695899599982989877487883328879695493946657958785655237948936866494884848577389745487996776868896288979979949859284699765588594676969675637745799645875894879448646997839635958898956886976925387498897696987785749793856665975766234373389929628865679879587648665989679388858776658888877668668699597896668982383866936968978387355958686897564899969748767884349479649599736952649978979488697974777885794983945978673578856496957685824573844699967799294938945967847488375587578868784785976567689925979947574779849999775957875887893946796556989978899552787425598897295799353262946966583986874957334648559862979486945898996467969888978585937284748859669386996478479986987978882975594965987246699776728865757668349966955689995977887599794787694965875983982479867926786999258448755979969775367773775877879723898978899798698999755838985657245346564666658896866479887987882859896792745868844585549795735949872379759999795835894946796736893587945688987948857987444874895968595576968969659976875984689828958676687677693996379888742566836569734788587666877669576982858375968755476985879929939779894999659863823956998486865379996798464348376278636593977966989556895949778348598377898698894864957658983679749967583586963794855757847568379847955633479585659698599565984768599978832499659492495566844659485558237877959838837798648447789876969839583862789933739683584748859777598985687398984347996957746689549569895567589953755897864276829384854977822998857567898893979858697659688886954567937256988756454972726987799892647838566568898589996648668335448886847675657557457979399467347969386858799966967939549456586887387999895779574989499446398898979867756458799888797955752467398835839593487779795898994955989958685856848557667768577499998798684929738447674766484769869696875875898399878887459657874926685746455969282839644585438899599987788433574398677768996782478599368597894889736899543359469639339765335445968289539887997585787747998796739684885897979747537967884856628367767359969773879674487598793583987649769989389422498875858295892696978757968596798249588274384993576962979854689685954539699998969579874557964586987767767559396266843247596743965485984994953347429756953448989524545852386778868958799864477866868798787297875785886579987488686836683639365676865368659892949558857739398959997358656845899458969686394776769679697985379639977896727985354777498887956677564689984797497994669883476247995469759849856388653877836998647876977996697952456457769959577986869737628976687999755545999797464633589599794856593787995946677487985499992445688874959779973697875668946476456847878798956932845869588867995266749838657675677995935368627756787764344396884749688689696697657999885896985296889894874996455686869784828487688368779898539676856838959974999997494789789797952987847777677783897867495399693656687697296242798649495357886726639762277739654982482638439983797647957454945965289589499876355959392495987777779835599578947726853799453599586765437649247849763946998259937885958664888998669957865473856866977783748685584948699894675748794896695974766989282574759957933959469548567679975575988947273779527699585963779756495769749748277964958967962276867462849476879569955959299765598663579989838855872897395439886898488795798739798878698964959897657864763647756894988979679749638428787987576588592898687465689927479299566937995458988499979477898869883979993893629839567866396495994969895796963539979748658889864967837686755988768839936526788396638998679976942396685392676393967683984557958999886948555765979493987498767737859579695578768879423998976898553798486936284397986964747768259949696685489982589648568589877969436853968578569967987788798369595666567829749585866578569797776754276895979928874586298949768878887777969656645485528775869729785878987388598859668868846997587669978357573859634966763359599557869997988484995946459788787594898585769867598876957459868979888464894664976987957369689432986676479679665896297648886669868596688779869957967969949899886879379683299973787664865999898877657998975966846979966679999999433977997978477579698578556899477549489365568586978665679685999555878696669959567567882798995378674974967999558766699576779956987757997983288396657975992978785363977363849585868794976994997484997689997658849798576498896999799798669957778692886895698275769835489588579734589989955687494973988799895529286869869798399588747698885779658228867333887748896384494456769465874266989995885976767938996685599898767789487769994747684988859676493298859983873389456924687959686966888454649996983666797687687576797655863466888989974477865879899659997437756879739775987995799966468555898583587796272989488746892487375698656976775579898779997959785897988868787467968675857988975774889768553758997782986795577398997747223665497786986887368689958376948893776689777699885795987998589864669838473499683798577262998499774879864656359498874767989368497799957866895594489569989997987289877585336478685427288786537967573987657687968786569996287453599299964579277738479665884464637269877569899599676924659486768945686995486768748948737879764298566633925974959998364552983479976699689497775382848995998769677945848887896728444667577478868889678579896696599796754747969654534959778952895889796749796745795799489387899969889436759787376458656539967782736792796867957695736964738899655449859862795762959575969938897259556583739496589556998983396949873369659849787759997599394767583587986385556865489898988999469992669698928649449995278768735724956889429785495795967989869577368862399698986978942688896875565649286577335768984955596845993985664646694939749855297548677795877958869379832789885696626439887838864564748445585666888479959656945499969597855395275366594596499786988495977623799729697693489635839563949876997958762669676438968356889884987957766839696768488865649687359695657877568989646859789794779642979749628786788888957999986657659958566985386469996298846879856789478895667335494799944497699895488399899367849999428457587799988688445695789658592664876688796599685277786999838993758579675758876958777569944625974786868829688698878659564687888536889879974696584556796597845989969882897895549978364442256985849959799888726576779962999883224598769793858849899595864687787774868744787978478946782394929848855767939462869574796938777567486339678979873758897488774786557766675489772454897999697849955667394878988989388632985988882874996989892294386978753468889977972659589996969875878959877989687796378787556357639496674958654898656996497339689975648698669456899886876429669556997268678499767685968495665922498678278889776355886568874989594636964836748666989742874787759757877768996453987499864888867969936987487779699353976387545977797859459696965897387874549453576743935566789643886798866779729868882764947678979999553995877668962699669395857938469643674368665675699359498884378958689678984958683938534694759998984848575893668989995999758894477329889685635876487495967986659944876779799463765879487887888884989745559857548899984964677668886879366947789684453289974443669386774494886648945469875896882732676685862384949899985987577777928569599337358998886527363556988989887897697566688559784389758899667459749796969759997458947374538889777984839569938998979886935796643669466476773983973464598896768847695698588556785893954499948758769585567785686749949998593457978957448395589774859889847475474686958859685887485949948799836779225998792998567297887344596499273984959995989977592842499899987488599867876675999868877867597848969598999995688686755365999584478588947987768973867786897898438769899779757799689957667729779676778979659679697486525988673285874498962646799878386877678576776476779489498975552947999798892939596578588768854942977997786638696879792998957969779494689495959885459727975776899846798934958868588277388367967844998867776675869994846886768974896985775576876789798988779958979589856959769995689389766456999888667969739889498889832827788886559956867897797967574796785378967497978898585657977829878756598655575986878376965768497858954289763559786967774899957584868896763559796772387767568965792572987369368488256868597969974844857496999979652858876776358774768559835938863557597897389899949473469993276778357678969799845369688673858777397569495958424768989749584733859482365469835849948897869449687859258686879758996827398878798577595657782857836735637886899798784634678595789678729448597689559876289886977447885674898999974869742874967963798757869879865436865956999695575998784868826498966578487696946366877596938989588494499895697999499638935485493775958379859599966878487949898799928858895575768958993274779595283695962742923899583767848778779933966578599788335779638972497727694978778754539542943888877595978295794844798693595946472578887899949496364899693768996775938999997879877947895975676699968886695968977768554869588468935795565967958232399479899445889752779864869579749875269895778988892883575793888665789822896749565637827942676872896656776685997288955858895394799996898638994689394798925979924929367253687839326479768874687998433956386858858864895366873756444797887933876888685648249799486779547944493598869497766576789884975968993774989796846696969778998739898797499879666347484739787982469592643929487638877645789383655776498376274888978779698293886496428696584649857676795597666346989366386676964799927877998786899985843857773588884838365669998776675769676838453394797675978879989876768997994598799998432498974987974769794273877979889482366683458868755859876999543948999993649556497939588759658359688758565489832496696736988887634765898997977557585596554794988755888837499753244976497766887787569857477584686387549978989785988784864572394578857947797889566995598398949866747995789979282877775765956485584948469897776762974857997896538999759969356679725877245886955467998848786999677934969585799666649597599549877897994964759798553764656898734852883823569767398736785587579987658695466997234996287646747959995798599857959797696576758568955799999599546448778377753767938299949454976596379944759837769955554968694655627837457886598649786893898863979368778399658969558765768744997299498939899696879773856697548826677988634664869577973448994487378898886395699988875697578766797589987458875893786459929396587777626983778379889678753555675849695587694466657974946566598754894952588975965592797989894847458679889786955977853658749645593277557589863599759799957878869699665543786978675655793887776479986589579256689657667299772522588997785946798547899997827978875776883888896774795699666947894975787949593956737299862735958982929897759885996858569856675939585779879777536955777997995768942854863879379655847645869895957697677777599756696894389349788943857625996698657695978772698297692986788323968759576685788536984887356576956697379857787489765897577287876755797259868388789297957744477348785989795649859994796855768869979857697999694477498879794937638398968499994872568975495793448527948498987398476978869988848675882767555984969879773978326369982557782946759834387698876535966799997989686657677777449898898598968386659657769578737584777897589824985753738788857928778586359979486665885767889967575695777833487757959777965879889298766788893967636254983769759779787889894984697998668768898868738474268578886488396459978665278697548393288986789397775687978468555277459789563866949935697662695763397397474485945795399499839964949767565559473499997945984973968978995696794686599288684969535967965963876485995579544779377689983948847679875567664998367787669787757475793578279944299996775923859765365344255277758279995572838294597294887856997965884798457868527587999984878295889478685655735596572896869989759676894799474494372583878674955779699786978888449966997259797939579554498595872847589989358332843597646997375898676697879673334658658465648797533784999559865699649964346595666955986988675569956898879769993886839589859375857985267637789689977484254659758778459884973629288526769738755879787536926887943679678785687584895698798639726964979858698398857864997866997994798883598779997489599958562298497832482855579877799394848752978998658497547729789577767795679799768599994537983589968569958929536526794922888888994649486979789957689588577996398698749698848889869553987587277276887659288678599879597795878959578688946289877298863795298956955387664796375847676289992898874534765787993486788692288877797778498859964866497865795937789726966829959747864587468977989976949726679586753949347954698939879765578299536685348577979974785765389975599886699978659896487868346379453976689559849666947675668984535588479788988746969783872289386748679973879887435789542597299929987983986688979754866732486868698748897947669898988238979344589594498978697778967586577649878698766796956938748729696779498667659946877549699597859765987375244869558968465865765988996848428889888755869398556738953353979968839396675483948677345987985995965854693957889533945759938957596738537735878724987872593976897988895689478748946646259985738568398987876928957597598969569888898678938579847664957887987887566689539498767889495766445643753688744986879856554996257739645845466669696879487649368599859999884697548967457975968768588592856874349939329357965898499692758595956978649634764598735677726986798695956387882897945668942949965993975897487957987866459966989679553939974976429345899794477884296953969788988395949987947728576889785595797778585589865979667995939787775589967888747977369748277694653646799876969887677869886894575868676565385779688623439957968357937949786287376338737337977347874988992996454878668546788646888599466489789649434746947576388798959764989536699554999954883253897647599776597899694478852688693599537497638944576895989588335765496879884489747773723998568457857998486859777555889498978496758788769497856399359659478652679877448685599874976936667928787379893979687772987939659636992927976567498387846984347757575735689947746465999688928525489968886978956639832969347254977748759888469696849665488898964648267762868888733337579469783859578698997479758948279678978897938855879498568979747459534292759689967664495777695898989888797987876838637687746747878845654579488899439978943688836944888965769477967498898593965485572963685979597966769479948598884979884629989876976894796673987874776757967394746275698696734398975677744639976587935948624777778887436496688998589464468525855659459825639789488898777967457689584892869897568859878855596883949767955878885539737327587525698866658743888867799988293559958739553793758369979786929998387885989599889529696949733939649899989897859852969663374747885638784742899959968867997569766756599783879968855997962799768897588449953573874779767477797959879748968746794696867557947969345889797646366797769396257886675689975566873579596485724846769825855574853976476857677246757578884937787659576574975994896796874927377657443987387893498946959968446798798657779454854866798695769785786585587298899898976692988287378587349769374888647926458896797567737572977554687878783995598987979799789698927949795883768598899937966499899998899866746294894388979948945883277953859795568755635589778796687985998858265675884658589527896636974954633934548785579897987889969996578978479577869859664573365759696393726979779997858687958697756458885968545676595656798389728699697797449269877894392999986839483984599456899997385738759966774368388984977594782999855374867897959974997377946669568935455594276785647978288684796947574723858974459584896537998799486946867563876887977786694935689959896876787998988987896872379955998434287989727796679978776978779795798957933433645898493776794536849622553874499697678778376787879829796887956992666696388697988767979587438778976545947977868693478686966789866867897788988878787696885744786587689787844288536464986964875797788997849975256748389859798955826877535686779397887796862877879694879954775829698966884989886869777986258989799968974996985987876649298599996736398646499588976738889577973798799939295895877768678773885879845397378268638588874746987994239744349998575596979993978448758877557695595979733579549957293338698639978369649672539979944579958238957385978859369467778897685774944699576847746999699639686859374554887574599587938946869998888639377446583987387684395739924559838887847969593764987964689985484297789766533967769628763889573789564739527344575856775799968993389945555857789959777366784569829956859785597889845537795545698973367957747945879498286495586799396858477788977584678239899879787979967987799494483369786985579634738764536835256946395867465944899379495866846668868699349279784696878979746877576777869989639298789677357678993969946554598657779896968666776687566869976499659839359658979767399969599577978797588897975899989375777499836678787896846956689755868784777898897939689577473887698458677794569769686949696959973688899786876969794956596989688977567769667475685497799786788768879399384688883599694469343976778766987784788988799597788967428668836975996798769868834846879949948997583892574777994559888796839598563478669584986556977785656689987576689598888995676688454455993347946595776799786598887879876788695399975999844395895855997979756338354886795885898945959886967989487496723555867988757648992749779448897978577838974698757446687349694966684657798826985758375698799967989859784656996784667495892889576678948972549846667878788945647798857249548554888778469699573588436652999538696637389996889295792948937689955487788757894688948768897587558899766739289774368957787785985969367949683856734486686986889586685389787828567979859689599582569663539499849733738488595699663898765869462684878559675684873945966745677789896895864967456993884797997337743685739967979997778443794556986555635567677958786898567684528389687684868967676357698497576688744673749627569434866937487864479237938788696767548675894287934498479285796689996457884959543889735647999753999888689969497688537857365797677577377992866877867896757794966857978788463756857648875898598689589348857876898849754836499988779996658868759858358238457589283846877875288994435952449467896666996796769789995888777875894893447797859895698448878797998447979986659959949746258898729679669578329899529949659789659885759689958286259497997888839385699998946698998572669997899646656486458297973257957275689439768975848566998887467787863765688767666588389666568637889865734759696244978695884759865889563879269777376569678669645899497556695796798459999595978989983977678287379786558489995597998958699964449877985884368699898767587888658878999766896897695999487747398777297463966479596563647967984856678798664754698538755847773999496824958925859878546497369698389376697757986726468997587889889699837594975962847876947978967937768765495884796956485896985799587897758949996495847749658465779999499596657995685463789898986764559795637986598574989658855757986434789939787739693357987232923965796748329729888969685589596329857757698394737373768655777496789528785947545973924687997856859489588679968749648497977767997873799679999787548897878799756986397357946567955778397969885975976799756558664979798795576762979346568865923689699499768268893657745585698959878754894965999999589894668277878996688494874693545879996689844789758669776975978555653866745566966983946797659982798488689538927886682656788488786857567487793598527798965574959956689967684762499564893479674894345795688889996543938379586886596795849635885956865988869896959536597579754748785958393846754465767949472768445795935377638569959877583879674458974499745666768737897775855857477584447775368687968968649686979628649394388658988684388687799875768859857868969678756567737999789848945666985799878778599497872397553486649887689873696758286455996895993954888575628897888786737589584485685833857789689857887996995584697886673686599797998889763899869969796578588927957453983728399588973689665996639389665599754594786876557785667898676675657669986929957879866696925786884786866835678997899865688738468637955838499896976974866898879898477586565658978877375877996894689884796974468399894977945939589598467598969949549957897465933997599382778566597887868929852987879278467798859647777885898957867362765988545247587996347447455573797486666825928843845846686618976792475945643886767588373997786899728973753774378687284768574869883778887946998965827799776497857854979269564498594435855449746799887695578638878769566689985679856658646675693677677757876794869867997999665977689729596546989886596674868998848897384627996868997397845564387756588888778464995877989784957439863299939357684497989726999783898929578598695746999957886476694646277376868866642764989997777672987822589794847245869936779339569889346887654569499694799996657429636689977872856389477678738578664638676884978677825878726455899387339478965585978672299794747934985896678697867855978735986386898889638589286768844395788856469665893997695877848675866585598875757428679634886997497728769495798467695489588949976789944582842997954428875486773887475869749899857545685885729365939587593966835994798698849969965357286847854982945386949777768788679976493629973858266465739857263386739784569888964996538857689498978566579396777264997487736624996896769967568998357856797947495387797386946898733644226965747878699688577969987655766957394876486956987277779789756852586998495925877799599892678778654949583479775669734448787387899657474997756988494956984744766369858778978743565879299574549897957767776787889863988997859876545936595939855984769869889589638986473827685398879695777285578648799898753789899495788977989678958999998797968887697483736959787879894453463494936979687886499673789853769989888586792679986897886889689345877479689985946968889777899689869887759858939854674833687693588495279486978826688788657939778737398968929965829659686889268886965698985396765535728898568784669488983628659744992468958968575899579873879545625985746289995797787557659596676496423958676299739545929444493994975994655898897987287733948968999778487478396578969385767996968657677777299868787978278966698989859885684757499359959898997779956966396668424595589658467968885789667235848877848275597799667896898993957669557768954397347859836677759675957767467897579788579588866695677759469397987894584695439992687979459842659896266389898574975398658878867894997843947929444558959496977797569599999259867269858877869988395768397489257778658889847867539999879959589759486579529594495699893558783877694938736998868692847874587336574499995477938865978788666796868899997989298758899776369668983839779887795769789455498379855677598476849686777744999978687899947498888686745689667965758554882547666665943675855457992879583826486796495989788963574488498894696267558288884689589739863739486998745945936658574899587969298748884848775997739769869846957866867659927495478875998375527978955779966924688664874897847985764859894893773588799676493649698968873459479787978894935594878495583587896755485664687585799484649695689699585597733866688789477789684889235567943983598976795894588699978669887875888966798678977789798639645495893789969778996972698493779679998588589978798958959859898575765595988887449787948594678866672498877988959979866579462479657766556558664889777977899948786846987886582577956596664798952545788377986769469778958845646995998384839999725777698596576947279893567387396978987798969877799276848879945678769887447688389485476799974978758646967897296844844777394969837574366943867668275399998899947998569494886978587487689452539267276849889897963499996957679399978996574974759655967874247794865847655855225877487698787886859657687897795898559659977897799485566294288558398384599789489537989438683858655447792899756489683986887889897965876599789897479587386898397967427664989665799496989368979789689796878988788648698352939898896584899887272649687858887468853496429879749773837477676899794577668879889986866764976789793689428856569682977845873647949839994597789276799459597849963562683562997779869679377598355879835998687787559998876994884996556498996985296668977879939899767587879837975596859579696375695574968589996748437426948885578995894494877639899293895983989899987876338868848448676487799869596885765846998476799939879395849973774864674993468865437399967492397997558994398676936838374864392579896766599985666857849648989898547945288876797957579496644498745988729797768393975878799298945945669769566897679887935396378557696524587359876577979698897487693977562577757864985998993356987929686278796987993766738985786499335468896788969564427648969469364968766569895874938696696387879393685787375898974997759988598498946579484857779799865659449997885495887569965245878527328576969273236997769965997737939979987495348362793944836888879846598776852828278758493589978377869954688778679268868966539578795798692369454598857698586498995966755956575336774777452879766979794784865485999779344987779598687556846783784779269776768797366682395898973798877996778896866776748689698497499897957996479686949847498757595669856688468695697969596799472899956896698735697889897474788976378686858487968756956579988592999935244956866396552735698998777884592877388667274455877449879749776468599797999878694996695589483788269983369952447479759894955957894483265374885559575378897969933663457759766846694984959537872993876479965969898889559247299976673967677697572898745644757347888469777669789585566729998888878989549688666888693369959375777789379778695497883459799579475779755478878538788956495985775898876677379868967968836447866898585748589697573894778978888667829387996577665788337896595699878733688898539974978579947938874887775772984649557797985778746386863569689796574984398864468879699576595767634859684669899877449665586989549469785899562798999599775759895385253473688878476598779947757349884996895445866775634769968947999466986675759998488866746876974593953996773668997846975367796699558986976928349876653285374894594386989779499978478557287954859774856775685855898857798792998686737525757999988975884967923685573666635854675896959669887354657838865887577588856867948998695973629937975796978998988276798943868983845648598937647889536336793695943968779498667554859855687425674898957994966566774975786878536978799948763887874467787798359696835564649263957969948399889877929689559484498748539853796964528667399589898667979927799962586776978939965977937855998547873486456889853794968273849679856697279788928385943885759757973997489984895868777945589897227728544586888687238898456398935389488882859899587568624977995283885477995384969964945445987997944797489829696657497898977773679873475659939727957846796865877668979472944878997783655999597235694662877369759873788534756675983596995889977787959349955579677984998349389747359643437468578698966873386658779563393838567724376789945846937878646485969834979875879997666679397976399476789369897893653235446395974776977779437756997898877598969886887955969686992974795675495999479566579798498939378259956453384827992477794888689977677795886744799733877899537766977574784264299372627757378559743747788598593896383828688269998984975968877887899685686879496986998989659487549886898669949788986959699467889795474599868298728667559493948487689993767699639696983869965379669999747686699979878994587778984647767998994784597584976663466563696344687986585467588898599485997467768769646272388488938974277984649788685897855986884697899437749997778889784965898658577358628887867983787844854875856669984995388355925548279879997793878799562989843298875597555697859792925958759388499489369849969787999795859579866799364697976889358929559875965887786574947767987667853575876896693836877647667989377499366849367996933865394573548669975753894932854765724745499784489898985589969879775759296589788666355753789895656767776686968944869634893885543699899564749349846648688773399787957767986869498268885679686794769745987944737357887275467895999666786784643963758766493478778885376987943559969858855557775275866743759497968478349888747669375967695993597974767598234667823483599798796784468986955536843659874684457567765458948358568678987594865778548866548424896768764589687958496568563799687569373495798458644868679458996668568267544795694599795789678777899944368599399666839478457897458966887599887559698749837579489398794377958467594889252877388557939958897946687575557593799529878978796999832386994386665679759858437999662557345473398953598866788736983855935958677636894685779593796499678987763696949988757585926366568849978993668639799973689979679949485943668597677666749986766879385968683729587976879988899377355677525799425944657899866393848988968748688966948369783669966865787798648477835297988494598694665493783927427999586757553593657936934546556989689846459887455684487284687499459774776738877456878258995597964877399864798787887768778794796995987732989952792476598768877994673628658878596886846555458894367987897858777575968988788955896595857855995968836884244689975686839489842999997944796985756872499358759798398769984899438438675398797685568399834558788783678964787637658869749998557928539838836498487799656774979898899656778684857568799477696664669999737728936774398998378757796867796633698899973659873498856735355947955383367485985789399335766647686588993888589969255829856344953964569758999798479999886855436877679558999738597589974767885962865679658337482976475748498699729899967692878659879997873688666699897775667868778759676985976687369993788394738985598289787758887339494648752888879868966554962982477643258743843768729849696493534696668797678995548943599789876637685569964949959888753479879998985724658986577996988843899886898895587859983887999933569888967238469985636469588998386638868425665997887948865673859779876396877795853398876936489875958599997989566639759998887986697986486869892888769458885675997626648964877476854586649277588799789695975389938679846444995575599975879856564988988697763798384884875786796979654798674866254639793354999977399996477983939489734799978349666954977668763789882999653849749658929787877684577298859426589476499992997836899944849866545998589465698898368946978766834767377885745684646456867675948687993797798895866266334735675757737787393576879964868849688437955977785869796938662886659689777969366976779566838798665277878595456498234998337683389894985989666689956859962895479747868748995786497999888267798794775939986986988365249245769859942959866979357898756864268868746835737985796577836596398878765274764847476899937889497866979964387486459587878949758769889659667828278584955975898996799748587999866888972468748884696368586972455988998886747866568526552768745849489984634865927328924396348868699768698587994978849835794856697987889977926458539596456849469937477398698976736988898845434689789893483389878887998783695543766488648968967798889536447387528824887979964489778648598733269766687798837348996978968988538563596594775658865763869878768688789498696628855934568972477998967975389765966875599495548787865969469776736785865824486868442736347662795546996557579997693834857956483999685898759594397499779878579786478993768587896697688956997779889478349959968794599557878346636777679979695396467594794682977572485598986579577749853647899638988734798637896463768499567878993674729768278879595576684568988367998939885859596979999458277588956759988558385933558399855769943492468648876968463763942499834786879984999889635938983458784985746877856254978949776979895995796493829549379664727799879976889465696266376574897275396673849884797548968845964759978677469966978829596739887527882898978789757898747835779639687976757383965997826458788994466896779649887589956965566879689996698858848527969877747848699758495898775898888638868979385976687875978977798993579227498949764584659549677994945948343487789283999967759779923876987799848759864878647899888389489763698936957968253869498498874769538945448786687979957959785867985626933896696887582469997293594965556875979897376676592889847367976556988999636855679873944566655587944994684695966594548583788689969976426987869437646573694683822979755384585569882779442683649957848699447888786899976785667679939988489798795528257638347497847728478562796898588697933338659993846892977994594759994898865755973797885894365457575899627995897765459773266985999399766584498883482849853946667874569993775983885758842956969762742368698996867478899886578467949789343856658788572389576975777546962987835836887797758889549888456695869768873748549962898676425685947989797385486758959357498748876878658396947979578845584553572993946687657789956838327728693899997868834465956399737559478438626568699388775399556849748995924774699389858785787868563584685996968979553959669739584989479955884975777876892875997979976667755968986839758555965683577789945656233723736998934549397774997748795895679787989277948464998585698778395538668949898595648279898979488997977868287945899888995548974377674874889466666359863677558897773828953885954579789777878889778898559897779887439576965948959778786348986898739788896677788979999689939957584898337456972946987877779879778765788837873359599779783787774964274787955678992866559864393956589667975655728464767397458979498787869359364648999965998757548486974987659773484577478499799659663937689899747678979899994938779665878846488293699988359489659795769896976757234475966465585956567886979958487688285892876686699575898687878866979886569989749537788944779677974635852994999989993759694686463342968346868846999984729684979797986398838393688957784969796544787388777753999834865657596868743857894698877994879559579579289988869858865856557457546765673876732842987965955696646255689962593773696797779955788896866499594489897966755685879999959777599745898778893526875895699733679694737588969877697577485999449786642937855779995338949956596865744999592639878757457987678567799799796565557897764848998599379897287785499894889884849725788999486942499887689827952599255994429893684676966679995996978487956984876564583586975899878356779587546826565454995927999593879277986859349677529696996979449376388657988969879644693679833978973395297783998494559638479777869564923956989498694488879865688695879479396783979886788979963467897979979976287544996898992366769887782778968664476866889647578245354495768756987567488487888769697399979365976957779378879975253869985595899667999356777746666848856588378989858989596757874996745376367877456949696978785979939699394899988758448596797278592576794887793699986483789979589889939977862949378996993389829869785735892542369779883658846995954858378883896797589947838678537987978838979834788825857966878678887644692885747997974969779526957755335576948756538975664636742949447878766836864354986446686729739975893768966997474786887638897957758878794565958987496845785898866996276834897597676999995636857579688889977566697992842595377298993797498758544878494296585472257848886985684599998287588969765778783949679645944956457695977477597848937677898884784885476638898964267677899845997894448998685297658679583728688599787997785796946734997879545789994986775867659956689766427784688488996765894828899689577668876696979979822738887549478498865895976969759457965986955546878668275654696948264468699595995498776679687484397588383462547937436744636687768976648976965789795984968984557677877999368287768869575977796995787775667697955747827775637542789979593987424957688557689579987784497866459927254537549469677898989766975866646479947988899787864694898664549878879966397575986985954778559888989556869589687548974678934977978764885439979524558278689988974874598837879669966884867775588594885759796987985887769675748894775968784395878785966988479597894847998965659787899785545857645899848759835897788599898995754842599749689348484639999297646655687449886869895597992879982886583937967787599779853377948999642925998985586922859286767685567959668547479837893779729958796958884766477887777776588799875654857859992296889885698894827868958799877955487796639996746799558763895639979793733887988898987768457579793734729599598887835885837826938685885583945879538798359556869877945357884969789898548634669869843987998478349668467276896837455796744926937486648535569746676799677747686874998455663975889484764278838557698698389766759979927579744437649343777972958732768777885965985447484976266623696498584472646985386969889527697359889899956596558587856873448985898979747879467868677986998789959699835539754876944936674997896936867856989563927459664859685869494589892687589697959579893768596468597797979698886688484433977976579596893879768389379858695777999587968257899768288869846337876533988745627756798752239895978753859758565789837896588964648588786986696966989664785476786888588597956925995689599898996756536974582928968859747759975373457579389988549773799975579297669988368649337672657378369699788346984989797847797578864579573669679979986578898968677949775579556643799836676846857998599796349553857783983888796866594255669985855258785939988447866636989889987468889785998963648699466784498683867999792538759456993659989947857789679288868668964989955969474754696899374499565744779976976899778957397966968975655774654999738463989576979867875888347998722568869573279846999859554897669889299684989876797639688864896899776584689369983979696559666649848485979999977849859438499376579737779579587978958599978537687859578353876884899895859776794386589497868364878489369768757796368759768497548959794459938489985799956966777967669589967957569659798679466989445638787697868597977578696776885797999844943789288854736982637658889646799977555897656666687757658743267969945673967975487989747558689785369626688647739426439944944958785687754726795889736868567299899895749588989468758824888669999899873775456496879764948589496345532732587937888373538876986789368883593768992743426848497778899787859692965383454847852529597848698768798286987688688799459335757587797367382578596568884863682969985979884474969888458597897599878977978973795965856396537833585964595354796455899988687389987722879698964594946358576987837857599888777469264978775879785435955579798558984846798939389848579697599756956752989898665454876944869786887999774853679835679637659489485936689375674779784397974299993978489757869979977695573686749875656576955563987549868644894897736779575898499788587894295756373766878984867599625958668497858868787899967698584797697877559636969476688879645696566884489969687956988775256895775869789489748743835899886844899857777599348776997976896667836395888894584677987468586994369579854846985999852998425679726978794598774935946995999658698284478959569852748389958765824938877886997997496858899494385794924498887699965788379569347878368879998478449679777454948899672627946998345279896779999554759279446699236869686773866997873886798744595837798942983888795797899579582266697848766789888649637379989292574897586962999868743896499697877698689397734529895369894858899479997566884497968977755869789467458785446957979769797977943673977764887583969597695895287983799999782459634858689855789999984788855428997685785892944477367957479865879678769988895638589996657973865477589796793948497968874862939888736999568948676948896745975655766725688845399837295683746872449958853585778778997774893999886658748878976969887779654568965886855778557976765584867997999399757476888457679859998439757976788997689896734787685986899677928689379798629758699667969885739896663688768979586888368583435947989868797847787489759895577999497878589998884798574488574769653397744398578628838873766569986898463686275749593898888859389888345989778848897784997698788856958669865597897875349888997995787469848558626836944988788759876866297693379294957954686763486974428446994798978989394488879634698594758673797448689442899546976746439999396885259446988766666979692496592677554874887598347324685998836759588499448356768697695899869485679998997967979857694489969484898556497987479747769498569764735995957595767989947497965588798968763958465999487369896877234993787848985986854989678995585775389579978936698858967889956589777666375487883357768633996438495759394987679684848993683788469637696789688347973773548569968979388838967864425777965654298668739979775496598747897586899987799286958855875473935579737697849697799994388368389889596758773997588592595867825559997552668556766453665767687788964936477485959733549958658577779399889797598389828487866823959898798999767739699675996279779889687999899788568657958879682472878447865955979977569559987869484259886482447387327579846522559874879223458886387539987826535749297579896296655949737559837448495857745868366988779768587534569298859279787987699628739588567858595695887767594375567694735795865279769385683485989694994395955477996787959949955638747534578785674685699769794576868743757896658573988849946869768878796575968788967999684747489393956567688659677485467735879778387696783498897939489268569787765939588997793344679886779399698746462983855996679625288898764995695993899597889869932979638759866999397998586598866595589353898669394864766889959979238859576688735859989685886884798857789896977886898448995676978868989896776945987995749395875687688496747299745499878838868775768979737388665976939784948879784766762496489897837337678259686685346726676896498974886986369599977847892899227767652775374697977848798956578744276896956389975789827659576836669589899647859986756857669665498953787956899979977967563889796857456577539485558866787383884945928498597726767788742888555957976577777955639758346893528786727659378896399899966586494958998689998687656836786998948685979886936799888898898688789965876889698778468995843876688789387679958692568888655867868997985879832986963785626665994788776686768555528297593947799783539676858748676574498999896376669434269795669379545767549998374997769879899768996363844849489897983996687823567949598979998999888963876476895288966987467387488896756468964878868724894388937988849529773945982943986754679834382789899755383999585878967387676995988655775698557479689569736993789397957935879986784273879673986859896966997956899788967997893685867588568598564487749869787573689733846739974499769354767997666967624476999674779979596736896999755923785828559975948679586439854957573538839897458758666496759435899779488588596796448899857596555687698664846559667589936796866389587587695984642658888578989894787269629635996685995857985829985785655892785598759766788689569838479786799977866586997696885498482346855396479575849729656494659495567356778798639869897838224495986957647989554668799499584858779567335549979276568699947787485996654879499895569998768679896554326798998678965997969937486877478877985486537465679638287749524759796753668978768986688656898868678839664983678875944829583925275383692899542436793255749967988574898667943783695498497878745539898957825268688657983569779386966796498848894665867985538598383427447639449773977689788297448572979693756546986585973758659634497957693665738478686855588679969874764878879668799899958978768449888499899785387495678599566755959795696898856676779766686678697687774489287798523348379456755845279567288798865686697689796978779273697388265972474997674487977536866797787834287659887638678287796886598938879463486454866529888365896775765974785686599887845899999269777789398987879737688645383779798852828989589865378799996954799788674857989889757998889725875945778556887597643799789765936439978466994992475765989768484879676658929982833495988998967259898998469479969967898973747957687986682366766354643589595827779849387658643854886989498863759854687446899676888799877968879667978558838629998768579896677749894384726686873573796987965393366966556698729742959889697687685659699985968787999947845988895825744793863899865486986889363934837868888679769779964499996659957492866458879679597797973379897365999678889986553883483679959688978689389399888848987268658897495479569758573897575568498887856669989469783868577843879656848975985474473868935993238666946648589987566998269488488479947988985885324857276789786875663998858979586977869953449964933435459269399666498583983729833956957457945852859598596324868727999299642374749862923797359678684756869943989454975488747796979378977969669486799896929983957679636676529999337856253465948582997985478469775874998888866378699388768679978676358598255588497548558796998958575959777984798874877876989885938878488668887974635869788975899696557466659997687859397989899997959949795668787679994486579297938825988988656799246995628298997694868553856794898774383975893858974969578883665497797824546936753797957899568964728888783547598724995348646776488437422998993848584499996456849997446675998979849797687936693968959696679977869772985954899663894993978888458983394997489966462998654797789286588979479589786764788949947798455787586768978895468839697479537777588555687927787495677679456896989685899855984465555676659858387996465966339794778737449897684577975778966994567229948459845534576768447886996849799469988856959999799576656728868688675569837868597899788979465945898699388869996747837975543688968876858748266767978687849799558587796928699395948882985748479888886783764887979865787889892274559476885857959886669568859776987699897898942537499976587789764678985889775484289977893846844678864757376828887924966889897536679959944369499996955887598589863684776887776268585893973989776999869294897999893698776683995877262685484596357776996489997548889678969997485389676948796766889587439979752728667279898745377985893899455966375775445969968898457989659647666585297788676788898466668994679468897688974867557957996973738869975664996783498795676779978597375684987252995769567658949489789897758676567847997888599639568675794896358439587933866888959693747578784798959569947939753969878869852549968994648487494983834989592589669896648577899598879979798946357568948539725486245863675585797479976687394978898779989772977494797746773939494559895882725957686788788854889828897493997877755439884682589793767687967649625498878464829895888657547968788863653598547984685279926563885989677599977436756689858897598299979954966489799789844769378885676734985946649845989356965827967989872753987878893425495594794679864985884767928569895926786493646736884599989436847968838998896369569399598884988995995958958987945999778899678862778878466783675557787877769448385878887764996659789998894649236456658649789779377638476999898858578977497578426854635994884778885798589988739859987388246277949994849629654425796799838933989477577498439374783895633998957948979757669594879475959736999349268539595793495885499696753876736758884767487983969376588755795589776674597568954487738859964596798457895958699368698497766988742748897768997747847789689968995738279897647596666885596559667288967793787456885646667942739678884948748558956658868874225758799556989989662872579859965485868678478667672586347566657976977549784898769697689777889677969959837898899226496443769928797759997624596758886989759647299274767872766897588668676898986796987948775869573877689887466874969666449988446798869994929679554979888836879274576786867697787947886555977889768898642873542973287795588389869942558859798855397579996878978845799499464966975488825865889859844599879663797475576947877968587772589653847485888563984966576559943377297499567838472986977396579294969989853989936766759828877348997448899879888985776684993359677979546988736696656484869588848977958375766659989349996487385899987889974589979776779774787449693994575589933748987895897948894862854869698777974369894959882648678994598595678689998789587737725938988357969777959859688642595467833797899277896745882557965388798688497459769935955937764782897753725988986996896956587684995667878995799678994546654943394987488598899887959668689359873788969788899478386487565763668988697669966573858597749598988767687955998593735896589797699983578673989884475859664749758259697988839648879477696588699969967977799926989429984467788792559478645948987625869773676667997337428895599683754778774954934884796899366784893798429848888448946862794689828756299777863726589648523893986488477998588698798975874422299836734999796579988779239845435467869685487499948863967998575855849864866764796885967999787988876479778658947954968768796669768898686637598777756269997786788676498899782997745589928363969965857846897637267449367687992594645496467996666744996989825628976873986697396985688999568877568829487678978347827635679498989467967986844259849996363999894986783398886642398866859369943785968597969678889777739899989886788569744486749888598696785788784668986393358937999786868695492657685994798948793897776389996849789299959659495798849659465577697788466378456898588599768879778999738757687454699695998989652794749948259585897393686968983447479566899692897985354965694878893638696578899984577557993365896988358598858897787769686897674865257498999573653885994634396958855458632876999699974397997549799599254799788668359874438879789865759978683598689578674755686955799897999679664687883399647765979849797538935598377848978767357946797525567894877393737646886664622279767289435579888768677774958989496688463657899688587869853867858556959897963999463744996857969886864948698928498885898966723858328897966593686999866994976985746896839883947876798658586748774897798946866957682545964886887736469998395558894988893595569433889569934479759497969936468976867688695989423856772964464673667998676789887477465468982899797837987965599735933297788787899479698987772458978669354964923789748767395687947758687565788535998343989836434897568888786559939936687436975874694834798677676658758864686969849699698799755978772266857975755859385998763844878985867879397289852797798879983623898568958584998726555669854859254788959768498888834789639599575985964842977964538384886786435867376978899846794495958367655839968987796467899776468987793887498468639899887792759694684986842846674764577879855938887564689499395846794377872398658955348955468967876473665998748559657865355997389747859933263496858978589759698889669684895898768795897955699376564885996779999898765967557798866564343875499958759767763445548698688566877856774597679489849492888849948426456968874887524954567549475786968966857489883954843755899679926945484489496769847529977955536375873759934929589687845675887558675876477799276779996682886832946748667493833665949665689487658965287864957597482849798867748658476948694887898973637858757747558897655585699996997684863384799499872494786733982849592798579962956667888459556688599828596924777975336837858885382799989878987974635698958689798467397773992459697785993899595378977969978589935256968787279383839928944487889769889646975476995877959972967675659947967988985569758357457675463889569899677578772474654675584489766475789398486797558493969459685459487799458854758535866887878489979586427758986856779555878467585647869684453657885879799857989999773685799424854996883862595776569394899597689958689599995888449996557483859837738755579862798369379548678995937359664979984975757956952877756949229753772586977758699395379887995796392889688758757679586839784967677997879697299979936595669955835748498699865266894997685876667976649548555979988397866396798797998998937675678766948988878778898496745883989956548885679348788779899936775994648848889272896377969867874959489495689284238684599788297992485999478458478689955665769948992984887667669899496947673868885885946884799797843957499859876459944879888997599385588879975588858996698989938688599347268696668927989876654864389587328576898769789959495695396859399665548737238259859597493488352689886776998868388272383479865578979858649595869796659965698988746957937398658866277788898858896998469988387866898866898679592888888889979547998949546897776999547775862565769649969767975988865698579379943599474449695779798686839968892498968884758874589589875399976797596544369959746269778867725999882646576747966865937756756939956459979764573988579679578299998599685989449983996928489486787847854755998863668578635686572357689868249889869637999593568567886888666485699767868796867888547985666699898975636696799584884837974598956267829976475678957799984699359669784897879478452898693388488879283636885657764848735577856885967769948948746376547463556655439982448879839875798585556989289796889578948666879734454797766874859398759627599955847589587379967678588579785367788784486967496469658897475954996298499467828259869779236298237933995639685846865966948787742779958392388949986889679988296827593887497888658469576395788776992875873887588984784947879476896343839853897993946774585658688625975387887964958698786897597664896895899696896887768957955786745888796488372388799377969945866969893994963966638475574777898839488757353538892663887999974995759799678896599383757974475936979976996887636686789488798998873956579949956995797348969648977497949269876998686858456957595578289589376976825977559233859996796695459496536656594384577899448834374839936687687356886944755559695846855575887756869956867972379994885657779828879399776628995669357464586988797866773649487645989959738898887258849954677642358986456977759779589797996595597686729486899696879984994848998896799575824537577563776575497288967635828697876836695463956965388756955885968638697788649585583697888324977292247368455896864665597385578988775796676955677788494985565857564889436799288834785779547594955864452858848677959934899848569769957455898489872586579769498393646567759276686935648898725677279776339794768785425877895577857837442569588646889987669565687657837842795996599794286776336894299689858588746626943749869599993977878945973339998899693695877256575994785947893676594586598679777568684849668886685747664957968285437898795999248886755986399489825999676579656538529887363295754978884595669879747467894955776497645974369897977598988769949787999936892557998399358366685974748888787358856677686999892559739799573387857498847629698567384996976536986989759977427936859395749747344974538888698454555835985975886656547854697888658892688579889454474597348579857749945886985377935958856478474497936426884979649689398282955459697982937737689549879959997677294487843668877884998878996767558897746287956845662897965459699662897679964984648765584589567899666735986889985878649967974987993988569928649636289995895968895747859487586773595376837992799978845845884975976669667276795535756889872853665679999569857377596579668549889778997967675769967597859696699486288658873784978925379983677978778959585887965763389768294697972989585699897769934429866485667679746795769964689855455567283788993492759578323929689347679778996854868878293893559827379936898966935799583848688967976876798773667789689595666947928348794578996897879786853336928398766449639578666747426653444679958688999396576797999698789998882787748769476958864286437677579298699886358885874998978998669769985378969855887838646582493939999937927587667887976479699948588879696953288699496977388357688397555487987676787387779589556765887755899954369942396945596789898584795779999899782637856669548268497989734584758779757545983468856567864667776686945699779688676678888748434982679484777938996584632926877699884896659656697798678875887967973972878686857698865562479856378475449857797998957888449958887776357449764777699778997765797799659379558999899667943967456967889766846972789989789938988944963565578887268789938969743567758866949599668258669633688979458452899768877975986799989947788876866787697679938379269772979788983769874863865969597577957758988259399657882887936437766866586746469844597645966738946898697766968887768397352879885854898879884845966589986769965886395979698655998973569946798997685679487547728875597988989395697985877286729978786399999645364568993597759749989655647496423746276999666369669998968888777949896686598496678458727656999297548567969547996883899789784989987487536782445566894866424498598489299596926992487785596528756778956679498785967393766859825578958985868995889795987766577793358989948846936753536893779695799875465593739499854373476688679678924688959977563897339859963846474556947666867674576732969499968935689789695596879778737898349698497867996799773767399799926856976458597567672967676379282689987456999879573985685468537958898779896756429389467478956687897886627738958899958296857999787638879577677967268595667866846899582657589986545997989858865979869974992559458858789949598976969529877956959855546886585986868979697699969736597692887934962858797756843499596877989666527597539992743798776888488987989996825467893385683799599979689849999855368885763679867797729524796448346722666477788463637973497487888959667282979966866879486756377839883572897848467777879484897627774489976634569875956796446797867699898655269978897868883848955247446948267969557868576939994758686539497978389569835965893388759768739966756659486996439649369698976486483898968944697776987888658789755475897942449947687458579759797565739888979646776554578699687967756944878879896699897695458973849657986476659975898884892789948758588639964346954894696499658862553667947685375698896798896865869697999836666839854579387684999875766266856486669575989889459587867999977759497947895973989865262777867776579896755479693986968994976638566365564747639843787688996876768988389778388974999586689985738733954778887945798655726987995758479378466775268796888388988328998858858799577895949597585536567799447328934866492699968699695985778769836688779558782898669656853454836654485445476397778589272949998778483793586668684554376868555666699888994958375998838888567265987894553797667786879997878987289888977387873975649665398396799799645955858797796699499798776898977857386678486384587896667478699696993734793833894999739847956879987978775597695969493857984966688697979998947975899786257974948668899739768863767969659479777789693866487683478784889297387737535869699367962899756656782749276727596865998825869779679869475789799886967788977557599595855865658697794287846696669675866797998768546594378865778796842788799994553457992738778898879795496965966666763476868925899275759979874878779889849597982546879699438766696694787596966489596753899794964236869897759889788939797492547847748958957379896789938498939756678978556888688965388345773637999998654874725757989697595977453597787479536736898646587925747733996599599778397958996789859748389698868796795985487869867688575978986629995657766787897687479789887328342559495576988799757947359466676679478928549888668889365924683668779854688278427577946699447996794983756474949645655867974499649478789759795769699897888798898984963888575786887535983885858797667494995369945629633679675396688378875647959962965859879566467943989879999753774458868579528545547439675988299889937359797578649627696678995589379345728246998984988745999989696478685684396847889273574958679878848997958495759658969864797439986679935969479569996767296787958949889648897884889858746968684997847875434967789456699278726778754465872777497526869746368974446754843938683377756629956785445397659777799965358599927995788989659882448299868769735988468953845995969974649677687867788988294787267466983746877884393953638448586885629879998496769967599496898458677643848697557979558663686996633478782728742777927768489776689979974877737443678879795657874999965776399485546487334928868798487578429485796889449738995458925799998577367898598559787948698986758787678689586666859858789497394739955957693794239586889798999276967438785996865978977692997969998749737666778685865675479989527868557369699978896884785885989973999969584992893869349958784685783788776639974972328986476589554585557886867873499895889974567975847375387989687639998978823794525739356688536688553828778837945398477548888998599757798969928989847652389967376727988837894639979287889579547775679465955958979876982699437566674679528658587856768878947988458576693859897998894773694959379946676879568678298557497868977766479645459888763848994768796796959967378765677288799797654924746785899997757998995688876639687544585846875794767698977675887644867876969664592737379827568567549959683737868873767494748687886965372683999668859779535674489787798577249985879548973776668837668849969574728996978972878758638789588557748399375462594667858579553649525967859767297385977878999689956969876579675488744764744858987792395769988658485355778587949579489986849965594886357395678583287264468599667947898894889894975892872796735795276665477479566798995869879974969296749877743868757699578987766559643637557375797957587793998238898897359498688874976675428783848865985789996496684667969998747999769974767994568672994794842669956988489693975855282793374855429483497369996787796938969959784877886899895897633489948479869786687779667878479596977985965692529697947498673589788897459579868799878668287878956837597754558929799462969985898284574699679678435372994899385439787387896987578698998849899578898788968994966872999685776789496664894687894466662595688977577785663859783748696999845699759649894766945783579989799477659725878888483869786759898375698733759898395898499769858796694455596997585959278998548786697956758869997885457569969789868598982789996897347899337894796658767785768668799669385895376678777959659864897554623759569989479695499844997297778569485477848785739585644267756878283899785949274466679987878576579787655677287578987568884938866776665757947738963278589482375499456795837725777579389489598956479595686897697666836537647862997645669477696389899877859782377772486988655778773586628995249968644876866473895796275739647987996654475996775879945588857867877656796864989827969377645984577799999963389959779498767797977339676887975632465699858974594768497939982897973977388796745859978438688638964989749564887894789984955365623788875777487835999888545553477855478925765782448779997949778976724872872785989949398888734797663766974766493986677778697639688869355765779774667666389975497979897795385676456339999689786997894995687377698644753863758747429973653877569659482548767367789537884954588977758677997967393887388748999768956858978889493568877589988277487785395588773686988649699587847549858492894389987376788558985276768657899879786453886664958792454979778398798698688893888658496797695792839969754769976756796434947888779735788464874879885877939768872968752978845396483787989737568577459756676758955689698978879888876676446764594582487949685825548946683739738987677565685596798838387558978886839999579297299895948956989792849769789982876698345799968284362585989877978988398697543729287545794998997966959922877748669889295965976456859957686492998788958449599839839669788799643756457857436597796648858667995386844796883739885979599697943983888293634743756668957978768726758554963796782779857893458565946988876887566579897597879459966968984589979767667764456624875845877477937765459473878579887836777495995587757663768794799439533795586377484389774799966936763685878758856925855499555584889966775347975537678496783736765744977655966377946767958447944647758888597879489747558988648696664595689459759798992485573799688495998586879499789374769895964677856646688559899589966497489495758487266889983597874974646879634969665784785936776437866738278469377997544579497366668759775377798849983896657876987454788796885748858975987458769695463896464698943399977964896266997636836629778355994754399357349888962466493958936577857555577258776989995687985638299598275875998768659986595888877674877579694876989697385647988848646776728837578438549787368848747883969497989798977874564989693539498488977794963785998658678376668957948799394949678574628495494997988283299786885762979474977285999599556999789799537788674889897772748578882748849747768753356978796599879339965495929888359899695338887995849749999696969687449974687498798389799657558778778666869784848989968534868673476868869396833732896958786594687356885688947374648779788975826889576534297893758365969749693859995963492849978683779679563656296485672769976639259785996498548584886978797677338668375657778378983887662965384958796848978894396549895547989499576856886829848858889887949399689379876763668836554968477359357352765866662449925599299885888868389897977967586976974484945684679596786744675665586885766889873655938898437947586939895989865854932949428776487954998776473794884557757557874895839856979769992575862599499867976558554779665878446658888998785673999785564984996972685758735449433757745988846667286986367487774468976967978597848398777866776874486599789589999677876848987884995777979999799289995872965866867588894775949649599897868573896693539988987866594336973958369987889584464798949652779992545469769967953868865899534996658477789359748394758883457446886498989485949396677879997795858749496986495659555687488669497457877496878987997898824284968987273797843843525387987879784879787785768888686697965989459368878798266666986838656569745947379479976974497588636646653465895765669599556675754669543966853364569967775967776797788788769896987847679689987465894767989575879997327669796648884878877673996549567966658797787759985573886499898897949638938999498578757774867937488397665954589487459567599693999685876944559695974967686877579938959599999828838458669665878569796559677697996386483932732744856887635548274894498768498578348547896846778677866787836788466686678899863772872494788237887796989768684793595848966649966549665954849857679985739344376674797559847557687777657796594569887689869959984879988385697833877357398759469669966949947996789724866473966986897775958999877979378797597845633739875798576747654944697679638436965833988876998594559756997858965754658788994459699633567878386898988444687296788879877926993986596696864977669859888782878699464889749837738596727777785849275777988896769965767689896696887236975888656795354786868796683889698256433997976879777798489983468798948996737557368897747862967465886784995866999463794888878855686575558444698683775979787439368939955566927369677386569985837596553669696668787989996493789988779286888999898984634889536932729674786699978876688946867968437373733973966985865877937965667388985893986866433688392968455787788667932679582539989677988599967748594469858899767869388535784992788865898956975959884559987989498889987884974269944843985964869678584867997329966839745452547674857498994999688786798783388838687343685974666877498399699856676565498756675569969978778754926679784575796576789572595937785467558997943474969757899899887487585786786674684648532857579465469966377998446397695736376568686547967794696846554889958576953678979788846882578778955935796875538756525375989495697536788996768668575695848599699876887863989876699395266658848477365487485496877875799788848674688367797699899978789657776679838893469876749968637669788564578744259689398884876595758688585489579838695994894647849996784894775989498699888598248955699794658383846636876799799796929654777486654955998636895768789689457557758786779938676583899947298678939557789588886972775543796983992787578579297867899897476768866795936867976895296546676799695989998677625569779869826786689696995782888684385499946758845863397738799695987957356689596695789957584868487785748749553987836983377957497984488579943999396883757938883726488799855879669927353849455656266656498745379889686957973878656589449648657886599765596998834969966869543568355698346778984769896543846637957897444997966883998838596595369937655574677776874888799877978955574359679668788983567683797689988834589798972669458494745534794778486979857496794689994848396796999298777988656938995672669986553565658693668666465495696756568394898599688855299469888694976826799439935999454893936976458954759397996998384949697937669873467438778976467992969967569785778694574969844943679747875957929697763766886878924896349888579989985876985688438577366655268846396299945992975779858637985959974988997927746845543868867856859867954698969688375647672898887688836625437289237589778963969758786779567878943379577998998958484878959977989585995688979596447778594882738794576276796897994685832896355879772695487889675483873656638699288896795937895866968599666444998295987938967698833898644899748479546976885978986846963977778886848286694978896379999787885535753668598799968784975584686899328996988832977789446338342459366396978587688759876899585797389449947877966568498968973665677586973996498774654997462858887998969674456875579978268869798786978765889793748899499856695859368978989898758659597445737446788384688795846294776759555355844673675398599695245399978595477893989377496988993958389698696599384999959835897896868697968876386895398864599958697765377895498659987298947588938864377685599957787887433755699584998822878768899888679778239398487457887963977968975688795467985329779536975997989779794899862398459997668877398865765888799458866497879369833858645849827989845676749959399779497733957428456896669662858999846455667894798684898696792858788969992369444638458779595356759579783589538883959989889699789859838649793792776975347755446382466398896654425572898974478894475566686696985784966679847645687993898266759867973675777798989639756745979665898952728573584968479455278775269399887952593893897486989738997876696598939877766995578894527936899487894878567346458926298373579694474289276557747699499469989664855498577899869887899998963577999598288898898799999997956998992478299688498997879537758786765888345878972597669899894579989958947937839876987828837876999769888568768637836392989997753446649757868986999939889484467668797678495637768889977893598778857849696698859489777887479997899976889697594796899725777675863788994959538463989795869639377896564395789999655567669968899769888477599789466858569669369983487342689999572562835598668757424568288384994997779977897999959678798699683842993552977999988784932555996735485887677896859746836698785722678367549639979679539396696962843857698459769495898994999745995966766472856759598958963674696889873853698785874689487653889972585589279288969736684389748876766798549726965798957484989968796798974778555796938677748795997587769598985598559758325867674875883862949898847547697698458589999896667798569767639888997989759648998885799457578586845468679978853984876579578537658683576349856355939733995972689978449797559699933876288885678747578985389453998828595365799699447573967747699396669783685476994594577935649959965986894549966658237959897576555897787876866495593469383858596783922994748478249853387685589674576796434459768898797729996899656799595425834879786676974337953848768597988498396655997997766857994987865975352499387467579976388778998884538783588782852786648586876958788478574369643433879694754997857547875888996598947965966836754779897599585767334984988857973779869666445748587697873983595765936889867598484968695788568895869757398745883858698794984657368988888596939568895466962495494899378768799988974665795989373392998697378858268697482475664647927493558399998969658893357995768689779769898936567527469987686997528494866537686828586493754369758689487957598778997852998696998839665837698486695933595977898999789968888796879977477776688848993979676838823689898982759678586256498686736894687747892299883257793879748684878838679459846882999886999755778568855793752968367662786757769657759799567866873256864859476398897799789479979825689958868746574745994964997287848856692576888989664782899788998783858698598532387798489587579996876384586665975479689798799855877889768896988778967968645479579769989978458596899497766985756568677697838699847979778968688877675835989569868949535577379499576488398979545955989688745664474798879478685362983998293547948989857947598587796544857852839696674839869969796458998897364695988777948497868985888749673729389999989662672867568756967879565283999397669686637559999845944774233846725687866434575766492878695659796954379746857848849846874877699388856984377788896877565553746694595286482965694879989657883557775694689869698787889873988975835737545279899898665753396784663488399995866986865855658279647374699752785994843649498773395365864889797697379864678779877998762796572792895868556769865686797888578876687839796259643975499367797567544866854553588588599587735789767837869682637394964696886656698698947985795899524798847738897897636768253987894757398922646955765797246696557868735589446835738497995976887938982894658967897329882342697494765662699839465794283327374946788775899834665759649378978839896895885459566875787966676484799878558439655967659967959957977858798996798583799686585976989988449469786978587848676395869947964848596779773597496925485894796889539499496879474948367887596879789968866789698879699695298398798679598956278256966889488868388569995347957963489467474988923789962785978797295898867928739785974997925296995682963929866947894986768863749798396984539679669986286944887638399839847956479586899687897487698988978847959487574957687643879775959948497579854869938799996984479795799885774748868295629474978947998966896979949986389876464959799436494688765855959846287996798479277676795878784959965498677583967955385285373445835478537486435895546965677893978638948846999993794965666998366975275866379948987676794745878899739757877367829737596787829936734747893886878478689767587885989656629876995444259958844646696985529857837898946779949586745588899569899587299694559886889586576359797397889446668968988997875596669763492786788788969673339758683679649885843985995778646998953477859266269897968489846867954879336887696677769972383976748678558288598548395679896477589896425746878778968798827688858846867686657448823499798885688398698947974955389579497749949568994657573679546649876944655947789295697696933848936494745466999895246756893479737864789678795475889855865938888976749753893879548675534589439959964783365343768838977985739887292449883977596998997447996755768889975966799497899455789997464986978849733777589868494256866899763438979749769897995256654747757679572569836538979876798987689586688799998896857799628652989547985385699798979278737984988689399887877885696899843959884928693586495457446959698593889488959676599899573877679868788668299974853837875867898989359987976796658882847996767878752897874755737989444587784658586497977685788883785988966279898347887459976686446635753595666554747695776598379957974855897695596588599789847872973877888578492767488489765772878565854863696898968549588978799395996688973789698876365684966799865495883587779756469376859799886969839979889569544986893555559935845988776347889829967968388789974469939598239429478856659995997762487798266895975885987857796675295699686496839988598898589854669934368864685772877836986535898277775826999598569939887389878778785589845879649697879377655985368885657827655954975788897884556585474753665977984798979979897543576679997987626979848784636887988447989497357998889737685864399765574546749986946584597567777389749446897996654629597587995466597797336445798679458629957734578899788499965446899946899927696497279598398975787279479768656764864857669799575769568669659358984589974839596866645536697464756764447885999764498484289868983965949395877989579666464869868845674577775624389559624993994676695445577695947474736998979444977568589887227997693894996794776559859597697875449836766593927889695998986685926339987828498946839879987864899684765946277965548856962869876868739577562827977477696869474575699973898975399589857886358889457929764766889967955786894655577457747978859977998548579999477629679885948799679766886644477585989959939475976737767836987686748697993448868876698777898944698869896879495696889997986578676586572397997764794974878559994996766823828956585888878969675936685894677659286547733794895998925899978793554467798799678498793358789973926436788378968438846696979448699537856674995962645954775795889586999795384989979878986935469976935979938659654677887643879478977425447998769757875285968727777357479585998867374999896965784996668649733864864996878999859795459479899483778735246867768798338899896748877796487587894688597695467898394486963858679959579894676394594789759857957477697994673953577988999868557379988597993673975887765859777858978293944646925347897693858748485969596867768879757589888488477269896769589876886878987669958265587398364989277858898647964997899872889689796876764727559878856468973446788256999587697758529799246658989968874659888677595467757586728788888965885788789844676667586789949678472844895745987826877827496966675898979945684949356577798389796856969558579377695263889447588766567495998867938469299995699996534498887557669499666469872798567889477837949798476754967887766879798754899693898747777656927886479697869659444499849357357974378786789567596899896946964239937569598997839879966699976989959858859244876925936998882443659554965984989867969445599495893484289786385489899969479762897385986939887592689854979646787985965773377988898669993969462499835999579734997594738859958559395696969997879675649679995657553828693665485698896598988595877488569874872543689585645999478569868579466469879585979846958866886958898956935886464875877886572675736964968789778592745769766848876537944597989989848989899899564734837834693944938548432789958948887734798897398449797894499599929976787576668857879497969467396957933958563799595979993846978969574253643499758967774996979325646763689676982978766885465669844749879733598788577589868689838977995587878895987883958777976434833369396878475699976348577655893899389875698738759944785889944948995598289878758975675899848976679599468779748697673898787979499797567949338789884766897885732985895466895647898837223988769928449547879799893757759739289538698979934869577888785396758997785688936234425296362786483879349992976768989245766849678677378827475968898854967788748797588378875963876796868895944888532423862897937664894996729837657955778666766984957789778837678866966874688778677655972899949575876783398888898977666995998367864378259588525652389579789777749994669789647598474696657747877977862887694249749998673866958899848938738885748544999799724684995979698987998687879636495984295889695539995999856588589789485784988339488355524799796895979477467456595894968735538324988999576949326279777697987989988937485899276898386867857365598247757998995795854958278959996998872977698596958886679586567576489979834667688339985558887899558
