4487623941485271931422558511912652322119125595655895477143165238662551385554717515148584112226282395337664568628734954796874883553315993741621666412914414929368272189151114943515797566382587964253114181573178959242584992893656617311862483318655622976826155961433453986675596216228687415199396635321143791321762425345763496382715546744695957541928317361657846549573419125961416276345699854367181412416159167233944895215887771319939652654984519575363888424414989294462375499521522823425944794216877779347572412445983947243212496256141163238432635295451438651799414936572323373339628547644531717742521115542563556554195726111914125443157367355231357674693491872387529139243823825392245117265462717341858874682914441318925569771149267633557668234266149343637913766835523833462611971877388877212626616459887692332937666771997562922148476528912916334669521845458979157762642327555259555522817318326172122679274233423929727173387463935861376213185214545648839545313195753394623836428557489945737744831875389795821149155644672735747819658583931919235553615585244749324755829848933842963561598739516437211568681229433912227759639491496175732137535447333866114317489437473124527777291776468927438231284334198897574773747343244291533276887772487179926141496211643633682812761288668627991494869238194434389357661616979564827255588222325646831691731128449648624294676263219957534893571519142232536829363883458671725952251941846439171145661725472566531721646326921812423523455211172612161292217995191666723819675635261128441191141965949191862898484152747418228354833496359163413375133985233783479828351824787799627951188975644464917246949858193733872238318775429242521118781921795294756393633373773389755287514523254776564485857415152166652278215414553431694775992294241664727428374669912956824147321324456652244631777659726462615515424342378385466126316779971376555384535391526658983342232272135533715489954967129847129511729573223369488693889346986476784748454719585232334155632312921198266898363152545958553616477342793763871919131599273854451767416112814573231559338118751268454528193636276267273566736176154216579732177776821892284618344819829585294126527785618376141372589555871983447931977381382448782669173272324254689427829937928745182985294185131574682829731813592342234234213875984887839252459312159822262731711425395281148798198818775468443683453275542121128128676267279659419469544849911232131937213581589321118352794499269132646172849765752577244563521116142528671898843136962869684534122821441462188229398567169156743389642272849269557194413952951976866846259145751336522215689381121129848726369138384856694796397523715196139214654286721165422572149313291941547357231724556921855759628133771143118163792649517668515551572634974142287749947425164295232232565617651238734881595332183117486335987635548667575848181277933869727495851261977471411251436925216575458127184625518178327865918573146128731326224249845558765412698649264192378178383141777324112629967163673359824152398822878143796929824713698717484479636191272414736665238138132137222735571839552117748695884783747167566831969669355898816836172973132772725298953992637953714917315991757489117289955689282494734655732161826938132781262222548495312414241897311156131926362181294412192657233814649411281665313254149348521123163483659215461656979149839325583655212472247611354596833711256664397447471638287326446412517141863381781961466753769824461462446356794827745691372237539611428715122462391395916147355261364363838544429973355359348753663637638884876347669733879792541985185919326384349663923723196725941561218649672686539813332233979833722943173252464113694326379855933146447343454191662944777851354126925353695656158649844857424648725626679767787775134465813365491475861357862929427315957627516746245412619621669914959496465234971147995277385832752455575277943488374438856798957496176889611388947486579732211614252555897581147892422464879999479194582994433677212732723846716523676743678633935951957293727227224369153164577251313415176521884168966919692944842194613544628161889295821775899628228429212426548276154781956565454534232159846142174613636487956894593565423818223183248765132128291851615424695328116387743427574468434745664117726848731255789116523528761693484125521189815334784945178243343855182798762153876425726522428832167783292481643566836125133266127554792425851389739281541566926422122269168695271459612428844178436331112137114488388754465183628195791172196443527252775133799566225893928725517444212411837488855293462198312346728643512993598621913242193293863787332237757747422436249766423451183586258946119947264537546985254319862118126329725977727292428421771349443954441386498168497634121338771649775648541111585955517853894531113781413523969639279363844168733174126554831696932138189878667433343918831162589365767191524738817551165329555458182347238234115122328126312434537191979457628323627217813749291951185654429234655894261289313283885447997559995333125578222371585145983518535949533597762292898989488265648288896812791351597999873741844341399344774694977784625234978448991259527332114261515162485451687591482936575742133791415252224633252261726472515621324593263163588291334171785939935796739553231621736314265281379177913138832951339485798334247554124299418618215291361646496971113121439898795447432353453298785595212348631492716114135145992379334147512441133849188284253959538956734379997728416218864918723524322436671378861769391484377273628954549841973154494384243387626767517845638257961895962379542677129332123353981845727617934624569448418975245114598674156338615469933414568779256132961384929911289673194449996424934279126988354845698315867799536382499733262177293167623943113315365148442287937142829919732327498626899222759647315957915885565425399797464524614411297385282814717812258497635584253871645554715593134214383358138769933921643183292762914498251629165221665842584958813166421437676937848354791838751117935437394927978555323319811678395639115948181167174412414515459869121876785224935887268313345496372337348652653594375329762543414215516922332936267796194112156166416998291436775745378745597592269964322121433128462241984448627626375993923666322194831659972835288218857799198251262855665391358372389792365576815117352638386888883452818257452381567715342911137866347297544272977164132112644474111827288449326554466865461765738585472325351715639734793773412169142139813941794946687285181762634482568645572952734517313326393133829998417259763459767916887482428296285992866664446687994371195212274589643125471581949323285489538533112952536388328915784651181226125423276242474358531381891537262221785389556279227591249491913754516182967351778997791798547532675461355466786695677357913774277216138826666916496389812262925362645434215962681921743282432625513649892571139711223417619549729244653331936877852388311447795139756829886281914637941778192163183114212717851796316124884368629985942833226739215873694218683747348275363374566921479268711647282683835619592477328932632583132614237153571897114136342927739586553832738915871475356462616482627254571262672651551852744797233182653786544351211996581571672418646978929635793511793648376291845932896434123467623141557189772273427556645642938351333972442679164414755998877993542111126227531877151447347932773166252427381994836834865262555377841787586788643714832833578974349914317345759498852924814593118728495437288213975412849526278176536628391864747944132322147247265341477122924437173292298266896671644939393698545817731779864944432531996742812816945116314416816252769383925535485765574757171924413898282933614621699964283593136576722717511174569334323185463534786858867485696738814223871436691462698469691344286193646841525584499448585365282777424427773771733484834665179595279979159938374458199458741631988235584649763395631654441894894116571224968676415552379191387172463572714187343647795433898768313271446332449646126498832768354616358534137898872948829249459841656225283355323665548928294674237776385525495941617481855143531259637689658474983432135169583299376232314746787415538315282523574322413583115235932171929532769836139343739747834813357321191373913169834158139463213531682751118566719149297793383417662965439527362452279666327155684481534444934666855764749653718555265842623933989563446141234541958276877781511798191976545414495171615531864823235214111471855961299969654846861641233332213863479514123582451713413137567587162116136226475126892463722658526694648768143773915834451566745159326387973117662932393757967517238541458954944441667628956326153332954513233971493913226893413636811161135537522957341239638984644741765791523559261985266129556134323593494754531332618194998119459468826814781863462575734542815973649942668752166637978586467411556141815742451193753971145867468427574714155349271928992642296462436144476185894752298148943868246573322832173747227955548971358417214395888964264624628789441333175946468453826393512326891571872778178112861328537528997618845967924958775396528234975433473975734844598712546237433535384254286394524683644925843519628312419841939387249212197713694145363235211922279242241519268378572781469642676465261176817339438123628233573914455893185487596962747514993771568376173897429479265665639776592753545466333442831267592858359291144114559555627327817975443344677239788421239693343954978895898469551513326664421816598263789698575127468148588649931431684835471122199117312728918562959371423919814852341984646725569731212123123211845559813278793455281771161137313854294349762767515751693823256947612835928643341882424885614318774696771217148589325245939724398213112161749533149431381126658367696991312859386339597233576812352946923778555629732151183363721482776956555483457215279392931778564955618531239431212769284665429474187174323934145371491248682482118629411489399766799268893526961354354337369853176443258755162987818321641524286812757961352593781827593779532416662618717223612953672551249288927247459824549186443713154776639418159438718877214846588778145444792164738923163911924192568433334348235112831623181151693226636864758257139743667193568743896617338842389974198612141269795696765532145599831345881131881123966797261584797932572565273481346839282889638436761931533554117273189365314465325151433134626256224242344681529842838573156714219553337273895159811476367739414615376881822952281169944941719384531726447139255385721537496293139447874445854381296369647713992473336869937251777483234657133499122375751246513144553193489512195551213131926321274765252985634649388145567326231432268295292156145633615645111618158989932354216833643225779878546268134787958617286157926116542395214782516266252492346634424384288856382343318362759349271193316465369587813614437626616188847279744783887771943948979246283712812585766374144238643641753852915255415922361144187415193133292228796348286628359112572323961432225195515537642786163287946891297175798198369396122369395666793758899464976488354736482399823361829225791614716686353814513662267413676966539355595389536254763168279792288852982544167517849565345413765789329367299185943479616195185683493392473162319991524178843576779699159929689539488812145188351427461218746927932742775466566827332326322729324359621143666587482215972935927668336383638612445679213996853691774684287166481375638549735745111215835262521623595234326617434489684618628321642158266263979229136545762118355282762199136227363371694587887741561485315694489426733375412494588249436739838854295771231862241635377122491295841314513531719878377157119911117758653114556276644719128559456759411337937614426656837141965764634246784169627738739239856293922253797621315292436734977553542515352263322251577115929626615724931263516827577746772488684374934696973194929749777453137819571579593329974769643486141975627843942214957248356678255431657189311839898473949721729521767444193982655256576941934228267656556385942277434829466122857795961711294417815854932763232356961949526834141552775794418892692366329653382251496317344381598949245555393452658683398791322496242128482414152948514928783347836313136626896693845655375355746481576617628395677777631743638411568314718147391992833432475714732111953966738263961496414727276672348165639581427721364465462581332462978822229674152837749845233296452174171781725185564517862737137136113364293365592447434937252627257526411856111167443886378425339994282347437449692337411236653573613669865295649223989273116768852322193893215249882418698112923714218464434197262728331783456659377213242152298114183762249346686137517742624798437618364457636219247343796767495465113165931558171415311378462735367625915652916171165215625163452527222727979191962814594945488127636869743787738775122295858438213714218345197746998853753791763677645616752933988342751251541964978223987312917926652939697963482573846519597116559832135572821468246771654987335139356694748316336492231247467964614561676818189116338124986294441975175257782658313434686472687795677982261113435186863795572153771721691258443125382763183421261659426553113521982862776995728572675639875589249649279125171698624369856357625323813995213264242228521869711598344549313286722981542289847575115239723138775868415116447448498423634291123392366539446868888169537582926335939441769941415892146678774512251945163346476362899721139393116341448535273847374977784695448575756236821225211496662251261856996597326792138772422366285278372192455671163882579139839519748895243957489146848344666254865172473914129631522426913228573724887777542977499189114372223375361399178157519147871858161118317144953187665826138558327915964824496995129546263376237237111462929242175862469739615348222726879135453322184484969339443379211536672955614276195366544683487355267492223589874647915179439514379683782919316461214447518546587188988647854834314428178998981982883736144715519363262679216478576771633521247463259159718783698871312377351275555642553722664459928636214663513248496864135332726356484415331722354651285746466368195937788732469613782399242983542673212198726777559659634949956931353329595218155321724823485511662116698957781119191924568456888514526235668132322391486981662553223341736495595722131126981189653398748381578518281699472426216333744539231986751645432379512847239554373517261244425578129141959783334685168336477666968716294425328157591781538313323988799272925917359734162766627532615761954955155386487153311417554423138737296545893349931929151431963634727656185535511612818233814762393882121531333538262512577516187279253585841521167535596352638154111731453772915722333447216219624868839157628652522771979671474145665899348478661377922689338386356179175893384975688368857192719143461823184143179362983637289617286633879734114877454768864759774851145365983446495782473822358198161318282391991521254257224527398821827121664989643871467748242172127191292925734233683335941921159775439136936266943531739687514914165487754318793137552855618839812182912791111549893269775266488238462895935327115694141847667197339816399995231642341724437529319259949119689865936871786468857872478568257687923345688383237179274216472762183833355349322939252279137745162291242619462954934353546576535362746323285819359878467268498189181536851475624536372748595423343179519139675518872836619294512792752576385264218346631667132668315669393453664297837165929613845235876533966344926512876364785521138222262166222728947136494251949646222479658259867347221365671574222646739394211952416541742139773966923712124469114366434159332387835715295374747596784495633288114991823515427914221626658924736314222736658491641992674351287733878318314546953971395124554149623757598939618653672439941321386248188237826975692199725444913836286919568142831972413778823911789473565987436715611195811384598669817991382285114225879893517462396314747927661798219242338273334816563236943341933438415498312316275985798563657439148297357435929786966982152781514961136378777334538982864865749128541414962497412378248161262549815158319738442474472468781482971988991184362577249795679374917473381851164534319363275256599797244829223827199485653399124868513722453636164588843492282199556981331757464854132596233115261431455911292249852279192579262318932298546879327939115594418122252847165663463488845431663939143625121555381384915249476946723123484958728873455951142246526339928571385619546716554756165255891577943239276981951159478924536428231524647419625473311291158144279316729973777964537117752516672225984393815667851249312228241637483655329425837794526243521357563444241829697513139368972769964183962321414355959935441186572774818933722222923191219851185141612468943541122454138678883351565794627478851814971635613316652147565146584368315143494491279634134325386728927268221964112335347465431582122924916976192173468235222636123273811375571473184586885212755338533195997319712994687617645915255531912645136925289794892929177713754535195481187476134941547171792335221285622478339824712386539391528382552227259747828199818246518856244919799927376292534586529544826496486574633866522219129322346369296215559845633712443886398486921513535687279452643913251742783569226279918873334612596888212922347591316414633963886956617291571584937764566815534175211349592918918935855452678766444649879336829337952118646331123154631345875234244444679642314925534632216367156769597294465584549522571777394296613938467199797985386136544157948138729142927768939812473624424721194949618558556768689982428682214686713841674937753245122466488512944282239738347244269754369461515447427718811352644142219275526681419988938957925978829737529964142795182397318834179467592121849315534946264359852954196428363279435214191472756939675957517514446314162183319821323156725897821951146911155767692726944686391619724833319642633586648313222143273231158342127529954657685536892845669681567212214999632927827352594327547232734531398335442593387398552534126332427198745978966153298166591113348568276643277477824467332476615724342366419849273112184493182149146281533691953199583468796611662653518149921345543724743452738225119422314517645515997613537766169543249113318291627353974569629366158974865362693586974832669736471789265921271894883199621426564914284334131217874454177191149977956993193444916746918995133367982535626329163538685585366371295477141531587572314544857741766668482756622942548628738772187673985669636494216112148942929114554174495261471543515811625239369278559615278642336818129231214724412266792222611446641578331877335978854149741573253355535397895193329457254251783544491642734183336688713724896795483612847199239292162197723148131232495731549598323342813483311768353333848216641532739726635615498655656931529635344854757791242351594238762694481232431752929147735513615782663137394861243348463726643594727736537729287641769144144579563717746239855414356959334179238561753259695778268922146237956194913154913435512821645669662444634989616152546182914625375123768266118144152676759132315816265197677421472365327193596699921531666469192142242574834362323845357713555841317181177914524412278385371132434566567768684389888635614748469819336349144596917285186756691512563862444874519277916993491576411391146747616475283379522762593546556687349315442327138221684698591353818126262865612664443455623789729921596849337243774915239281875681934714183678291983628545941321142554552328211144154829291518747229616995938634716771753875493515158121519794283317542689428374625431143948148187676455862713766614439331368536919527284577725333946282324476362843592614792165186567231673435733163835115143961177555553719648812416927548123536149481567545332371878952676215241448522791195372738197658395383499479436273381227855344963449253996946529493549663633245833811547355254364114991892151729454412157867323767445299117543663346682972197826636915397756742286834439448686918912589482157355344132637411181479348376494959482719538127289557142495356119112723161262485171788455362659414274893215455569263694112575653278973378299281588667438637356434415998851141663898359636153464558584251956881515548874734859353641439529755293521166192768762731431599761671964265536879845956973113838918494153361318852826316785489641137969459473691121234382961732261425821714674295392742436917434226858565915393749945455111661278879692852767434964111343845472452685535283415617249519948724512218789216656881515636825861422712656277356955324196474333947357166411738213419755935927568961981339381899654564563584156174152621762635731118986861489382924183468784774247859629924618125357949666117825213984221257519787921175647811329276742343311626172529127889472527436661595449318215318949427692479243145355839842838271689257688641714497195124449911189694934675127341524223248145138161663747421367696395348438169615457751534636554995941155538538525252368933682252813654544841291258192995843952718297325831354424465768944836567796419148765142192994286286672793112248175112436886651742154141983923323593972164289234552213412196443621233177371592789165267254573123112314587117267323144564236537189444119315266572533917598134334813324744484119191964259938616831626949531183278196374374148262715297187292212186523211894985493555551854643169422311527395999892715828499626516521987694382391855342414276675572992273558182841867692832555444225888364391483193764754436215241716272764117135412335278129168271795142613842731856257985884424678835433135641224354551271746564316563647757898985565474319233194329382867934755625466217363619759899353774377177261247892942114549233934648487353847387817758795996543593229758334597535833648898913264314816858826185751172859518191973491327298995996645585377425366955396243673687917459399761498886284122328887979913243583621282817236455714929774189163511839469935726864749939736512625332853727348127545628792226863393132473663427177124748311879248737813648624578246628912524652158417289744542816498127284535335645442264584275578711235151439842727744933432593814174136839287666543516421444376298659356668991614658314317557222875167364286233442889937117651213152724398588176436993468492188192712948116675177995281446911762364426962795859911721436497151296834139935147726175338274536857155874123879289196551127393533896879284198392915529968431462285837444251849544153666944681444823491421549322114264514891817969982132165362255543438782235216884148613192147873729469655481861613365468996329234251154256951232769524951966411396319227259296493216934679339776346774513346442215215318715282554263573497159926215118733911241867115289369379184684853184653938837172592823117764143538533474857228913192695472189387131246245387784519351741334175315556684697243258542419133912986297259447225943564115688714185433418429484989915263963135611137245228126915282882895696163487668551738774761564218421838639893314986337368375477797147385941323325494196251754591968345913787199832512872188225179868367199971154139568253822378561615558218658114618122761567392991958332367311227248212619268458989171321257523588698231656134819923661627146487395244256245238257195528957982466581715126713541159513582937285822344179473687123811153528239935649661892755975928928121566194828283467843229648148168623719187362938977787237151887931487866642427585365969483976844247137273168394672852722985826972954433685535212467165619284113739114612535828234585534345489177369246532387627242689491741831213413212228139175337692734528976147142512675748456513155823956391897554863198789785147366291613142693996356124751552411264587632121219375242977681336383927493469177691885913343997334311127331917576442691381517774684376394261952822972357426527244796866821283241633416631212625515844445661241144325584166949546324213943728364345739255186671149677145964332437143632186731651487141873913634735691738176871922934753896772324723888572391431136365484853795856677941319387569761192487115874798325115724693872163368864555927962724143932588325478718285214177848966567756811796481136558817129419934299793996812735863313239119227378113817666987152424448913312914699882711676316941568391394596462724736916794623217982981241571739381228696298245545691622921924179717636315772669895357271854958849539894413956264414283453339121272872453235515958312961315719819475149126717895946474658478393761214298734919717684613343658865784526971414366328852915973533317533261631297555711583521957411913122713818132174489317347378419461579825186726257965321227898698775299853893317285345742962829392223564776386489953391283572382713453614712618123426665526416147192575556964321174344924654214588514973222765518328393317591722119181625792616191442266414386863386636559875878544528713646199233527755644236835823195739442724616421148692174484742211649675699959246414493736797448212396456957559539551838954713491367597577999226218589358211819265533623668133381882621214564495635126191136371472323335474916989916988362149368526381125632211272346517791599957414427971728232128683943744355827668677486375496179417917472376458655142616357355418437375963914234876768148394128315637888538744117242974278972329234521322819447479375754571819715169252397827627171489434727259837199412685527254845231537729146899181623533982682782346939186142913713982641532153962762416749965662254772471384639679392915167556828644254824366175878218185591297393179724389152421642238989585946356486768719129968226362791624365745214893442597887215141247169441376414159227168633624514869133351787379615472953486683455841253828133483158672338265345349411598987793516437428596695867622888331333961297595721428651932498665516176924851392425946396674391419982722687781624278196162951766299195698895622433983697124353349871873514138979237374627466113612555934387216452971156234392249667262586618652321247253651541538661559167541532532419119384811321415759212411285434126164411826399885596196794476592271629114165963581435939417945589894381192423745328335686963611982113524499525229865876118818586218226967736983915597231275212717384168323752289246535967554386385459895594743419581189772754665137763872763777561231416552495829593788312922892746639584427531547881182538112765412875292118717224617161722132324492245174912677728147736919931925647629888915413949216139657115386113887713422233756668535751133353742428963399766512916541113678663558752925357298161943442154831339416791798175251411626324536759968418628573668256684111244862526247764188748582454538599571483328157178576999846286997723244216473263445919559813616997333822681946597999864754957438815199996295149939674652731178745663518211343414524412293455155342811241889713841695746745256198277333185132327577245783175931795542482797417142541675742936598563517693282275595991411444848876378957679628628923781536463472746172336226651799343436227354528925234276967313688346668756642221757656571981668139631238312874616129233379973172252844918772695515515213615129928596911755338672161949316497612857448614193493238487878735371491231815944491576116914769689436128146453186975934311718711244516763578534446976452412137938198962243931656675994198749387994293673193415232993433982828169579333136347796945169975865154433158585413388732387184642135516917379379515421989883199988345725974968718118112455545543355496923669682837917772712452614549257314219387499651145998259211527579755916143155361387141275241448124121665918933492447949691967948521947632781785595532122327912486457643345169691417456324462485857163446363444491168635995518817673333816754314538751431288687436298354279255697969242238878572255212956612954581285932878213833794597897481659562928215192331138614597372389357592293413252733217183333543751321914638438623451541744255828544564255415545697752459141453259124271311177635333352746628191878538927746135232321211118941376413271946782382269775953561124387948644744262838813961355432947946681566235315399899154827469358676987282754313718653544796231416253922739265547596446115125878992736218113855748121246552892581198323723441668687227629181785253614431814871141527225265738327292329458471481545364772459254512947795945512475913436995825534871752146655843964163527398642886693293598232345885396997481836511385788472297512983181595956578423415577845965543984684729689183785862913768723857833787671978644138618336395948955316331443153247693372221619256378931499548549539357685745999718154994556788852426761175275469897289926277526334674343421257767256317521688426252213283431113433275379195254467813229727397417711924675771413599759369419263877495629158361623588531551989484735125468491433634592579115497226272616239186995799414499827943484241484311248461188349186548328893125423937269513393725927167581958331999568227673277277415913319961524764992913834615355289914336672329941881797295394932483335792642449742645347824178947861169717912776443647734264291322926947121165942473213793453391386732134488971151244557237745573947254514243645916642382635452959897227558536179438493759419599886832382111322579843256893953157169195646469268469165532864149818715215566619692716436655311172184861119872239148745872522453141559284251362577231254114811931733242394939255524112194916313356444198244579554184465136659149543788852742193543115958221533923222798178274148729762912361719454885999792372881962742697453312326341898249134854261981297517391255636355138212882234543965553553257171658593748131821633227637191664374363845688722257268224964116685821971436346331831566122731671428485526483813683177894689293696547952279677228247575362128454853555863988686793395795337439297495981141356825547625486235243378274668495281996375112216674464733521429334195487372415587325386648938421515395267664318551118952383596965851828886527264746853137672485186764632147813222924159176673669295399959462578421862799539466442692896569463335231568282117977713888291136793741484719166736522482921464673362971957211586571455561855423711416122951539692825288612941916526572584265941919871149325695448216148761367921685432361763444383917424256872748574112728326522786161278485317383129117831516676434459366585754335497122481948846792792434411391265457144628397387888996915249452689558581242363194259948489363666189262456233917199968563945873151515454351243246425552963847288858334777662311987869818967116897919546727137431977862134162535828363552848352869197131438812394337189961358514773463144885742267856191295151135615534636581823364978173474334137819937399381458477912142644455277545375627747869634543473987669695125612485492391536965635476844923428765194861822118184855468432683365271489793883318732669789471246685866975868889956939231499474929424576828777252242835691394427236146958599379391141772623487798342682934282997785626311199989781739236766238859224623573531912551967226447657845843452493311333112554433141994792892372183958111829151617639523841643257666424294697149848574612418849777863731635212362457843884171833463472299188462367694285162815649385433847473745579135718525281434758621639145829599822934638151879927483719815842329943498841324715913286943422248863326556269229191561111476679311318588929934582496377496258464983114991814372634158299672412965257679459313259464861127141971992982193857128669525817346199653744786791513626355963587836116782238191214485476542375324448649148855489979594447182662943147386514912741696636575941276759187483218812813757929824991678715168425674378359428146141313288372584713218969217111662439735361135294127575379894262643428429235275982781816315564751516222263494688831445577554798952431816414192224924821426482446994124157972523735528542916359885741285852194368697289813228474466832358491271353618461611856645977264253378853979291797736422915644764132146723285582718538951423197611688188823698599686474865282252461279486492126794645756896232878218128582455824238142697472461812868321775477813265421483266993421246832674635783294717437711668346647868474396829251196222941481663915249494516392161527435351263395458393436377586149114359578947239277652627456744644161351741165458775855443978521764666814352118242759941721532689486152567242197892131937463263562745188523223185168829569692984873927457351666724895335665113197419827294792486232975227144293527267126133292181933111443659819859341254173344615985928167178398429476784131797325224759625215266936583779616983871248169811354774363371599459331491738934841729155991771845512518689319393294474282729953994958717478395649422446998644776112438538663368594859122752764428632781129949871585956294395275956476222794685378256257653225749826528498317815548726251621516657522553758591588184777783678964829926853566262995657113434345931917821647682878137159266164692352593917533364549311972287879845616655932325368168945254111992373742245471944952539311841511575576863866553622814731621478933787532259166377878841213314836716873977156679913692287253174838639543861779341382523487171441869235789116196637849338244226697744437744318541413627288232249114963653939435344824729921665819969357771144155775518122478862644716441817326767417526831558583984424129411558499736628531818761272741677146387857914569957414473642421277912371172492568596339717527543289395871326894234462997964823215322462831536438434771683555965176216913351954851826645331384393551754957874999176256497755996722922569588676323563832975361613622395768319243312783176628661791327759169621651636957711913217793829662778718667924697414384213312462369858984748725858175862628246678915251521385577645243186758435972787267446851763112779414624139717286661448288465618148429777992914117218731977678541611157323419326669796218993785337926561643834164163493829127221384922618421889775129785377565737767931239843718116836441765869152655344611682679914881286142399569157834359583675782567128992979558387532923384819153553344144159111632316283646612491878568413781337198179736411446846537649577394998591686154923749587126215612394727128713166524613442515168528273688149534978969394611868559533955414811933724579435156415693923553611192481597248131646939156379765197356226399832792313654338365957856183212417758518174427498464115515589412148232415221815725225232688669163666524571316939285311395271624219618483597473164252892242932634574486342257924161671135313811683721721745629675777729227388915527889197416333514949354172475954598581498829677742271171284816131453156149255319519258142641892521453456179156429699981435591285222767397174316695853276839538825356139641555457263265249273265388582841721716747553648145513761953652593388865356653722734894554626841296592879753374493459535973941539631124817196821195243745916927689825326219951845197962934738173134622781682823623741452741483817612199512214869818475211144758397156747993466578377952786266512168358233141636331281422815964193766349535274875685319233584973697917459927653766191112192866978361764265432314114251525185913449537268854977536343397646583413986234411963434692592993315217734724783647746237428911381625723273831897218932319414955429667329736732635221745249134785331249264495461472485415365982232455193377179817759569235686451443366779855985816978974589117283337364474655434328949787631741191858383468323595611642624893465919914275184521477427633935438934885698636882486687286735514621536842132863354512273227959934732274882564146352649162224693272762713791861574618287743495394611479551943885947772176458617318763551236282749224661293224394136819421638756457294672138411325998225355719897577897614691114939284682839746315949387641333887245539565438722484936515981958182553849861621769468763237912739195713175929514725981528226377122612365911788919773925456932636636449394214533823961451673222934585536338494894532253243544124512632279763666346678345984281648351721849481882979534465717616125316587419484729961415945736476739312745483385214922115437875495131462853948454195925971272626511254245163882275955986478256934139561284296639742264575587289714398289322951553261791487196462813964682458837127427949131366677873544819771712733754125652885168169983247548571428231313514544696719914515522129122353753924322382473299723439743246212436612574527911893481781251386167228718712244117674739359471978566448487611433734663169167263364955518982155979567584824877218324688318514295556329381213193333365192366792938693824125589755623123468167435284895187734914429442797641452698268463136437282875225381386432151744176228888857536829529427375613773519686268796493357479652378283314826913429266595254644499544472855347588361762292852244883529698762255356729432312694985179861216217753219681431282813765895613343443383489184992683429539252728929327874279422724233382494572216629899489911228231451781579676118118121516665771578855939863763439465744267159499288356227653498596147434166295562568319253443271378184531372722269338584532593448989629928792794724765884251467122743239919847983262594242212382268813416641743684361366841933165892577849877926382459431175174634337317268584282651622827755382353381723558455689622712387648238391237345555121663326277569253219473228446692668874819644473542851982717583536814466611975672322552315931649216969297312132289614621679135952918819811217833142476741945367773432567416612421642186251568181865176462313962852874158764426773347252675864991384481996242721444174316451477718696964827671942119279287164859141146734215993111514898839897221272634958578594752595345174142848241944131811182163786778464927353264217211442868339954348549247699624996839122324751174534525756113192229378445343121776915142454432891441242232424331546446589943751934242836481193277444543446946328449334969722716839545668224392646248382741657694475319185719859252676592862425163146845567893447892517922977457587128135374178581122756646417413725144736378999596285998987531974968511676993544552566825517174798411542518654278352199263673735745672451621991458193726441984377411651675873191369332235658313878636827271994483733241975351495146676826765799236169182184662494323991552657533926923785293413398118376751136658914315638515939758753114294885977369525955535531337778319721671214789282476221753774371767731798919921656523926114442842937756553618255386731763916332546618357849499273432862946142616648478349781312211763441432242731972815298963754383548581132129664823165614527491531555396917283499918754745936968852771343275923133163157545761155817144342958414934279286991217696425463186238797679621628372481192545412281224222884543175246162452793912575743699624389449219991598762581324139482152294286275326148221582975292475862496264692371411177837322763377698593999543662668138852946695468724155625328794768561952151479255153844919283297491156439221738947619635736213667283447846289361839147673661249179441561321957261293331665578831716149833334334421313856362156192223587376651792131216669343599944666682173111262864527777149233981684694354237952236526227964538739641421558142376697269879212561355915538889817119883961719434156693291447868914887959286499196999375263472463478497788571382548686571383466555652452724521378727466698197565412744165771922181144761466931358894843231245259978352789198991333241514841431642541159688524336471427425488311826387338741231451459229379442316371232323927733967479722871193157491244227916656837563691648236435444675153688125941412268844657845878275575744526416117321139417667459351725986739788457221489285432861956155399768259833346389292835688671378436718124627468879742823686473488526818673386369137252587342718941179287558969164868192644979562341222376175292994262729623464614993927254516562622881337939912353929454693944838357386823367132898924389153833274896931521767919179838187138542628553813531586493127599331987192289659161944135553363785623593346686835615341319494176549527226552741356237654813659496865425366173437263116624132774211712153386883319143885683912269785167993279245842187934399626751649228137732652685628844297922446925158751157593416388646734571877248545245385588889922571632985138784279224778389891446575958572467767739424577745785293843112123277524468223646868389694463643481363833619745175126681182455936559145645263545832656414131937325495734289357548766793724333543513424394844558373481768866299839152273369515582174863894932342293247786841368137132281589161431343725724311977743764298195384192123792574987282299216222143348541582887149924353333943568843583826389997123873127836669933412396818839988264237641141226531621776498826141512294444194951238315175329821491818652612435357551667466999266351911394137477315475722119879181456578537123912452258418179863385485512534536912332932791567941112111436744736442188868183779668292798954958683745385973798542314972842555277969764856578381933689844985935429692112535325774734881752229474323392772172238345995364695487423229585342319316887258351565278991311974779195648681718331731437491597663524354447736482522932658958452375143464248742498973422124953472913155614172199296565913161959646562544333759297176222727567148232459684218642914261763518271834922938642292728918328163299469583324713723861937154488363274779679737584748959389238115923154686528492327889742477916537689941193625351281931795488535216733472124886642351542678655219689523455153677367275645448719752523458814665977765725124261534818362774917621461232956736796229648963493587882812727643623883321891368479535127478226125811446589138431468292985963531414397173917933537962454349235572529421263914274112852414767422532158886447125239542145713475561542615286132296813669915264711835421416883545345566696479636638199239872825152625679749158153637613715496581176362567212546154917161576415174452712377347123125155325937744953541572866254294574224733149651993142894134237657125999696163846543578892954248951753315861499346619383653419386718281518389484466893757643276541396854246534397765962239674444178592934465456126418355481722835473972948737463112297237892939449463766453515298138884795511357636139518127912984452249372661613866248243996995229129572637721214731951241152835337869422448628831914143687185984916936399627912533161341266598269883953934711334298855385482351472445562138821365267254816594691982665681244538428782225614882548698542766733316546115123771363152416137815951344116391759535723116862177558146924176122162724542851429611319165377973162132287555671811849774595612775719768365612135672837853985826433251751818116219698173943213891545991387652655965779438113421917631596795717936961916892872744442683812374345857622634723418218244899313316781561151544913384212193634241263657617975927998574265664589836963281352733537769981666933844822763638317618226571127465623834549844153826984218216216771495954745264729785478838456293147959352223366679377839456328828318834227154651315573672726345562155844468216252315471585843562524972555111753573594318952925738514297361659924434838522771159122371151233727355674872927516551315776394545274581796626691483162762866232692831795618824531757836587537968169188885822563632923175165538875291315788416111177988413796989154519866161392163827974431399954272243725955169417252265414329175247929435795696847852191972521643766274355251926376853129836742658961564839855543346872238116671678567424262532416218163965541734919669856989949621498655432951778663787679271355851685135752956723566214878898935859538335496895916297732239595756647121114694187691649119246912675355428243595356239924985525981744656159637572814339151252588927537738257183952515762695213734746396656251327912264235264515186754113622114914162337253379179235467154352412793942327848471766157452637593486624323274565174651265374259229826743331329844568654428457861771258498366291963448944668415762157889775135784166323713143692662346318624534278863444725116981642325864899247812612331425632145477342252181487991127938421122652287847262988962178115145228861171424235777931832262176591997769266159523948695723157239525758417452424623481555475614894976571939654922761853256748543286651627199373113975295772886122251459971147193855534563648661424399895268814966417522848875236672113464297138498837156523146523597192772593877547898239676719433574952421656961412168735531821948784431355731899926937599522793416146228622637729882718483993527297689251876568723368314156725926695511867941717875844342217928897663954543677579826691839535139117533114966355854558987413354244544882636347652972854475715213816891397151436643899115651922652311747217228975224389826145747219362122393776773738175512471539916355516751695941825431989172344116622847138576911896334953498119896738431679793943673543912852673242334577313548949598534955287522882891981248715376268687587543561255158969294929475274425687754155418815389334795983546283237355471681425664478159766623281253395593532495221824751349351167261823912911774973191934625317722834212195331184561924645389874388757471155612679738296591933682554154915555812213168116676737435286816928949941337876831125766493214288992691668373295826181528166418198789446928784933429465349427396785413798591938428819672131144814784361188454319669367992857321142691336465694117245651638693222529463296217214372278271683278326284424475815597412965989611544636936766917134513264124996882394752443611167837732384295352825643962317543878381565112762339642212826394833111348246667779489113434481454391265785316215181576292579838128231898642516927159695258673322885697261181218381623741313358593173746396996673681866467615318832282163454815521341667433926167252845261293539955629919626954534479123615762421936717349126334169348159371713169741466283618836663379666626458575395156171292654386541213111932773713642413169343215667197242745299172716913641331753843739749977388365677954259172793172996942696877426375679756787897392628834514672233175929833312199623223493489526753479646224251261457912993234666264511856243939949687412621883466135482918263212597658761169537485745115185777242567574254165744613315767491813744122163249487628489288776879176518325553681661287623979568163496181931537722227974366424494284826154492596641423788161841291253233386175251729237882453142767169448539744961261677677714677893437465693161781798564625257958374363529622461342612471755283481722675881235322712446642124321218943921585191776433125123474223514124978314287173534135652243569395252753755734172146741576196253471655173731784263724352834112281735742489493959471971315789438916853258654397386215925348486484642477641715136811711693158333256926262713123188224795425778873989464444949937984596195748368119173465947256242864232285333416865842291122821978991865398938173254142228653754157398126992389634869182343278247618379379719311961625423138812349954637484611457136334457726959254195559255995115369133212361481633866221447671176526615912333864176475752221151914862816844171348835989591278842718178978246522196897367322919163232281395991452672145249924139328722466412912184423586386163132267278384485679425871929267627766623432449231262557485992933183513481946951659125514396234253113853973458233923421852159296373331154714442729763279157639415648641221595439229993196336337925196346219499317238315458474525382562375235576644781568893155573163232262315595558147898128829294184682339642263492145159263459186876579211257295822891229681662695431229841182166712692285829372576721636576989829688558234687496463649953633655978139366161222486474576523491214753927419868874265831216588925883928451463156582115447396731159355454563518732827587625492891195178984156711722279431749584139157628666815238526589192363875532129998595171372333878561326312628282223962723956684317242854826992675515371858456872667962497153752433838293282769342799882554891428153837935282248119419577495197145927438991945311769181793642411467367888145342293254583851928574442721163115815969521843948367636364329676118652252227462115227312118115412262587382751571549282376166573117464417256995339739679119667138442681274149686737761258833313359399489724415524843234771155952194471628859545655552593638773271162654442731225689878549465781433352131673442812876318981268195793939757954947924848192412912688851414643222797447422885465443175512165668981669844325977524143763321153613168931356896569132412596268754175226345252252634493961689334214294794289796596191617134312972923285664285859754762121832184349331225647681491776243569792529922579516951685716369248364783633986982527231993971427747495828597299963951842711237322391429794293511284426145812199371241252427653311683789794954331386389935612594921322577694353749686797456761442393822562675816122965161745937822753433855836141729645275953696759432635989425757647698979797945195122411145368138471984956482692297384948153213124874597194575432855547688722344652397975368358894943965355561599778552264935279785416942366199279256911241682856214451376133696964993969131934986217338978895216599219257353791227279464996386877132124883817467198151468854583397713223813569533127148499493132567265929425486394821645626795637736932332777323263133317251262336348876436294411575915944853235545537522335272339154239386831162722163287569367389461582712999615115577923912254328849299353535516531451216314996944542773447494219539626447194117583996811621466911444319614924294132938974361214483611527983946784786181378658199481676557636465724385143947118784167599484598419269586747342224854192631528512758723663554617411643765732819354779614673525436375163287549425558691855595132334372723959556296325453768286531812522598485331497664787425981156593341812665911438127352188286997252484442815548296245976538746927361698685729235453925195864938546474858846978543988621586623229763336231991152131322725154861379691413281132911222871251279646543249999979821983617612886186725686643656359791921718745481633992456849723146242754355562836913351874221398531969152827428575533419556636772741395513225743165456224753815496818633155253211453758182994481899286466213829115815626839763474464349212372915559333742585271278797612251299642171549553317152445541141248173999744682893743887769713757529758476249317793254295921617677478128687621111421455791863265282254616725623282635849857118382246777549595742853377924241129257965496616344675671281211296934131593651751543742683586129462677337837734284414311354593749679315413763153292647431392243457577161587951964851493962879658552251834183254166334449791573988731585826957966872736342388394418573945612642735375854368269357214416411795239213361256198423169985614964565267482216796127849212852311179177493942278911867684886134646963335189122445846524114982889532687141888441978865174733384655821288249916754678235181642356444942459274365354795747354789878822754563649129992192555311512629785334612864519566349248122392846276144753912553994475933561312761331421438761434365668187381722531266792241649415444317115683755583626127741686381174911311247148917273289232761972545361731729659724547695514344826376726971738848728928814121215422564827168365586259397687896847156493274777876882926372723244761117851754364934241186863748714192151818258948659578327841427478211962478946421459591213777514436372681619842292366787225188928763215833471313575868841453151184154854661516813328545765991838258143753527823467665486124222982233128866446145473515948851232922571276583759122287957268879525347969591676525255244851283552485293921412571284293923447446625114412559276166811274789143727389376961372747923769862438245717455352232519518319841616642333813653391517346477556452972468773893936125388977742579914743117675342192141411939542891771985864166578112943435798458262967233799217374675582973371423395975416386532356118756194995384324831638789239866985116574347192895791621328952423343721388789625169239394997356813121328547218874718123475432463448264266745685527259184416234564339681132272916378256688331634665865756293193681721573631623217452245237562377461766847112641958394275875579557271195713856893128389149641219125766613759455697495518324663341999434855977812511927842637983825411551585849848613964314171372591281658326713396838329244732342339659737698689939843936725929689814861616725292559147372138227939786421422242994186474115947187613572141575513271782845345317296995555546748932213519243345777271341114213898825273739582753855119287638671199415225767154713471947594252156721376932131899813815141751357119364744319466844383151257231395283359713471298834442712547331661391155445228341151735223723579186536973435239874594717775488633169624964221184539884442777696238428676839797628271681449975468958334541965821139923848764891113657521688849412717231246968823782321748278111386669333519273225216585727454526739122451812336724385511373282653857984743758441857746428214475634383551574277727644653151684434669862831148436827747472962275229588563472794495524771422311658239541534537835334455947275851662125418739913333546139676235437591486367572635296982526581549814739272594454651692418399231317168636466498411552771673271855329194756982544349743127444634779416743474515887423849238273143162556865412841792787366925128988153947431858651264986123953425697847698353919152467247424112924622259435956325797961621341566447659426748734411789718212426145951354983167542929553531467181614311613341632653599129842911221568685419934612283257883786515336423361266411947614213727662182377848792886952227244842741773851199326673854455437469225616282488514731977197778992962865887824983876741266737644484221781281332646415461168283766485554382152344271815227494385214152577898755133627575828689417469872731322992779639616237649674961677726796928615786679189868193949768771663581448924237994148981414583616579113843696534419987793245443967151566485117512321169113512283544775967715615635289344466723565284696874799472322123959234981621935995284545243844282565716988271961566633883597914422353573123235389271261955827762175272547269961124462251328613417453383962147233522883839584751255125129661322256631468238973174954315812472253951483569637663295328364237981191929144738685891859275331951218253458744993247116588531834352584367838985437513644614446318129773199667859738883386392345932336389784422421253299798759541213637833146735433732186976957582626747913278246445438913147781337382813718151944111464441333496952472323555661256753515817916119795727119975182527513125872322633567833562986639151362455858394363919255147544834765834645116362463324747526968453454914157179249636331491232549946643816166123794255792861279717717226992712162289324189653448577175544923213683876922855596634142562121464834653969959927153279826783152572911368275893734313652777411486942136186998951454514556146756679586267458511466429284261659838861259787465244383275911167961179857462357436216253953291727495919325663129376983169328441775429351965684341919764728652454328811284986549667565183781834694436535173243955697323242393416558912931217542318189564193777277612331482311239761861912997851298368692173418518351552923972622419739413691942215515869161981817537121128528887756391873719641551327879459245814192447335345452484419792591613721565826873181917375214128586164436492958619433272432335488946164388918966621895349766259339257726653178313997976555356458875361669716698335498365242136112595821276289537791651427368955356946721598984613643618697612475343125881986335962151763718592223656115287951158776161369176794134375428967263258581245561394511371131742258177152364294594125665833615187985563619746154588173494121352497939473925355317322194975666179224434499662687921598273425284383669725415111252982374417475549542333463893881933842769263988965595264425741462926254417418522163149884776834732337678948439564688341623914433151699331621155891842315919218881283646417596135572756454241599977285887374433452317383377919745731267148476729597249683647757351781556456855355144613662832393834931263923296159154933656786633621331165755623295348867536531597939643628217319959523411631123313212895259926913258287268583463232153133718224366398937652563138337449129768229496185622647872422296482811813857938777821166152754257383663722445797198334336885572452419398389196682839857355546341948198783133993112346314226943464447834678229588848828967954891286781615713573721544598273827251979239115925773114784816593247117546249242623699532535125624827991315758245631925772676982675715952329143236476644128268426948682473882849446957111173262377612785714666444371386886436544664625672227148625361276624267111644549617614442649697539754957158778263222824992152287291149462411453437398761232954293411743946437625719649829112926167914279428998377689491492255586462228348683735217173335368155414272217777584114974262733492435312398792217542637485991645351936974412453345779432276533544812947322748915589583655373325266757377182927582922318138198716882748418991414739128129146998166883351619714229516697523487284798469618361979116615344754278695389476933595214441433531984949733843861173748968666657778263342363322512123226728142511792681422231425968811951621992587953812391167147747218922744743861565261312865445332172273837432863143834211258926749511472835417527394476768526588421817432219251649932213454229521327136923692828529538537516813321582726561186269765341945272949264668363838164719334651533217948923756435841151571473519639175559681657768583347344762654591922233378762259131365648429527914848245394278269473881321648519523454982661662578352324817583222682689815385511814151986588373365255417566592997617948944932322715515765465821333496618431533216465279466583291486144265978492812912784999581156717617463182773636982627267357582366225436926818175666186323556121846382251349426222364248316678349156525745469833124543298333363148661151753834644434528247539218197563257648561563437659396581225751671392912323434965311424911534698393949352414451418443831254134295524992593537473926549112977419313561837995425166173542587825427422558842278465425597131567339748951327321448139216655544511929113761641116812685536657938128421852978474491865319636719767739338884887134941891382219439165335811745365599961549498691116711349772687173981894135429418189168311679623444546338445129165464759755383428149215968497484817149848491744912316588386136145263316366943473756225793463456161792234571851541453613673221494572471762368959381696728494379943151282296419995277566414854433543778936655674736186318592556454562683343761151527522136677267811395314355147414668715521596715165519747517222376736749783428943898899271721712738687571337298832187126144218945282562245949287116695525586362217154383913684153241661912441219271954923714216516539685692544854783578514454459239613215714752636726677662831987672471215267737135244977833221498588968469726298263282766857653634662495732424544658989642238662928491699441616973611983956446426521776561891159883658523863669651275539776496839791813274581544441299576279626359818582186326515464328881826462438158752256272944615445111915262574263787451354122342194445412896826471215795261966462785834197486524142625933966225561412216315612399524253773819761141734428781568796589156963824495122993945983596526825931913512793686339333947348863323736856298927643677992796912616253172965194179971931956378517367275357336735374217575761831965675312763163612725511939728783551223546243197631781167626431567252571126643756915414216761858259333541226389591215495364716224672726533345713766739415676431223748611645125872714274498569348477644694141166494141523213542275726816458213792883345566411911789449327519515164546212535895231292121153161399685251952415313115574592696856542173174768118281432322796617993696455163633483933971947989316571733681987553373455543963665343116479518376773588946574497294159658353366212773672235625136557759997575392216991811474633415963811374965279252231253462213139126364968429768645143161839483372394364621151345953416341413297359417575276533932261397755126388629768558766996871192943983966362473881292362539574773414236482151535275575356834512572194313328248573149687155297244427631384153413964194129342288312772813549838243776476195469619581167921223418853468374912663229195844141558396132157414542373454423314524162777568615349383313766316161267944585471685288978965632155434159488885316478197854661792979865284382159121274429757342233212699185929633453412463231894639182377155548176512767186232669124475817294936465486536867761934623618836768867151663519876852636724131117135777541679979322179523777761152261592644773386264248919775931823653882446553475546645732445139914433592189695162995832551494511787521931185239426545547636947638836468483642455561722637745574134362217121758398292165834581874527393943534564973829814335125841239393134898386844879312427132721921956297984121567184311897543441596413892366997688794998898961423741686232369874176936483784741922762562584372368585986128124846193162783349664854523817594971597231654417444923981317883721987491994351892556218696695547858831133592827284585149811399478713321617367196922373865172433552325355256665124825747113724862277783739985678654421834816416527864749347279125461135635768866355547243965416494284927372233239967132467312954537751953582914476779462729431342875333167189843545755548314411853388838631112199313148623735186216318164424752488448193715399633462323664775812856152811193688139655616243581177397166557758396236925111812536314224256342759765693291773219424972155189352174121238242335422912568948786992848685359299224655812116625225755877383718558638759381429991521357172433429754295742536129898222543542482258279298489642296467383844463789641253463992114425548442412649493642275551754398469868179181781935755419112674225159432771993938434687994693522671254654537696558696126413793946943499832149561423224291642471627251586352474457923994786117231514478559161739151456322468234173746738595125665458722618698835793364652535282745472986685978622662818326836616831516941767583172129314574665813736627859371973164193171343334695589746583646587414476521746625958581125272846246443825788435336211273679478379398434187253113482346241639632451578413594669673664332584458256719923731424387897745335328912586759693226757112674821655774425396545865348984644545365982647521269372266769936661812877441568517237699694123412219298127915644761571868247565757654426262831978581948631269399121264574165771341311151212524753474466546335449123195531241783731118172462342444819644259513624356315552376241118363257947434174824619612632179311883321548757629423967685233757752791197666723556963821798529628733333685515964826143842868793956496631583727235841849982141936149567417429879139342773426524623122294667464178454722639461196324836348544547162136991784969232341733978563851535252128183427132436249385125825386782252918576424249221354663619664151455328134468922971353336314441615733269252665624838165828228226979594776154358175317444531652637412295785948216466529194285935858647176386919732674514796778552166658343388319657846143226236258683261958572952783781265391952747336214111442376148813143944918412742626231534355682795953243998391427452443199598616212675979373762689227946823922334783932149116124679213715178929623837549291257353125153324162166112398497621262222225133175131166481727118979147242995688431619293688975357465235542158827744911249137177497469216933537316716116688115183339319266576988762153626548391468561432134476598989877682855925312726383367877416772398121811914851827399515821132661416186367334813722491427328367989582448787419125897468987881462755851393194821153725733682285188361745242595234989739546853828865826181241215612833876414887412869643565465858773635589943475518139311284212298219144774445422852278328552651622622624571528961362554933895919558111168975564417845218715584397935264446355763196672662142762688766441692735349639746968979116265333297334282776773137428693683654557228263711288353337197327718915597392481823629922653255234511482736155316219234611878857779311355839371616269617598818155652439937342283553616263185472187914494729135636146647918433446119793489723526393459233186842979617783435162782547185618966192738752157816557336149391154621363794353118567227515494128473564229837333161934894588182158453673823129511577915669592863639686554169621415914236359346839162929191624991229875466235145687148491583964424831335695955936396775519257336332973713155146776136713535611728226243731647591227713852162231118754976281327184716239213927422225446178125727336875342121196821424453746989248214983352657189636183916412132744824214531179425443749352882276999769574344355189872651749922112225178135475223874831315136961231124599759215376956986594715522276572136496284699799146949635635742449676215914746757641614227682316958863986272963584784261368765828933951514175489492913613912358279144845575188493891182466978454149364558167836195555139271373359169249526376327237221942797311231178451828329971712267141136477582289477925182378471598557931358314623129958921265321624699416815126135977682251975996534758399752492721855789965735723425446571783186966285188998152227854838777425756245515185944523829744524113694634327916894227236192481325187967526254817624693332411942383166115525398994167445747473616787116157246611873524523577611145561812978242443762184212421913488176491214551568478729819785677541781873815119437983145841444346756236216522859841234372722244195692426465458265245455566568872511172818986633251246683312981175219614679715224114929355119634222621963435933677928483596593528385458756355634557288473884654531583126811373696383596233535769213942915357523693944896169868668945585575845279815162779413217299235447967136659791246899879433427364622145196361279719179624898921466266614346565163275355497362152356782625451133571765371674514698198376679699218274958289362222127318322567223892838227765218711126668414497499359424366538997927398321991654879391915127743712868483253471261578856617321623458387589611746287252662112881293226991515164833967353344569422816951617957646569116157483361748634321211489311786366647244534353711275779345185693159151342337595533829233598919778279188322753231574576363731324812783493736941156651718163189652676527753145979337387717637118474565699741553257237671925255671989176574662279192153717288575468513998293894729748594211927176565262325652295625861318969185529119612821321999412272871243924261692825465584219589644482818611299257558159234794634866832879124193392731399599416672199166114876858862233273582442615417975982439172914441251517196634697725135242857159558764939353975659257589695473694734941538181499134746681222532592522526727733429173197561749561947528117349766823497116197895724147968326724328196486797231854485479321668994896239639543721325576445573777396441831267584627947147387552384474154774972291959792139416852913296386258714381587868579676353847694483668155283878876445575612886599928521451623126573412572131529319793432699626614931126811497425466986461552729811165414388468769613135726831151597612274964131196832894855255591259165848566414762769418277347999839332369492132143142633627126442699292466898641584647513365844737721642872695549813126796543524618691233577934133343296256543142158758257363347852197151513221261511219822238628186225821462222999913834513211345382121519887482224751793673616428466152563899526345633538138458227375356349861389378517993194175355212519194737288365832363535698731665884742343334951619922853198374766462668895847481616357252216567851576621233346634331524297434645299665734999381247385733137922731153871153331583172796172836151831668941286817546668149139235813516819117919427788997428126334717278983364268895797714656866752258843551525525391518184794647196515169136925592362218896229286238942588923296128773899536351925919832381226739339747236881331615314331321495573485345867639733235524741766495649745567775527674838147256736815764949778183741883874883652271295346117247224977736627836879162844219183648533399385238315239628824341724872175824234492673827474189224667788277116665983375688852759691361626885134458835254432531192947458643298173125231261488225379913839314534542491472248479998752251968562772198853821625376612258284719125294934669487928567473453527527991362886158121611871985384341737265916998952273257719147191138746324639664219659665285582198813133624179876497776111961346988968461598763922384922656341964137845524653666775959134868334346944392217267895182795835883152555934381345543783363856677432356535762696633952888111473512878515892673214118673653464628725548156171745241423165366435894262276338767931523793737391533236594889177559315629728915284654842626949233649772926958654963551262787794953131493362824913693648511336213852191574981279656538625912742488142558416764954824676884685348673123287466582527121185559736345613639337171695497593433159726786585581412257133137214247428586756779918526675493182918714319287622156534554843365744118396281637516155533293274435224895989149818133158749733434266716732742618919328412653199499766828662375414213182721188389611488431282271595817423289912215859172551811426275243346979161927871831312487553481297259559124133769334654658978716362349914244573134553643598144927865827611912312864218917581745452397596224333613943597222318176138371851461951833786312494544463651818448635399119796745861425114195137596726578426768496777979371559522147262446581339219655436188928442625527698346814212321931767413814926186959334578989248356563227917431123496242972634677129642811733265461313562247235652591162116229146289228232896868161236963422443941684398297866213578179162165962933542234573248439582125429587344199473891242296581883756984783438225154585337383315423962484712358249258851138642393675568638359913175616957555823521182198387547485644992189136148672278469234414195936631435345131541882996362624718416978152796248447238134353516224768491973624742863975881887569148394611449421538184725221434511597597522587184769686932146823281641662764115772371923721259846499251782626458561296852665597221726681416883853734589247374963412523151881855345856741795965336642375182622871879535262834211485158341257142699267663728615727941929293823145244833454256399243249538119571411782819118299523123663812474956432955211265732615992872689513624639419476695313985571377699414181732564915686272429372873169825931175345476432349631376792939524192369346252885525549973248969959427853177737116818789296111443935598779799923685571472723198653827282587664262346681727245581563771276888449293158783729645991488371524222113753622683833795913313241145636638675373215646536978332449532813821111329364288916424188495552425722765931518878652568388953518631666573188349224722887732263656119721941136171711472959291613287114173156368381279563657994133555665324778274865158942411343673298847129817214628886471826397428374185133449353168261548221863147511527663653976371317174451328878782235622349421758154725317921331972766748189365953912419119145448262693252413776812798491729674942518915473259938167235832481895529447523352563524769433834133874797936912342216192933529252657656487144391986129555212346672334982615525345789859132557115324926816628879586475852762984521764513974732164988767814225957884284172251722553882616152884389611948933255581161111122494328144115971866843735177517693256634643384197279926939613743319242928734352385983137975929823312444261271886539843796647451789981958752125589433285148339355195734185523721461955833428524173162644522294153787411227891722849173829528855452977149315514879453611987725655277122911127499481152628991265552814218159388914211358219476724598674564428986141325213964551481594474663862988448938683475472831943531134834578686462488615171131458915189399727191431288572347441923477412565656783231551543279417848234868853639322481544343154982537966225367577994674168672444577434126461733225564951844573639684731385545111542345341943132887353341723617121597671748739311544497393682653433411762212914664112444445559578427169547349785548246726835474345116378572426864765344917291595585732291331826316717186887438962588179945946251731322389277642417145337339187694211486522774638519667555568622937237396266923689582824631311446923718533611384446165684444415575388758771873758153398486344821168595662685863643223632739853655652842817846337243625453624699754343167918535422789754426836242148541927134996889584415598363434155193259327426521212546244314133136194766772617294167288239264488995358515362451937889124897114479117378615689556236674427227843931425214468797962231785243867564342637458552349737952493229153638666531989684646139999961947891782245719546326147215382938728841576533397786532693861217843314493295187574157565197578124228967298262665498798141597192451271819881381733368347473785174331536618686654312448426951948927638711593185866273553164497338452283757229395856684792376331174178784679626677446669349335255326662235597116515427845788842412455967831216452358959125991848633635354627219814359873982248838876481468243221918252837843155172434882222589457341173552152637934735117731172759978886471445586162832725887362369194987117433433872292543574632338639223293218847928237923284369715566729538215312114937213942715759273413365349347467123281415948244268922867256868925896341572671585493139857976377987475264215943597977642258117412834481628345922627233588541656496643973197337845841355433397383212761145229184295223578737719143343913275599835382933515457743646115985998223376254165467788796151233884661917445417647869288941712435477597922375192478665193414669453495181665844575517849253253225134879424254637396474462147795365346883187479112884749392482523718384392364361337617982411915336524251851616736748595145535512415481441449783985332995927651816958353981311333425663629138522624423293882121597618325389922768433559493331525817212854983563816616477844658916476162122496255152211934366527214176517676395916231926973334318462634969355838278818116923377541823264519633395216921616319825246822975865228853917645753346828772311972735135764256421929139676181735293291292638629924933561742848363522498797839597319334595311251847686764947934955374627112251678395726998513174854614484817216545972242933167198731567393899927384932854365594184683959416663218636183166462166942416116333553261476669957496442977934892957317794451258825125548942258422797447397172115652298382825136463536577699168652189469933482948339335354773736861627988694489882663649715443515198384587268454556611789319112516653452913688914551171265746818456215273575358167342936493264392476114373483672489227861622831514259488631113644863559568712886621714383546155923189378262678394266563198623469893337937278895628228128685341678754415223765869819164316822152599935922836546174464949655549483732389149932881343474258723885333854842755157187358775125699387355892177993286276512573492319328258616287479492682328814111189266528834322317992398869427495753217581776913883285416347725929112467278549782214946224325933559539785561473354367852188731598396191274538186265211827296228488914486933448514936629378916717356338813931278269452565849545256941796324734894157484969854462162113787484292434577623693281634945127854164418654748482841239137736133475444722669679326667215456333345569258865553755643344353519145715758275951639223931548328297124915318528161311514842487417182767916879753382667973187835635424981282165248587911668819831814832638136727148227264921677245749211539846656226843242491899729269647573647959335956772179616732256585494944245723242747611229125129348424987981564797323232226254376575118463375594581361579222489724466636387333342686838252137326961164145954424925924316218753298683738221821436377122597381785722224239899698454423526558188393775328115695824178129828773628156175363262924399122341547379358428255675711621267513815719662256541618682187484698233144727983895929992767794452414558224634781993587429265572982895319696186379181933482681442941545928638514924185938134428272493115159622598944218656432788517968943434798114478691145314613322645659141628284372431322541722851835161623359411359383346124627234634183742713452576164482921468188128326514116845274384683316755447187391232743188295571493829146923644886288889493971387112332572167116863824169953861228152514543559559248382333944277118163556799981338457329911823568668686789429179299525439347668349716451244871298612246684852875753227958123144211596334851397523498594351272611397987214964477944766812184812879572655223578267266874266292182919213731679388647429553539463239852671523515444879278675236912656879514184684974521571936494312811176143553186756982613577642212738124372868851611253114289312654477196371244331997546172594265353516196951245281734271523223757182527242863888974592987918373662289586576468412591239217513947146525579687771179111516158572845256372128496364366172322912416516687911889971937584771412413125327727384697896444961715415994925831268834647396587534651465698654224235429579534238741829788862348511377311539335114465326259645263417973493462756732398525326958893519723252193881553575493387864138572245283939222646657493755222652859614298775354133238312474784133735294861255797952649356122917927534193288258928869336266278634341817318155949326268625267581638496453696735568832327712396673661385442323668778461225326658325119729522353415574127624397624427197167133118165837591455922828771912345527215143329163171169751454478218497341743435995218368979337499982777813471484631236767799268899216511924997554567487216488629761124812868277642254384259826464792253953441916299743276818846445324853327316495189937345529536291861426371244519325629338484692199974595436525841246339417265379297565756167183492764726176947542615257395515114724366215296312367524851411459415435942492997394492766554857735444397191263896935281388961548972516539211522431618519623862131195811513255251398612718633912776939711387681821781194284664257414641586237687843921269857751942875761831331222573248493881882982599641768547939385138874687464942641491788348859126779833171348696594865812852681186693348361563257331499266854566421259453824295532858222868956953126419939513332452726958525921819543238883183317698315474483532918749273726294277749424383447556673911143985416329819212834923199893382326131233641242564299441726859883956339115571177632218564231579145846782927612544781218285114882288768393935319298389468736935332388281634161419747329938155829437583438242257491354477652241882481569281542892946876234293554558365419622798584836732841339367838319821619855234938536527531125326985461648582441486385374286543413731141927984315833983322941259343132331723572821451138683212753444676695257167616992819934422244588466518817458563596211176265914172234929744425667414755231456294996842923138663443764342899372443888479385481468375328297737811783277686797946352361231264429572347425126946949622816815291983827229513818122978397859876843331344422398556759281998613885447824444963453984542385248782413916662271331368965563358553418589479716719412113771348624143446331562593945153865487464178966382712565452914947224892115641377632543195938494354548964487563948953863147214858285645951521789295487618533543987111991817842313549557376967773486968853262612191179694157593282446118562798559917296468723376264487159224291358886448846677767261468344481912444486562163994839968327349263376336778444439187383746618384221689168121543383286438472422369742782267159457264827466388658434258311582471979337615192253575796413239254658576214795328144867785255233829714649442635438353342878414832817543423375774216995916548136595196342429344376628354946113717461916527251424915857287134814679726247689121859122124933716484149138798889812388624221889391211196855194712435416216633826229338995796642715342152355214518441921733448166713259655639655539343591916675726857136646196377299412145751554381855752974494159711731587189322528598686995236356234918285152277332279281472727216653834738632284496412853717824655299465323469148474271595696964993146877715758843658511487914621277944993761588476415555161581758978332535734597642896548268944195524193934215485778876136664951558499345384138632889991933569282621448356121476151211786282584461636429847343285419894871468228691415849726225169447629798752457754815955537157123879832244735623832346456454623535286691242561876132141211575956391175341481697845749166411815689484729922829921753148385778561991638324916168526265829398545713474895829174357845635379198665699577238143513254224952155142158688613231373471836628745212599153959921375574435739886543935139819371684814163573891797189158965813813937754913286454742466325534162323364736994764559921544483616616272562862456314359741567947713787211623221938349191723681933633298148282928279232865261259156153892291623519372117979178589949721681436926638952838681932646773492873798658183777174368217795733629988249223864256399165524414724442894966297124523445846788252447686956546475929536647178655493429235683551452214915535829994193661665594464478937735184528134981845541883188221818876933851342314534513833441238969743914266144534325247459269764724592662226475573532758668576186658188473613392443231836746315241987254176398198762523657181587893155716722429297593782844375351554116675518285616323341923673847522121111861236787169821455148914772949943367651143327568378962777586292623859478123865776931615231856768113859175178732465936214244478398541471167788753351268636896225749291114145625981371238938185122518186183516217795237181991346779439932156128576914383386966144646384454931277156756559146869542188658711377396882287149111147856966962536339149332799133198691778821175918525758734676684847682685744186773328475284924138783633448585921556288171652376641884234277589151917586915833855475283376733421369977424391473874128719964413275689876779264413577642385695941784536956791979933132364742514391871425996336564914254981417179429259719581322317141782596488441221146946438815733492476178819232184743121741286858932619147713618267514521235338439268233162332546467491492784996258663811271891483672254826455913635493458134112735451426554197639468154991682383624951869737599116769112524119814956451294724577367216648244544922237713367255372531316928999859441369711347576586492335363225356656133992276867991796193621392231166253737596124512356834655663622832547858929127233648722328398889361832796632473171698944537861314598722172839593886845212939174928874762898134838492169117628162983755853561175799357517282727568153329572164253927149358156164422551147916337175771196279895668668457557651726189759114619437514127458593662558989467241625789644243965151257254724829461977857986515357223134751282924759687861861424859714579672614711513531844292497839612337547176845559531654628691468557325165212947422874337811239978432734412666144644495545353193569348895159628813151228322919829442497117249557643532655761739873971389172216918234617391876172154718713645155996386814552921944379185414298581111636119399453571178314126842185546552476715868218357489823571531176582112541177111862982585155478897238267427385172813735468213442752792824269585926456628452223421612596235176543466195291865133297389433364544483335464235912711249132716263411162555923111731396577461836548825151299674264777127848752472721526856346664814591952138596819345536319563993525785694463622772983831469848543685223691894542763911338779379923557552544336166423963679214362391969521484682968519695971573513322455431713949732227719274358387842938522656317595616276241152211823344594362747443448316184762663153357649412652736633185518276844966121213323383137445984892533231617912556497198896331913492485662561943646728465755359875345499282552734624367343115832991499777643267865351575742497713428655615367819447538316962156896585961558941616696394986453431284677397293932457253615842339552476827884948464632845374996979829371426125956795348861466916472111915843783644746628224349744528382542128582529263624934718348778659686186125376514886884716312825686546998594137683491721442515368665846852919288138324258355854521126487143555527863258965221147861643225951333578632486614127962785899219267246264738383891291781415211648813151332945636117541162916522316457237329835941155612776833729363691624126781439747328713283785411383334579828674823994653115768575995238384157997571998634438466619561725142265697471637834916491637532386118768193889983399274336521174438318369874667751185127495632319126975998513496399845774893812326495412721836869315421241575917882478183791581743626239998243918777817268216719773212451716645975688822141911827495129213949916375969212178929892473563161898821971887389418735793236164942167343914395179287859166557811175698315896978419121153618526867551746352325281229366276711837134586432426411653659278421765939594112116235963395228991188714944385759943563762923814151169599492947663428516257644724789125557915749219355976245153713518793195996231943214955753254839634458194614437856128133393435673629847471579378181145254562678959886218817622182198438474483811282232252375568858456816654653668382573524892847496724599428418433238379246215341636791631817836854144279182434176829923367518234824462252335739297147546922434746624385398286136791469758866997692423362683942192838499249741548259916281392377492836185389928423529569128529538432673894762896412972574383218584947658237962247352349352553672719977126397282188632592779636326533155627289439584646933269935763626816131134846426963242369224585264472992837229175327961452267961526196387336126433258741529617726125435641852634595921669162986445937515779217682125169425488615182257661872859712368228237814695743298995335319697939648512914746446139884333356894162917156145246786653794119753865459355167924176273764437366432249329348581385631913738523846992991263756314531233851795873841548913857264368143816643735893225839138195118513216524674192717523485637335472763671765623118542941579747727435443193751463799436672437378643838273169412942781882885247669284143539594343652427845587219582489838362468155351877531177133141316814132646897215841657464928441871288149424112664449867595691148211175553216893758369741263341994553917912518778276219661141887332155414736882583585848729114641989437633512542663181978565168445141215635541266833568482733434968678279196874388595887231772278441665759825981876955364178477431241895842487333987743691147971972777751557181781582133281981684771785176911261584133713347365371873555434832968748514376894397382449915527477992148592187823426275996668445836426214163419293532494574714138534778458979964683922156277485861652152113232283839799999135653355718651522269637694555994492718469611652781959776568549991644561897657828842954467942152949411358555935973811184923429237159495989153435288391542922287495615883876261826371391459444718183547865255658494428333297778361815942944765869873166312638934128976781972763467923568319815748947465242127916335157451474291775834796858252938562966422746222674963354232572136663117873467897926569953673252545413625157862973481295759326713448525144122684425416927365688736175285589915581893562356415564493551944234544128928778725836593528925651181451958437329412582361627419119794297141634184479775314512345914283228648286396865574712746728111768372484977514698865998357716321326981277742248281171653643135549178219422334976758354628145211429591963488692961218699995298934886722415758594798362676642397177586275213315277836765834399784552892514439811344717767776637153231877559588292264299465566728269573633269751135732119694676149948434469431356352275145928215854318911322228695622953984999791359844553142437657111631768441526165312953134956231825943967325427454793427922852696832132659446827176922454724579111526521558443864966112496687276469267172245586937158456988924419579728863163377895822817638647213791717228245923514996223656176579361633725382952873319984394971179686264396461866639858913599143339256576333473348897587567158556415689167369425583343435671551237765111318679469791643154767734613841322695777773632993351819447446556371319546872527273141929371163735561269923275842677289117749773244469649214191633796424964542161566551116236998818534845128264635572933977464211741138842622162547695778623453166694386989694548576172783235723686517765142546187276155457636974887114765223741926987912891763176891835636246399123719811361434155713845124815321813924292731326969238862573192465891524381634258462624128725211643339528632384399621612818471711731296475883578118594396668216153962671345556116428165396789632742548521996929185894979894713165242233279974897332129234756822689692569995612425731812597178997363979636323379882824989313229259989757813727292877516342377598854282125414976443554292472761412195567421554941521529775542626254241663353378234582941391238783587919423252873216341822763238185347939731984415665519533982681428192525354712111947647975342957168957634345291651333239259482142399916848665682733465828967521599195967315522662469225528372743672993754927595475397669168518591681161459948156492538794699573461379127441257719916939428191776868235361744362344157272388795543472888569494254434175169419343557233763532654531237297737369851993246718431478364851577529487485176832315343648369662318167281264997319174742183461212197254958524297819339969952866761663411231538724399748392254653559367571142384393855676314662724124446151975394386623129896121233445266291183796135719627229449942437584521694688376215816413948439134137883292896579585148626961898232697168678118119111863126168113221422114417948712321527835257644638696647249615284329123667222179418464883475328374519568678694389224928287976952321344669973553398635338728154619795929268352158149615584178298211197599153291543458336921372198246916662684476358447259524324316342873155794684497785542323855491629576819117484241429819468194541543113369882838816418122834281698348556994966762488829867297714543173892294343339256862933673191436944554958149293253287384827898534754239272619659889133226275922154396419859856241613634771711915643146267345763115681428199329591363332336753587979829339165172483343172859193863614715129228169236321483819193421663858945831675742425226769239213393128464631826546311128897439139342598634288546521947364245325844285728419956791819682749599714419539857222111695289456797596955655712593846245861812845787966788172659976448438188312318256268696812334936769142266997537718627552979112979648467857926349697831976391172575494651679395724993945151451945242542655372378939134782664778116281555947932126936672847143616118561624812536912133852715384921673362356564854828698424316611766546185149172291697319655161871522317347942853838472788141431544862234923912988335479198112689971927116416381267351332824374733241622788666985943624927959679445189432175246863354969177354823994682321823727393659434824896277212227933742485784554189464373811482433874975717843139626465415647968894122859236677232236135266653641219918213151753463767739166256237426898124242925384271514572863588249949927242964216184241736534299759325589382817123618922998152856831761918589197124312994127158366314963246392733664866483712447387327692847422459637586314229977338922735369778795285951434291795482294117168246984385413993756362984557557379756523887876518936984514826132562299838279268213578273528451196534563724611168779682764592514579664429435572477415735158581587895297665293123735284117626367226821664679719123849717296947899876669368738863616554142478594792215491994459375253926671667917821621466433557748238422463488293954997293822494316336642187817666154165181249879265119741781598676445564735619132657611514515224644536779555785352354868632268343111576465428994954893671425398678111824454583637877649566418126558517473557635673941112739399812625621391427375461797595794143477413131297897453176239187853368393682675486373411257942463899323236119211733199561683149483817537925331826488355647442643228635162845153251544523942294975431979297683127235524228612946722652721555519261135345495814782369513427913471211954825373399527913248994465855526241234233411964969742377955699152884471199599173378142481736849271421739439967623816333849681725771423111398215134821446955295411956159126695153133367528321427231729678327916249155991576253466363789126371364329552715538839733264453529458647486582376661796239492641199492444272855159543725917837285464817287761754358413599171693285853447728119223563662838213765566152298986119881721665698821259659687594593146861344776291936743982491692652444796111111319722981433367619221925913458596161549336234242767331784774932485842162316627935538142312445728272331379944732211226313972951636944358344473486397343478331873681714368427481391829424337736461318572323299376167671528822626482379634645258439236899319557698667793257472517746889759666122892227774415756248599671452319515376531223345985614261154549679552244668528234462995633936981551417589365521761818524554478454446142749735326726912548438429512671717616818793762347224645929512667468211512615578583186857666723317765915786127423527484568561662826316841713333344742432627926914842375694922178756818447892525693434351255293853285688149123158332576112679338514293832364984192955448142257861322232721248573381571352392619954245255189176731339694322413823733728855736547312232315252613432256349778516496619171826557949362278267337832623134799585358386918543743668929865318494462336424241294217436323523912187929956373831286254357342127296616144887675996184961111899776735498511744124321827161322942338784533693887123762827673811645555546665631314183385284752673272173335322539512289536511177124251644419595592951517537921443693151874843145391816271441528658637421756713612194972873693158863455146389685912632934425425152265662616543832822297264261617642627966553724224411516155299486987912456569135662422768762989258715394714179258629223546529122374572768175587242653323242427291839464347629797293665948186818267261691896193349957663821479635263219493845982191498175618725933124621954929216935915872712736242649565768431485553571445594276668399811398437948549334418648962418518239816415124162923413176899695867561964469431312788453728396188174351966276441282226544332715872614488295658631842378581117196413775153224235293612769698952371968381526533894968436329198282646284787283494949383382144344971374478132141581394472522224673462797413142967545841184955342576377543494768736461995137313346214336366251914136674488416259471448295453185878122896471425268159249849162854334472624531246324999862271581845876142245249222438526162518516637997717288756844229583166426693899535443315843662638179655729261899922474239855514853523416229269277242726564644457613432472935353124288366941576326878162537936152996183547641335453926966137246658239411288895281438826193278155584174665715318637964372772242312594727836892446259771862144783269974723289685741944175273435123955632734914431256583211515489285294518943771239939399362377814714111853923556742763755165189457112441223439696445377594114317884267762788679763749993447494591431898124175237983452562734999551618613954913694542398227272526994252381832252519316594973441367998253556146843963537723297245155612262471137535285939914729826921647545137136923931657244194556931286151239828694564982116538225532996998742268788446923656986444486546376131162197228127136433143544154495131466678456161614417488811284476199761166482686494494924795528222695435143127818143531126447337983475191435422179294767177334943826198338178535975298842245195566374428984762423875199416278489354742579199319447261165429259281121545615252787286722179528951342314437111456911921585649649242984799321776719754957464161741117768163552853519199425969246754879254513172728152871166364543522245974669162659831287399923821248813627366277457827195213754682143393271962797366613657574937415494661827714689854173348295727657422259548574174213422714598843286545894617231334291767168211581237297119294845534354298126441274664817171345885726225642246342449898713636557279368418529847284141189626122611228237493686419629758833347447439498681163985714293752415286149463379634222455439349715831263514874729579169697477524637349477535932778599383161283513849717384982939163168825514662174593764694283161374993417464425159263855376317969837554847573129895197366541147169254633242148641779646933769183447657166923143752959899821645421712659852547942748448573413981838611673337176762898343186658124125933763419352355286738442741347497472172446867552626372833826654439516991675799956156168661955772124861812493485367842315617341144162291567934826251493222678398335642173628812658358641226965679184412728735917857455211978779241763615634734469158327861976149196728318889161691896575223821915329569174799341434295175346971723118712361845663229892651373516826583965947881953281917562863523523751554179697439331123617755633454666213349285461681598743843197297736391751467543964626147693353744947117896791778854182264257755151139985186664234698588197983813356717489193338927758393962228375721571573491192156215125454183541927423426283746328146813676956645267124611583944345361248925782189772412831449941863668274659198743374975158761246137554381558447473527459353617715439782841474452915964661729765149651359354624964951181712279792713294257217172333254772132892372672322324465446586663188667921671942174966336838441683425847599734252736987929695358391129737218752425913255288599989861519762297223364948369894478611855345926473249872188843223442354146227348822644137762776619478117329595321312493332897965452196552483491798638739217497294736918235176422315297578368764432352115918133967683488587818326438959489588135791578136376964784487559636468981642146874199331943322157431956278342434313693964529693251274881728915444341455793193641849614256396171658234512372252586232314255279223921615687825899872219128234755718239513134719381132375614962359894451753267976628516881937135615667631511342834275541897231999438413233711521485581756697833443336568722117222816322585751615263971159489554267497153681153815122395752731182558265968118595917232774335379215585394885879119459962388365496115962121634766423143415641928647826753423226689173865326674685467163975663643347982482655321342957643639235325124682452336595732394117221432194154548789822863839578197223233197676922168478382855312985425943826889186727936286683887569891615582243575424945451264453243653948788217594598181332147455446211913169251175163278558673163222395934314826524131417741492862719199781151453874613532995816522577862232715496583946486841174783485613696797891893492584293297685553924662228676956231432744365218252555784299949761284838698564975945226536678165192182958156574421668629539745369679447149156647216628279461946267836264641357825291139366835811376536155623379684731932884563225783433643847299678412946158998571869415295552597645448587591471333526626429228494654185471478326316113471288644965449852212245384219928233352235238419797543899453642454542341875847823252149246924314326698225741115542231911316587964731437428775123461596877795187627338749385171336839477617134335536651658136316711912977318586651291776934571157313775938176734219226554485193511568316662733935337314766732717467126413799123133783327853262364943346769189713562522196897323511972719499651548757559283541814687382755124354932571228541242234322568168431273331335379496658334279919394172448254927226455154575953335115148114777588463471845743129212929718153356566791326424567634276472866321693657384557257933112611684447399184478838574264718282291377124546173276469175816546488227739289581411949993284563515759788189489477847622925979268333737345291373474523226928924581873495546577851453651737244182256398441127542373443481613785453534967977596662152277233521695862524582725728884521646457332199329539827677623834918735497852422817632966756189233597634575951434832343385711436169291398124798283239342378148367358419693377477983718914624454147363122711657672414392243536615436443783493385449755947878213853363442224424225114336312885648618144427973376855448431193153777213423276152235961758157938443295228494429569651661686142616294845293373197625543819129157232722225685968588817765415165348215376412619917829928245558677526922751775984163172328173963731214789263848663175525165657278947823142425183454219398672843281548731818145683732957713573625333775287635385218222579531791923451882129258424795974742254297185857261211866838462466418484269469517168334529855915182419674425886549766837264391843774832866657533469599919634428625875973243995157796116359391962567344885266761236679228117772441151445519197533883669643291232553419812669796868727922735728995169462761343217325739626856773654263944391123241999699498129115653774339388936638388414369691499153517455112894485412642341761941759949749477622658545397778462331535652358981939746219211842989442484378831437276431779288572559964117298461169686344782928321536262791998397133883228776944444543389325325748967167415821664126213931425456245242161672739716189975315769929273183254713269873752216645482675967266436976561976269837611963444762735964342171218443199219834327136537375476163142495487343295138847819152343669721858914161556232264917212889875512353296542846258984164117423129285574496496468814946611612199361361699593621747484237922183373546676451434353541954692772197823457468662439759396133329267415363967891179317149711472512163292316412159976355424362398669216268549469562914269167741327655563952922836623711822666844126924234883463124155187445492527167495254751329354434583844875141611765912522787257289669595881227897453117461644447844718143265556779414683725785714272812326523911656314458889317577694348147877958157414388968934593463896597512278484842824412374352667722814589694963453295236528694898585133158991985715796742771585779987268684978954663486837747268399159311184925545795599539126511542482168471363254913313543246362319989417389266242984132275612794438978248481698568134328529242168917322466881951444582388214486272947655821916721397222838659356497396374789337538686319364179825326959141616661558635994338226748718214569553225158312628349241568148853755814117595365248381973471984139219849678613721649225837597942264317219336218622654971732781115341555798819458248768834895353514329653421791112275133811585253956686442286867144754457645373384855571224231553267713563478598386222361227262586412343413343284395658479346493393553793996145415172485649444755121383224217755389951621692195623118825564974828191762143155445948642157539139199381394588282556911976425972696584454859569126724253942685665959894598374336146448623929814532899513693484157963665576368441267677495818493184919732953659371413647141829792957319545117229992142591853471824822135514553283213787579327221691473223358854276545779225257267186328147369575693686953228422279269782643216877122855921652583872717186633144993222931348333974443185286166548225156464449747869857691193454519966699136269143146326451346535667721975296641446711163461496135977133286417853769626821553376432423394279947841644336292982635275986191533398142241161652424415773486681551161382474512823963821267663723447113253125773632833849811848629756815559668846511515314543565511512381342732217321844216381178376469511754913453268699823625748589313391572383673565559226676689344755586839771378358388817743291994979264326484816245355215364859861922888212266655169734847264235562898719771651725823143454756758169254994498678369187437376341119521527164121756224845521866152941173588555797922944643555948331885427741646729935944575269217369571116554437922993922184296129247865312973595753787534219452516137714725381776329824251841344224651236596383427954556991985942468636845166697433817131314533898966551533532388518979977686369551842511761872671485641298438515144192455578531557487226276974152983425774234863472665694751596818342268743534175659829564969441732598359732253396314954942261864383493698713644286529484719112398255811837625739694967379221182735423512481724566466625416394168888453458523721967327452392435386262941315178786994332522858132237232952334212134394394927232161635443397245366241456124733524145592664257148894683659514131819471786224274669266423881636442656565875569675235978488871478876562436436984481228433655113613345766558698956374116755617773587674666688711869991289492161723131884533242826816723899635157271699455661794243293489779652589145547661631756875355872413925132655723231594769158829368538455447126166413488221227887757974271272433717971831121881272364997125483199427552212982587226319519977161954328894213288287636332568383628364478437884927912315647337332548627183461963871442745634621323175735732685543852986584513222618641424529831242671158917548967742429481427493951913538811518339526425228197612929433787489753315189358316635341831735574463388467159218394979388999819142321626333173983933953331117131821751793276241411471537427275328932884117131376287115229312385564965399858597921923299226651127157419378739754988562252127588135766477175786661896141715739821514631176943298436234937917314218325768174318427487981551624441772991444134987758432989674487531182793834944648273444199785788887229985429434662492216338639585312648458295874413411918561877121295399928335545892674512645378114938552941665799556465764983178414212246383172861261849467968131423442363867927322665971254213541281735379868733532947849893539517555143896156883789685624418322733681579369227296361847595592418983545687962167562812263432432429883381821283594862737932341949395428445826854883534639714111819445275528783886512162326357248643536186446434737192521445262772693271819481769894711249494617479462136648214356333649164842564975591156757321791185823931635862149142365258468118299337339428638495341799951522898928979269168618618628356954523916811427673716945892597443986795612249517396742912753515346654822681582378951617496989474684827123892463458761396185881123253664432973256312169754497234136365646494376117262222129566923881366825668315333962921531386927322523681473322391116531139289334527592222864551126837734841371396791413412838636482795373711799948738474539136611569962217873573227839414353341285163969268644839712824949988988268711967962114191524797384474822235114882567276735617791132259987269845548839512384954279841537618743289723835225713467748484792879524225723487711661996384655879141687759841432851629313471175181228698963636476341515117297724215396442744441566236127354454563184388649644542959177551289185322245798462928175855353564139371825959939363464997774797889638373369654845673129741957815394414552131145225385895114953855648971389663112263124721793193498998944474956131192427491295739882278671893441721724197117551655272248778618244222373319729784387583218796314783715833576917153982459731443432534651792868418662454944459162326941551246987953274326945594495966614998113761688393194141632379364646139527252687567439492958582217489897532541927853525411417611738333187655564169926829374168772492363115235892435591882582857282671325164336978915899749348578148493951412963523729286816261345837259484371961243419163275298989238234676956669871181145211735719378659286293224442674628945349631475836531513664736465948183684672459476112276369939446745184833886886852629817656118322698698714619143677984673227736178296735173732915893727256595961897862467188471561863954845244912935586935945557995613772528112273212435641344298373515991813967699174524519191976284863467881167526724363126277838835765989354294895622829136653371638261357277535489478735939583729471174352342932548466728298131252742278915331212249975639493762667324772394346449596966411112133183459227832671861311194435479144798624124228151342112554973364947954229128374136318578239276183396888946718581233782251857375956985929541455385945716486477761224363145532527355377682799622148267426273878413944344842476433425427831991827843289195731324144637843235817768271137859656443982296629161856171564562372486868853147533414747465832278521485898914337133886739197964825341199426381559821727514111219745997777343287741141569498158723315545545711686417757949257246751264315982126718876393841229974953488993988395425158554747327232349314636242269728115437324683855682549549592628913347456944183291213232836217289199353161445175334923419925687833464771859181733629962222813557333565284783141878295758648412955912495913671537815224232427312951164421615982752742144629452911341342835448851772477533485359845625988747551413764138916247335854874186225399653689285499636578639235713258912515495339135977214378345559867157418537546373282143736322242913935141386527578364563812155244271657659256241922197632524374496557297567236322781272587615432173596385382143744841187611194584719969175987969724724932328224642361665652399313721131983965654912119246558171632386257667776225135379521662136637466329751453898696767699399115196852159362441632911198771769752265634944648662221977459858226478492167664846199147257311253281422653856641617631813987998532283348566326477373979966219814967974589663291455643551635133632391734229937291481568729394679266184248697885491168189843637574517586249877192417137662939915627514283815833462976754185176691292821734421329726458352338371214987557792386541596374394435893348399144554324785882987176876188691556847165785582296929214388597241891364756877246446891515445879548454287314161347437187253934662157264324841466226721635984431899744121536928412391655765984642456683283284797691413562464778532561521257762147629393824736485978621327255883174471524299782163895958137612145736994973366859349176276472157171356641321874763673442436338151699683522525934524533516835575647837827237667715249669862825786254622977244697921716256844268571321822117224732952164441918665217719182492658259924172164428231611313584328745226224261711294894923517816342863745434787925827255678594271512748227568299526619712182345946833165543632978565263884491593681993747324273155666645131852816179646777995781818851544137954558577341293662329765642271869123282939965411452592475312962932345162441865325323239927129537825173727582388287932562329379949718543212151354317316397137527795657866732811925924795623961312216185144199537121648645372746316995429172381463317346613433295641512175462688911221363386519464435943753262225664325283969251252476739876152836384692975237268974519677587928957138566386711945695417158945354338952213597178774699456681945154536939572443348319341765215131366562296258254913587885118356468761459162152375147726445926863151231758366693795358616118117676741979586215343418448244224644711921559111329847598122555171636325686528159675668859821466264915526577146777291961856626996599785789334134875996275567489814164118139299264177268635647619454976278344483129484152918876782718433727636197175358642817615235499227938965127855212129585611185763977447558269366414529778394278527668369111135476392314195325362892247643279176254223444365364225159743978318558391645149976591251839984712941192388672655712431862126254456654695216294996642887636147781548449383626961889183715819112495468381519145179338187577264219247774853795574793713545756318162267824491376616818117626312123145157487156777192657715157443259437661772242423744216386598832968116225895826525396821537216942174986254194597519651147396126123868139787486427614422457921895729226681855714299467831588643262296535666651412747279134624556132243586215113954735932459451581944868835454728471765629311542349123475327569184651776147925231145562822729863354856937217282634447237861781997518213461135315327475715938715848646664923423817439316726939469244418149592217849461224553224346883614231128558463775985235694136357232359758325615924689255945218296659444328716335332112959446431973221621541882395461715664424419411635335846957662613231731594447237162153172356581715166178393646995264253733381571599213312924856996142826249566291643115391247967759715455643592555377248136696873629651376131688965387281837194646175137826499175915268896723497878392233467798587914441217713753116647339441185281512352964319973457162752216326218892113464272892558971394986394651134584496224561472367152759745568334641635186357911994576249925424235683525479663964473851132525561875237919721866442739126911932211611162418229513665514185332839199338413187759683562249416857244456529218351628348689248338146425891643221677642296616629412755982324368567599133572895867211458937946363122481473113331251462145552738387348389874246338354721941776142332351158732379738283271153996227911177716833753777426171436934257861684247876945243937428483392666521215716431218667874293574221986312682241959591897214365442727442434667286931916184365124253856798112182277119314947586473232229929516636465938737667669716155726831594329267638586257427549274844569181454713499457414452912868955764929984586146625276761279582411762444522645725288395685383265366719187712748582293782993121352266111139746929542324378758147126986341914996182655764528782523852987778357413449717987472311292265263462268615514869262513691665228822818283743548364112232834175195489595971257433511475352443212373288377394595168182296352153492326359337787129763568587611222554438127338277153416223539974765635968518157427631933145191517236325347418554526515766471489264723111272598541348721654618179412117927244322197199886422373447393652377456684645213163589518389574262282256989124988642842753564697117697699756415744729653222314976923748287475381893956691628854324852241741896213441196428391267255591382831825291273195341235315339166978875449719765222322429256489588556439813512861583332325749239438694736442158344817444319441746795254179842862149127382697738917493384447242733476644693567139277216991441799316151784862681399557971764326788573711324928294716413682837751752216641295621644457223112138796642325823854947181285546781327254672942645955158648212881134173576845518679842399649489735112346342417143469611482328743146943516563618471968364523376196669714356911532447488866433919741143856254338936576264853173597423335323934515346452692115362155811894251358191839675355512659561356826362956988444364297499264379844977776982692737943168141111552368617117146927677524742227695264244265966888725517273595118222513159285929853626348573244632749242974185915822891212767435452345677536554638138881934927582751717694849827551169388328849864278194359153379213633818598476747938891925718227229939417786462647936113431338272361992257311414413485144141333516834526394335834255246164299434758367781367628565598978223511399779462741618228551765851367816934151213398292343139972219155126246454464465254667124236559446947332577152979448515663262736266377563563438748515313944142439666124134665821829894994126583314823636952527267133758348398267618223373214335182977886652351855154768713481528715372732971862773352576972692157389312123125135534189547334862441634588624911947458585872288248592364516387654728384655712722168112369667688269173479917253712483679513269342785941381236569144322133128877797695637179852423769221395446378973153275947893358725364745231343191826556774531492163991199229421294326425994447932716915134264761889597634585247319146399184392561212321794897642536154337498234797641658296396428995641969187515843445125155333454843261426553636769723115955618188824378447322679341624517686862713875552584175816578941972791932723393743611952556456554311234683522821284389823496986755413845363918965865486146522773143121147366394323864635438758955189674762555685327475474593959837642142662878784896566291241474584238787576216828526447251232455829412325743113264693799951382889574885223834127364473856129928128151542483351437579313641187191114532287921381857321534932179487222623755517615368513321974772918185521863214735816814136123312575584192534137441575129495717778128476318773646315547629266992582545264232379885515265693133586765726295426631147615838775754221617879489136547125572677837193271788784695428376972768356137211997852469579294928638857824277959313575261467523137353683615775942343782986118361996135681658542258293312626912829543837965837356653937862152478412442237178574411978553532638692175519353295522159227842417444561547589486333628771161131143314685433182265413177755146984359621555623724116192661713463338442847193295615486997561761461928969813759435516272328414572388335344581534117435799986777488955432557168556581776441877161251743581692854432814525141882867917785935195664413316153837153768476441857673571595913919844935153395943121172126653145844748631272448733124761159635781214121215913451218927382956714957857727895166234393167926492959559571651961577421526721125913372276937623151128173232862823746373841238532682722413119257113843647981484713937941942451147956478148994232463269221298627813534523763568358272368591224215829617313883662269618324496537548285437467695916619923359745254113286554444766571153896242352846836961688598456161479531219664236681113284876548679546586239996765391571491252842346225565958223418597898687697861756986994645115268489557525956492364424993651745472192189358649941439831469995152448716549477144263945668812781482799621244929492178118711672116891834327111647198159455974191865451994589771143437255956365531643489828535417846629525181451297724291318841374921664234592783218236414993351592721919477278758764155913683698632916531495685499553118423721965331659374557163234622855732168341168842159798169115128198733899561619355136826142595541358152611418122876483126151822813724123651743791933959171288337564827843864326641147678115399929794878632191131681775114657629275136882569217934456854574526798414366479592445311972635925697695269672682914896612155618879319151687269163141514473298913131276226872532381281476812218919342682199138756981629983472781131449812618177414494475636511297597883887841566295419212989188274753213789589252777292254437154441791964746763639471161621342832476845294753271692479239555628823528679529191147211849287125177359645893148232926418855214822744785631434445722866258143619442645844711268321368543352561711998437833475394999682363922243446261382737218115322763641442733347248437855668633676384468778456551328484464694792334637995739738352467623779277794325219186811882835663346653426614153493167982855823363147823927214794538291895833464167734622827179324245342133134112887359126173922558727762333783122862929527132634824899932181371283552144719166177767383233911385134414291637318444759352953113366684551332615841711529866924985431268511513259757231272275611851415154541428519182657956836785772821225767361578686447533748399291345613191539864187458963726637199113134934481136131134526655492953962739197164295981121546733439542673615668533242453775764664777165347332495742527814444319584662345773256526574545583611332242682535637341295964388942468218912689292111616866159397621254596262164183375632469161741999922381126499565318933533745232352429745158569382213583973511635312313572462596821764229293339629771633986942421159368771744387661798433473549957665392463515123985774459112147543315385136597192817954352313329632382524445827264264157517736321631131864273456641443658776367472328777735941477897211291344482874497539698161893366878256584423721251874666517377957444485422695268495619589457114171363841261142198139873225667997413811483144598453214763188388219264848269839796396288345169121873986149412515541376285787334133295697524911311971383917828343515558297777241999964331939122813317189131534811267431171614927256877227645879669843693719146853147861399186369975663519391675899891746547118682319311528578132838583143514483139998179112422478294275611841876819117933684651496263121744241256821446467138931621665391968441968988311854259794164913315793189343633558927815252551672173117873445467531335814555788118271279636372915588556199961614842337787619113823663314839199698798554544291434674447862414983444252796969512344562997349847935816912799462145156781156433692166294343251122133441642589214267666388319522811321842495639612496276326521114125984494238735248974223292357233966225653382447618117496937366624916612773163172133668836963263467496455445474933459143797872466497899758391732789957682842722659362553632455622287799868433511814938884559587185581487198427728261117784721574213581943525446817845112122959682315522794352257958848193881851912156972119124118253729849153482677922434511743144294857837871719541689652525849426713332327751966196491515919413196452534585211429919816822632137997631814592127283445249379443457442659332527317459928452397513979652271446577561947994132126428892541363567578361159426452127294983653414125242132343726317262411768259543121428384525227731479258666564919865251236426431784289382343695926939352628269714111638923865495563873479284568199362359347911253385486527415274523772435663923532453817853635186197936618815634365945352395125917746245732418559271248116154672357517451819475439635716881141978987287235753299932922745576717271411345447525757578436895969285344696293236427311768452221653747429422373279937486543471551272974649786195947976816576171789444595811511226756722158198781481355679558669238284538216612465743284829953893563264991343339699146912227633325681394559363588222983392768416666394828117843788137973742828219479434932537531292987348115318118129586675573144942355363762988454258428162437918214263783451278346584346977756931312572174817443128111295651718937665247912163543245945651951889419158287535798871428418782839752157822839542819672395587654347349441343624626666185336374312612279136323272662697314936679432859953226461555917133256754855319583828644837192361858953874136774874363914965723529389485245888588119294414255291242578142994697274414332198246628869933818973521364499298129121923689931487143921827323292413975968752394173255428413824396367964342351942235863755464462631687578977867796774479467244711354999561755127416863212473417949445745832212724418838171182794347984172966119311724489491766329343313171792145384999652641886373564858489914473266852773189886513391794662481562995716985914594561674796126316713532754648952945865311247778558273457954254114123278541737317745657421698275614631993356528484527325765758688446421638152149429682557888278155212228395328171582543854564211468533287667622581253994832215845311641925231428246871641748194629655697312225783498885385937196884273243256342254581971852414474761297415832344984455769331123972188512474935657357278937589874119225569582387395155653757537851472858786871542449463454972187675128173163553571357147266289666929447827686362844239851664679838354969867453556466958124916755925328924745932917879867431153437126848885326271996681129712656426929217646499362431885193549556792218768247244734166561394751243836814246386814451996768776235838374959583246183176165328912979985111356145355467269181761115928593462667563193889619891188155941552732322832879925142254329311423562543671916724741749229827767685692773964779619854556545295916313486651533284882233834197461658865456931783949112795277717735418122579774882757434285115318327412185458233518247186828566119881872899388186293294783576775244356434832762175961914396858416547988772694474341635233971447113774621287296276738777816138622387739441525747657134846412128431678453415447666396985821524943691354811514917766769819485343816136538441191672366523662238236818632793393554519585853615636718861884866379895933266162351385592322188755151593717351418643156861233134623189391326487674934323824771769979163629777198957283973391356657453269555139948819425125772994589435159866163121595616521493241791417413514397658724835598774975542239475345995139196661386572752781665493775392536955654739534788937999161465365474811571995375451674751637457249728448196423912398352948854863988432775147255235436725175849465731486425633137516196184723489974716559795432464739553842626636782723666418512242112264897855232815726814785474232566913914414354457961685945469819859528818388688345996174648597231457422134436941675251582598494423762767441724771388122998677469553452465498497286486966113661527929679952274197841379862477996477648452343382155136674321292761337653586927285523368242677872949852173593674947497175837978964857269232295713629518426223557192131743445564839272441794885583412157956739189963496845765564345269315587812833694821581362187316336966936647462474582382423499192967763791834235685928548832222253672915275457731862777754447655218517511799122882856628141285719242673198488322241646521419697622281889353936951989713193458755755154464249749452766544989935862187491223151884689362935255736718178814129892928987612227614952293268914795383617673273988331459184199384157978768467414282165426368474564425374374279852246681116561546436416889282155822863975554472254441888326738483367385445672253695494595394443141882226434983345168647244481785961951572312688287884673438222449524747953956766927618232242453315582738432597253283224294943193968366668427294339353647235426121153639677933863291872687717599127529321432189184292584699144196738814988138915363945767156411588719553271529646478996532616252617775958411544295734794823127835788862112432344869569146439416857669657619311921556422422153282227392223931723927224515583241225168653655932246894491333717118464879795466975967442382872299381588392169329318143834516391793938234649213481546174342117246651421227138319494632364641428919792223256758952829119376536763663113737193596116965759938557697916151932814876258471997511496374698475991447597357446454999952382857427534425587211571312363729148124339458957161773659131212358324511418277345214472446773246546973593281313195864627359272626988434362253562184357316642288519954118486571346379691762474495395842388267779257486546681962731389189873633843174978853257737476412615514897844476594377859426187695183928693181373921681455584288787373348247128313754827369128171446967827328441154691654379515513299548171949316877571836143231686443269136648463227437131772669452563153237628653396464565311767481434728134561482619481774714547855975441582845224736561877176538568261793348794525567333674133481889517582331661444643131211584232318795711872313778797365623368874675267184179472284977264314497169576349684216427262439127163761952672988866179752989911281344561455665979895114634396841959524164557257785254214595272315746414392793929871637628153811982965272329777329921976521821348455151965561371864537526754762513794315967149354219972767532422528997246359532532218982949355118731557594142658833837177516218898131887919594172136131894755348174829257448944338997868384516211355857227526742225966224832483226367648137636361724889439211257243885377596115895627113246997111865218898269949822529748692582552117494152719974327711542637371693622156565215339395485617838535349436393374734282395113794612975263635218813241687617444766333132352979626693826232565918546874446132718524253573992133997314166175834233795874494447959165774322446246336372419362894372349516152445612213154417818238297748217195141783752779948446488555478399112953291879443177273834744411623481927441283212294264413744338694439335219511431792451528279953781462635945284113657158291522742659145886155345196287775947314872648817887935731546456412332753855599456854671198358841965671219791787931568556329327336923428171453129944319214378997628215891344456327663811271332495686349577762929679119217131961928983918228295774846115716659915681931343842818665119838261575482156924371338459179659234726382985813193631123298263834434628358499634372415316742681314992776715331584858933752265246472616756351974283731558831719124475633796713912552779345655328632372251254287218819743332753458149141775165518673879969311551262839387842921147688568322462182737772677678714962269929126531389164235722933959198425335253417141246478518847899596346244652725184727533992263911626366375334155596595878679125296811349968761349197899318233516453955352662556596642642357919163441538383317775981644453379593282456465167616141647734628945477681984988989835317154445672935731821924425331797546774548172357521337643182649232766141386825312559922695624268152961898581759618483763639792726231358437475632973597245457773343354954991337866417857539556241667845514532427529585273444973229652948854479129577536143867822146729753711663497821564326558184654323425394721123487797149996118421963188629437477832479483592121843315385797436763721732583611771273251739123823951471525397112444438611844316663649849338181882719311426426578385191823326712281858992811132813747972554433238631179913373225336536866156549369369751285779216468143224989335683983114761513999259357179535151872317183815433694651466964311172262585291213775548972261527183125496662267866987789816281513216513634435216319881293455312217743333859197327668695426997216249223728521887439118857231721625372789711249699455495115883137143897114341696727792573553555455553633621911819173727672715379365568269519155541919423681991866432138165722414826583629611517496578435224214997826686433755683283657329366534532446758431384595367945998726268863688487373659696711538687189628916438163276153746472366137742326663296497662465923837625751867594615983717758834243849225519645814922221132471656947197992878831795189492451796272943775792882722588471539653146224352633593168665843626419941656738315372486332464894672446673882674322715632321463653213182791954944912628226599135625439963127369231377326646644161523782444942699454919828734693865633526471423718738743846872444769191369512762715923543233381775374741836638574882793538953492486892923796736112158753175362249926957335346626227692492924228784112512312281796324152931628833479558241331146817832273858547986647486815621859994248228448721293241317438321549212392838897644166962688355211886992577141689395219649786657286725151112965835676264589255113661756447727631425461378311436424551368645954875789325288811518222483552294773198283411529919421358939142912135843353154753389447349421384253317268652831177726946446447653629771215945469966945877286395133697729296286763315765353331957649827166935169147489629298476533854179179289377264319575599318778415157851323558554193444583173579633439695547936634986973469535581552682758933975784611391143344534537966856244129432514473622935363636886657524357982822421562643614136383885427648442811923519955472732445262685839776121565568126655978954249384664626364289558849691953715388334571531174891744575193194528422499816315254181759522376732324455128474132218676154833494111148779429255463445226924487393898148694878183853629594151661824942324752275313474383686547632934855746988191963774648162752153265677515554136235235439399121629142413834215748122363483186337586118965245123252162433784175799568412664376558558313243862241574264426833393635362866683892145856226785624133252525357147327213948689768746815759247312729571636251791829438426996254374195813458371322823888452495112519926892372525457543155315642254138313861414848296919123285494369135289923335668118488398639215162274999982736378547484644746387297539276321921793357487667672177133533152968245298714999685173639411366491562194695841565373975615287562826616525634495427487713984556737295665884619352664362284225575468828875152136311111736432668694764881161244613382128222759155875865685288879424968293262735224384285116262143996873534117972431699942119342791269536178293315212537152851475263349849564633354749367882224455577226827796522296758163741263112187368263914933321551716344255423814818286523325324171693859411964587995986667276677165248651977815977823336656798354865985468994274299843456272394789178813483119224166964442674351283893965854921275695644229263174362794877655331571878452392931921552469191683375683561383214412474925524326486315823772197177287362629985663912385958811199949359737631325753135476312931644341929136429482567286544145414585222222485273448445168543435981188923183878972869847157724998618748469325884281165549736849383311454491883717899672772535699153739982523448612589383523541325351763852847111418692257184377658124815217579693322789894511721672817439553136246542383769179398195171526735593894874416832463847281197679631458642537788353878749124126174688814569927629119914363114195574814371556793175341512934868381676362546574388815666832668554135633196278861215979852689895373192582676476792366155274141294251671941834267823518758973459775746243727281775758894947166719764184435942444275943486318835437837261643874777513746838351218131161233531561742692437224972777589172268532756936423726669353591759114343994137616816429983226124548643961979711681669247265545586939872648946143389492155142556335992227214514791842125667543691893622658216136391163649453851978634522349689722379495674561656223352742823191983281731489251562435793953948518163828445419467592483372641258766896259434978665391668759543991717858643183539263143131113114359786438375794556887839221241815447765782687445865548418152358723185433731131463744149618613798468754594651296997186693447578953554991162165666123833226923684442354289867597173686562941994445356712968388444884272716287515869332446566291429858431291338817371162718864642613761396957821836742142373122438728757492195335922591414876218375279171681272971514452221937238417819694995461333736651355766791312277365639384515977166527265962647582213844655391959533131741586463499411333937351112993799537199738572777635267539226235694637161843572625934838615492851362682444624936811555741622585751712285736113114117719934637168992289962314288141896193931499132578912368412124514246757899568265593217952249155763649519562977687637219731928559732439973181298927946933776833464823443356476284449594951914587235515833362635574631961716199627172622573337819343767469829348319515611557693951864455548953145763154583248748217442397298189466518558511397549533936569384244445129437173232974518798765759564771592587224642255866537239631221629522373368189935272191489336432279829211256355255472247362471213132844631683246957475987847134977625365663469667991283453581195387438236175694817636312838492975124436862693137652944393734423931983142216186289941343857969381163983216756316866287572562348358983814446857785283224124387376421892866429337318728412314854286724294255533414329926295878718934783652963718591742191243183676489273625661813217222166142864321384289627777795145763426678344221578518865258168768996322515389662394167563122296494421987433936376595389346565387557511778828434783369214641258214391698496357641186788772562612171369788935576946613845179891231943673518199695155745452864382739964215763253159374643633631445323741158782123278965221113596192568698371974636144873911834412623171738541285738929134472442839172527215293949411276327362928519136747615919488614249265568494513838489888328628435886637994435926581325168813688955566881797299957878459318764265938793368694423167262668568899887717535769112686425932846711828593113664117561545781124179392362664791937776846485939385139683359561214792642331219867927351543981748149557673353958551658999715923389255658531821238652617193928457425996925251138638379691257143361522982923138917629796564865611988822289129438832437171945766599594559548911853659398254824913469167447637597782296149472832526282682472471828586583313373614146957584126221921115887328287685394885553232947526733913455276422171216498256726747365438694539938748441822194711643463954331231996797278479577133935152963334519116261143721618593212991717232429121358595113471972737786122184995614363141164119745728443723214523144576192455734714162782634253365525979156419514344955141993925964487383243124289732331594378691314122586572548592749747552722786349732443644545721335448565672458943655963951952863739634555218477397282911381392133444924432619342843947654584237995363356618291663912587329474866711572126935686632333724751759323436319486848214831261116184935331254334837134991516494625356731241424628191134517656611456996538547816589951128291941266518513129397397283114965434659883729543437497945716963975964548797299536741262617562122556515937713287253429432146518378528251421643561273372591135661227838287475264199359997856629521889427786717223522298741874652171263578542217678671661426654831763289286688951652197719184217432152214185555293134159911181624593128111863644856342225448771375636585975662918837638931451391793358785389598624188613639512638771667953742215311276894161932487842755473263778696654267695788649122371662432883981563322571844362375345948937233477952186636684912883869562254378433538976845188746918632288966391925652926255455534727253392768248463626831112935428958123414919814972284647599454852139897479157162117141347517639129955877548981937442621134126471583137379823846677632485387579931646786712363278461969258261256779915155399613258998614222252131816248122421691392393784653468528237685334287243959782166583122694395561869255713361799646472213191626798121343526468444584399162281556391452197562118123724791721323829592879873319937629659785871529589847989889619762113734555179668393559842256432772567394362635461584494555431582754549429445743582661834748549866815659996162288327174812111126612393512562377995457115856935493327443514153536898388488771621623434369184366441588989122341791232562724611593479223348131866146836562667964169893581682263112919838439519454863759481367451325935643895843289657387452939921483134529369672663752827167697641252494223437571147756281986372516632491313326233981166493627345785442115464918531878431656342218749481239163617828641226639258268233439697385161245559693432235161784778283419758788637339779599956251372854457588784994537265694693438699276939239733828292436252392171124179424438342252235179464172799588549274124799595971523528744826525513533232563143925852112865481978564112541594316894915427232844956213497113677485431782971859148117234722482161629419882461856736126952284788782367191736295336171566467379297437761642421972615824641458481778645387655613829261347564683251771286926426694282569232646788912593859349384464894338116947449151127292283628872556878692826627229826943325326252817353833448115466219265879585224634816429616637389148333876733194561637216484542195277429539931822178852541876475316227346133267666979888267136735314853912974853594553519241832332188574758651631841928237962521325955495891855551876165466137544974976566263665261551861629263837388271128917949925942466585176421494182249769451944963828151286586233527335473238167614379995727181428774454464727497691746446448212461286926483314742139293154299268322757839236483916522536834884242125114119412649598875199271963853368925465577569262526955923511414188551558919624938985428874466766359469265271598436173149619735615116144736668915716991685842186491133817232227275854853164971953242874271998165167375731656733464845118216594488235144641443153172722699515953293685653145645258261469246831334798224363635595273382788616558217332271976884345555483666846671226482281169169818133511495893294293438548111255197224697155226115244338192345935499467368259251763385397233899393323224684841728292587926987469771165162943114813968137929736974638152761634697879464771349822914948349316228127753516266325878686536497423426496826956814974112336536379427521275212275275492276647361892284293692954437489467562544872177229791733699534566494846911523755992523141248663153373261443617821495624588829721727387233117886988563165435834499247667998557271813176327115474469313185725996614994817963254154354613172886435214953113874647978158998469574512266359217343645855272323217983368523469561193712223881633841925721522361728433922941973144174388189133578424585717486165213268699616871878234532163166277186251415459855823246797554157894424565193764993166369652692672637554196213237841478144243656136958527185158287913216934733731418842495436561616973999554873125143442261531946822156124881294192942711633452695729853962637146259728982536748553745822543333321492567388633132968269366278142148821396227178811275274726236472183873225256237257729914615951515598623625575758778171342696742333194125387645853725327754695256455435619356928816843314145875788641952134961378152569213962329699541637631815569192874181354328287929935942552771921939527352764597377422367151865116986972392493942421643668316622915524382357156389196734627625165285278154533789632776431265394762826846562436929322789717991757313387888123479237138211763446678649335852627732629979495311371124741112377928141121528728963562834679967771456513322456369962327273248384796748648945613238953439446691963359214294698231892525714882516533526239999677989745965556736765435179452253666989926637968765865562432813788568976579254313951976829244456454482434293235558455512217722853248597424129584368875664912322372757172724942965965785528737942943111993557182757759438899433468786183144993778345875264936766451528822852376484359243626928261636294536241164587512232373861858477784672826694193322149617589973634761142225379683991995597245944848566986713661443198712235484949196165522998686366961197418548456559217938158217819616941334545974143411263719266927967314571712771251333331586177279791925789958916187244714497648477249215871392217491817118537572613684452498426514734885927454294312437283273554384734488382556781662424695145823352112194975293365221554476239715464284991963723463864815126514578583353824826161442529954325692538882476219277734547556881616457559988633642183822915169545646184545179516612374537562811564577428733261391611721514972841942972798824814613166657455271386849583456217811535276287922664358254885784287654511837869187591733475924963342814573424292343972967251515187519419124811743835516999792818461266955418959977854844376118198486513441233912249349589221153799127515869526742997411254967597413558825918198947977645172769239544254841681711715698357335429598672127422243263416519937477655778863831618736584994139522798856559446172189834468938987245242569281995946963533781869263982462331877646342345212535875272853949823615169835866933374534169427518939795727966423761269838482441915542574766611344226414567975322687942516297756488198945712953976626452582552325288913592152392286864663282898751634518258236791755198876937486716863756653591683594921976698128474352812592279465419811342431739242894239691188921718885396417853432291541319717576231415389727798654142167552943914132831444865611233919574629398659346975668512256821268848826418725939421163997652644464367552311132356858381887834478739516836116624677113519363265759731951836826738593396621636743154213734329564415264471892886755962815392222911626278881138963852661926486962591715661341627693225283239468742723363132685732253844877484197881349963832925754797927551518368354121729237919662615331452517745921783349354497883194238641633456622528341486132764217842548254985815351276745167731698576274128758925782952274747416485683519185431617124173233447928155888436937589728126174155259335192491439453142177585965887294877686126362729921598316982211317761831396885527112296632536596397419347219714735887816722179244181437791593357523226612698459473753713488364919372425385913581268676239421889832384315869657493343275739812676327511823836469964216618867665871743516349657255255374331853169198399438682781591611855847417467672795944748555586251368817332132967543912717172636144692931153834944755523327619666978467797222573124852311247741119591434561862183135339692413843547215769425628178729712932733543614867973963328939425489919779348241586772795785411426592491778616792219872353636656847249883386527243268679474586816693923453154854319279754337743666524645156663272928626784563189393518345114539322159272932914798225966619917854357261238838826669537776474129974913879577578581112132376299315541197317443839115913387662367491378218521231499473473141417592766258753167623864173519432115498729439134265731427335845688554111996431974385741261972425127869736846443631567831761791813631641886297457992257739676634614487599831978589611441965364248465376955853278436464432194959567538637732414922479567343822147358876191172871291415861611829811625198392477416444654319499991474817761426259238765242697875333667873421155127663466423284573515368188913731371721688322321727473955596414833181268186318491784371197842795386355578977795658583476759154446372843158953194939984913626621162358414394689646951952815885462881221751113928612163333861767281785317486511994276449629585269128658269227459112621668861382435598814335522388976243999588245763822568743747642234853841376985344647861775144972488977464516243319613135235662249817825966642546271829441489429194322853593211655222386981977727999169564422672428691818642723267452893761158295268634433123861118559152391326263895133665957534615761174148485259342449491846314983594451932662188324482988711282825151979481651427273555195195735148755546612274482131144792623657883251524516492643237694236122196687558181177966546577885139936528722173278424938713532148455544311679656291236635288342867972296598139297261634655669176855463272125277213544343919238918416683161437551168164441221619943879424522856927974154181832637681964119875117136757319274513554623233142543365171623191385449531366826469258168532195435689991825814176585182152652458328284454584575247817466426123751164976878325547526397274725863457935134864918618991565532782614739425774763149681424393126818768759511352937434412439238158252683123487972349455593687489185263442989154679497241967959239866715161562551762388182891794457156967259135887362532134317512537418648121226932119513249691327231193163786244466712779194739976736199946176262821512855718722179374162122514634648695843196553378376649316523272648195243182829416462332344133457836121436845765211932474149482911949927711411592718236727739984846761235771546996897971361191346219271272343981824427886733626961572389463715527883463614632293358363138467596681924361768886822174417482281154876543418369666638222546491221357733216183386335373455489235445482781983235981695578379774915297461386646348126741957613129843787222444252485286849119794338791344414232575864457387252939534261118359977783858247318776119219745628334451768897338449168545633827459974442225256177156879444214383245954551268365339592418333721145261689662322761238219163847921813724215353461659866561424952763946141262241135172944522628336154938547197377447848744516436878686987846658382459682151468832443312159887348561814212932351545338462533511113251757786819812726953627663255397788269646991738281828655266836739489775516115628687774135278226771112921367295865151952146871825566948521257511397412669249493436891528618214335745277141796892952229712443347141936119221312689323764855225649566388688722831113964618849191942485941855225966898534577519428828316715533535649341659153715394639758169284146191991537927413744793372839552499525195328814557378195328989418526779198244253771815467121645648257398575192918373976513533914499528757246221396865995351149419469197334436929498916459911216421851875275513835493432185533563725521997533855973949714217719966275838458619426991459764142424594512116494966888186858948773148998528863921394413422543726155442136587931664753146689293862642828763336134843878338871392838898781144651325911982951483179431226416312494142184684721935413344163566533183145527963277547818722236566454178263375145273664549387268729651714291489617435265958749933227526542869125182759541779244181929272443632563782921811793253234813172541942177436739628556271278825342712239899987323587377841524619834675225492746679823481518782727485336921185275125521989333996162154143337649158379564541591998277964497651169664199369523211432383612269643955732322799347885122721249375659585799336219235517873125822812384969469917359546989382661871875271747683317237332256119995375548459335617427258825473646334889175296437755713819184678322612493791845429456196126913232919981755317632393221639512619428932996647351814434292248436196164617488316282441821697923677153797734428373649777992949964844949648562967398167912283411985676677754485331389433161173778789613597979347792656168236748589277372664665637752782388175211945182924378566368549495716112816497626347739256969983439979341836472673281369624313461133844745183863328889828274441384848283765212748661342319362741799193836474432257964738614111348686813282395987664225832664468275179663741323432534635415615934943911967277356248688966731461742413855811496224411879632195596848674992683796283258332738425979611966125433936442414553352832795516786711834715416145857261116686328855727737351172748239788467319461167416166215347476689985624267598951169197219477887541347673853277143352436322899946327772542495676474137994116865119213349391888376362643451228718322721839487576317378966717289363264476682229813296127834276131332537972383327356141228788321231221269283715249171595146212525376816815536634917621718632735244696883333166217764273554681838876155755626414648781148524316788288729258452595278533435893733599892894657796731117748915895493622274456995371624667213457112249149642842321999634436657437917483597731771456821119217478361189752864975817922249182541293675462249516671328782897121249414282466191852367663362545992894655132685917924859138426788296385811156844177972655235913251923867193798218139371134927456413361397311468236755998484372647641673785673125411954684828517574263842354475166571312521331795219643699149437741696528638713115521368987535281791766727981584694583764654595787332679668394978236326516277562531245571187419272142221117126284729926978492557476294742981937781844675191677429573396368436164929627311372539192981384788355213219184814977474948123256859166646557376574798683274861261853959712169979676345813159614597692652642221854675851422994145944884355914247764484423985914418743976762281653394166576486353335351729169713972534591118764889386814282558822148127345794826238575332867544943883448554337455199372322321788412951466377774126542452261236613233953947154559883326144544253961643142795284442357417718755683437267741112186161323412163987516963717847712281514394226849622212517934963858249964498976878359279562317546595481175397483148821819778263229529856589325175117615291762436772294268177393497576293183377567752347368899241541115177326241431955363572142431195121394857118696275432996216823243666571618364646452947661183386883394585942693849519632894175516773241518552913218439195654239188241351569661751648254428476913999319515781663219827798641478522121136947674494361774946425337753689494442145473653324397216462235168851521569374396875332119286482121418176441444788128215161156489996124867968381339663746713989828257838579331179229334691494186938886767485465315891854994783749372782429111643526367546612283464593677445226949526387179394199627328198697341173493691817966521768194413784946491855436994597828721167293396133543657569158648982325333213769811931713729422262879845286215116795151394521219475229334919739245761924863663539826179164538122641152162127237533826445231229835172511251341784233438271935147255872986811269344327121941314687776399837931418545916785588717843595566955965642917416519247278579818131428915232243373558525633664634241963722581732532163581516947961136434359259467936643835973426512372991381322119785426839624695489223541435761549321512943435867632529367189971692762897647878298644178479217331739645845319836852431666115733654478161125754392928667471255617435986837351189313461446589561982315358644855377467917751243261734291883773653752484476499691144978996757286652361291366291719536531937411642291947493526576561246183212679372574964164753926883816247697921284396795891385739523274459745271884962534867446199473622687356973764541957576985235764446931511952579611549125325159465311668414413776381554343956553963367983433468295262216285464317515431217837163423494663163124631786659484913897158731994845937172714255424582313254892113766762626265431535176582328814858948988454772527939439393957215717392968713291217613783191818875932573419325116838345835879261375474399425436887438954913162385985263711431878612789188186627946289631572233797368849577632936337223734264398445732658666724952421147757774944495142185125253439267913816542683588515248115655311354448651921628839354623113625192369693232788282114952418571522479376919534451891173288547139579722234957463688855463557564844248559681824869566382272461811672573913821145485242874371258629761126853482327328646383145276354532313615585772394569433171163442262253428239794971422497181575566535999932232829938117799151294411342978852477327137751941557182448315725313467466682981429266961451795813758694554847511618713939483711278329668834118758774541362879391948781245654426377545141164789771417265948975924813492141416996347924473369166181332914192922423284657866468779226956125869989747481614669922315758178179446184117519849343613438465731438157192621847266853265261425815223795243186421412943323388236364684556323239591213493619995289433264435276813311768998943165123363453194837361279838563754215392955964953682927727686744963268664362164859885737445155277621484918317355266552154621717677316699356226723721782865634831819515126521689594563212717412979344433964487527823367328716732772519689436451538483394242773121618612528158485286137118941172565242521191241977472964358436175569634391793122369564898287413486767447894397125143224266391895674159769762841649537745626988428115941765297243162184592682937813751551885522593196819274465738183176611378178419829196878827872862942125361614159441715842413754838791544549525773123938267873173624247861789738711271322673712212164977229357322685427524741621716787668972794453298113315894747759722363629747672638285817517972936732945773754621652727241481841253827943623441541978685133757242536791741573874423274991453191465136215448761911877655397578499751841835638247692985651956782332221413979766517737283617743933542352939375921482141742835764487651744522753862436169374111587752266558711568382871227354757495765981351922286186537339161145661578426375616412895693174948145471437141533234529254789929343982849484363457826569442274563745676568912621955853154647215446255714686334238245515967234895962656779527812499134652345546664834955854298792345426852769742196636433245159249798677838662138324545763932335395182946317193189248318471622454977634141525138333342312813975222933681286645545172892796628147721536968259547781549117126552932721981355459692841338952778462686349348395622658942934553517135737933477913188933449535333198975236119444311522481177299837672321511469496154231247538398435188927171212467216355953341651691692479738941195995185282458791313977519428854477629217745595276982127228922284415223256859654595278674272792568152688281163675517677268537148294879816695678384372678825368688972268354855647679113642662114117513712415697673186971892678354251819545176523843211888685772655699273312566449212141534731287193722649836726383977498941113227711528731395671975538746682447995551231947143912798337198619368737855762333795995248173594689362112475964532331976879889222789328746856953325771533831356584365126364914981749156645372621455891265666293514293186643744948222788468272951919269173714217885597751972845425196823788337727755849318269321343195191994419584344134135237533637754222598481452619914254568718613686935261939251884875853591823418833598563834512293953192237674415836669114167345765893561271432952255783686461352838165925824337571458427512297294131353598697584261566485616641442998953262668712441342539124214137811243722876124483397895717471939511953329522213821271153518326884586995429812821931689487996497132889751894234729966714667529753125144313414973699518318242634115233766554411647615723457185181986557175361813723355296517235548254236591697814679948258568499383773437582334678166413883132543259132659649419775193836351371318175181246111523543227253689965458274958866262919553561323352719885281635581778456756569142377486597551218783212875151455135243562685156852533638515441649116195877955172297213956829662154554963525754771941534261787466165346614642127286734877795472894435932571414265219947217152495527536981859543177197451515964752543382823396751155717249655118792648293162434144582723434481931712185481131336723292498156671424726466571341136577376356624855622516292642658478936933353946826751937235798499115437758627552127662238267887581973177472547642559297261479481361112674534957258676446313661337514761247388415182532125544591279585179886124739664135252388314728669118298144566538514434119383515219854129283996749795488621542933359112318793481326866294359467356734175545736115333643673338769456329179947916293991375523582999883272529623664326132963871889933229665121818277875273473595492272551725634354988913113138613772651463182344399465451993391646682514128298971555563968423322581134851253417535984242158557596185783949181394262926824339281986576542767319134613975177651486186856251282624195854386632323375245625782199111231689254335617725598556226565827717345737914192661365334521153393173918624428813721394545848957191682476527474826759421557153111444888672647957999264938938864364829168589717149916978633957321747657356774819815495232537447442441164788976349541641433577141558286248349884959177183628547567213271282215679552533991727535424669461474612268713921667867383729657547827475622775526338582139511854338798391295931454261366476944362613152135783753635363453273819393288116724264118394559388379653978312718787694872578182358391146191964538127193577967159464129764467555529331922137542911285153694412731264112337926713213794454853999191187917234531822587496876721952915114176779235594379944961821714583479493287693916552637787849938494428458129435918259642635836345925161126933265278653773823612971347782522477383957149451528351126429814866237767315674489858235929291313161477855634511792479646497222114851511338689345728514446771314677724163372913282432211927418866863142326881225437617339227445969616129255596794974915972591219517175193759488314659713224644271342196514668246115493868749958699215756735459864442274961414425359979625185986614334133851267735524592919375924589138437571443795589923324254641762431241418429365113587764966913127199835413683485528476917592591543425593229519739933769474288719743428556263615994939531855363822681158571282937562438617392138694526958525312461166984197294427694428529782115714463596411487961224212722934412247838653615665734131985224412589768144145253265229891968135946832425252292998119836321558511764234768968792851762141812719147453153495821235171913342333159134143959838851121412939233891345853813852222526574481578237449242836668355354318154491451289434794949425176783551363517341819847398278336975982948372823946626279599844966413249589333521494361637819836274527127639249225264584349717392628331322621963843827145739482123896417616437758472319133224489517335178834215469154485291937374621352372713389556814784349399523212329837219193356279153346164882322619623468432272175637726414383991225229863445915349511848435615413727479778292953478283446366956376445228177828536696546517896295555748221765767273529553518844259135785982719915843416487935336595743229222111312382545224588672612261537225279712798875449338279288295435548693922518432516753445752288439581637735524915367939851548726436173262246952618728741988848281131753536917373997567158172853398329316442728376893541658898271269482311237247633962322694216751642893364812744375159162568543355775323719872486812544312686579645174969375447271429745141776383193138145333957764419996252686114635371696553864825726486298861735364496161289687359143316424417738857468377971452113132533225829267717672183298333492272214732379617722525941433328341515683564184746288719579365252855781719363195815789387543574987714249753254994912234128738448916217396819489149275765822324984484399463649441622624519222827633283192164127266653312632233488896415712675144347413667525599361666593145181117548657528113916677154949829694151862714237855242545264358841459775236992965644177625951977349825463991897936242127692125534364247364875685964392185979779387161691794841871882121132163183318699778457649899794675254525118698941981726797866298297353313723297791428213334344736421288933445658434829121769796593841192357161374368326929715697451235233247264273129758981434556483926836349839547745736113489669299737271597719741795179148735714611272977168116175521946135364277631518362812321319893528378752614141637421713157762861639225478671285893876691576921425723573134297976129715772115149494414651817486768271175338166234787474293653892255992665497382188155619443155352231565642277318386883357899273766871616943149465521156898548149734195274191291956113516179118261237853171661555822143644349669611212842328452933126112791312697443619943613319274744783513496714642397594334319539123365916321259525349734524376294415323537134487231229264542811343492659281286323236276257342427681735981847432491586442183294766334645287391911293858293423111444244315877711816942942482159675279832756635679836715234581278574915335757627653811416963685633483461871526331148389668441637725248349166121272372579748738518845443176825965935914512195351534881617433815528724521215648172223398483627664884684479776438342273221765392843158558235492997961213682676329581696534581931279641319312122184976481515197817711598125768698369534186484898336246975789417139471411175267263357524197996364437324734589958228585134595414862486687973975121155827815934958799441475692971669223137357539774198514328895844123729166786693776879647551612435292735417355437966497319663226794324571453813535579531154596447724886197953429834753321891635672159276593134627256487113653617634466629862339952516612224992496132233324726357922581145924942681975317393645725371876531243327851337273999212927424529688173955137588923858197983322317168722463521367247146341114943221359392257283337443246142429951448283455397214755482389267422881262775172789771213989176218667631855138672497721991159438381385571381943619736382562752264431512873122299974726279817995366361161614493134421884571215854793813839768913582667433675657471238572114468646647731958863311522247712434322713817888949234884593229656271523354394632246737121171243459396548515668242516515594176589453696613931191657896892686273323921915465893675534196241111524771552497999877625443439817757881562638522727432937688848883279856428337757937672433978224255991537933892194935477993378776258422512168575994293844973322788252542548712954118217439664155346218565554794447866896761918153397188724144779146247117865598726784249888584117331491568845649979737848656742687341589251395943182294421881355492323766119594935935256798732291891327189714647795284162482475541411942321862237716721271831326436468727644277865352461256761483493433652389366759476963575463417293787186472271655244437647656789254984521499284881533225352539944312438597952127819415277148869579892733914874569621677437524383639119813113312382141392297998153527877895979891823989215894246192768689153923542143862935523391331967563426851784796669137731678515243399469271234725651534435687181946728556874456634367188941331946364572555337686782855371116367893611516759384835394355546881916361165165348972112974714764993515548585433258232636764515414745564771361416431964662118399963154887122622562966378523631922971313347614331148343845721369781951649143934171696762716183721326795612831645266599468111559447477833137799915753682148781234199942612142994988263275884933845811526321885596361887925679355481189722784123584314878173532849555694627511885754499396858484258874346438511837421175288338287721986243229228392137649515358371451448726336479133936332427292137545446553369548339454275215554888146818599929151264261773374844162252492775857485558941175788454744415573576124817122114212143231384453238418837866447669159725739512819246348528581148256671843173984581983479869399285132162621442473559158436113164175933568739285231715189172123474472215342621297133446329868525292592127312652495869212519837441913548523862495282331461675622314316361946534672626576939547794136724217426116961692338514164825635877524949798488961397535811321333855185923488152957215293269123464433599557437263147412249532513219291454522443522411869342869272159456752186445132397436592114579792892169716677521836972752315664492446124983629812331144595816933897457343444356654269453413632464483858719444114474212574678515528976466591375139832452873466788216183712365297127545176566956982617743891176634188915767163568761624522133523314576442161835982316453242593322631866742483565279846395865879656423494492543725683622448325959282785514382715539559536966847576268528551527445785332418368983131299662118462562715953275189529428418323835717293742181637349698434633721264614299633324788238162871495945928996153933378546311921558552752874946211761562434395216663754722768572548461797657871249583396745636925343628153852234686297334825574268221571814418562494916911636582657986462692947752995212469753456198144767742531571143219235916893165476768744248341165196722326517584416414919889222872681956472696222946193946114798419665633711777798695446762492973673319577554495517715771169659638663444498325317577135739276771124176956259134333131173159142316533115724793967759742473216216563415389147898466671619949536271922145782915437617872576162646795466158578593165424794552433151338465133428281744397896287778793716934125897392813715545886185723149499775928193498887293175927987862812998443227261967158382592495166675893445483172365659841374557823695232362689393578161182271724772265982149211884534289913913894839929546729932412114535776694262815523369474415334338576546788495195539389968772422723224332277159728973754186642664211211554171227493912712439537558917582158543532879193496289236574158914346167142425768975488911153578286743383653871133331771437127212181742183551715583485855775675779253247262334241233474213218385556243529762561163719357768998932761384415972482726398293148259241568239692179194548996478449522862616656348816964836949132284416556177862671939343133238474362596717198318398382314231953271712647272783585678391289879699635143841115919495429353152837749114324586165372973989421545362745661568731172894457754995277512932649333359832716387555739615681581426167193644971531144564352672836945745732667682475138516239477466762915294929482474227431612831891516298363719231141976298291114192699952452553915915974386714513364934366749872675515557272754275499243999975718382442865674851839527967693256739386142321969115854894457699525953137731969734173325734636573614426873321885534561964735612719621878748955586512272611152711373116222862382579145225488213949664833927265837987352673675814113856349758965227748821731125669249711486186236128387893617238694423559582214645931654429419361264623481125443191999968165817899372372418328961249353442165945259977984933338471354788541979264713593299813737316621838119872228978152679732613424465447247757335146255464589326416121196485813859382381495366985126882833483958975427834579491934617357733268616971965128431977856592653352982421235626941863515717345212624392417164942135276715191229141446729678521257811161248666769126267785458325979728176196667972513533952541154823838732696833225393192651427595771479759235634163465417817712438244813131237445578217799241932396835876414662354479281116961265643812422821151639533172986367118534838473489516728287939483852617833645163267473917361685753947937744251519545868146468518229572814315948558214822265947327777254723416655192341763145673822869311166122357284945287319292954215433142147685745374855858336628414176143478992453576356757355895843638665673587178757158885616265637361249124241718693917679138126574129147679199615973851168385295932534264779869456813937381996127483861748288835773856945726859879422212394257886839817988811466321823865588729134677244991952585584122865135245369851586353456316175996946338661862939357227425362828528224862622331348365113318344152816713361335768365858535526552245532529262462753434546679462398881829467338597234787654678381114465394274527591895923641361358983382213958168795291175921854192411879626124412196668786923219561514936279227944878519538999624885112168633858219517936548576783766779665888933346449134892188765741353473568616829222567632987484499541295676939383538283846455527342942684111482133955594894994736626325368484846528429321392939759842293952235241687217247651523847351255947942972277143122438976574915172388292865734466879767445217426242871391375835477239151534498562763287665659991197231167344521953986862169214248515997394245675573144774925431689826615928616183118527978131384612121356117989294412334679923951828458771451165522361118415885348646732728791571535184651295613666915828817763227119365716465734628774958711633486125327915145249439919777289115576766881211673565754647782514495265285229847361416254474483688181616337927764575339442631131342141142127478411455312471623712812322365317692551692675158671733489641522858455931767874613471751124749778358438887636222376583161161275555925355517623913311257617221819756931736696527249377853719494394488966952376643482923878624233228975791475114668983147476255837379273195736344936424424574879974217181345645357221559231931222245314991321258158189557435481758314155118642768631729975733992121375848721145747373317856476667427521923558433164844372365131594465831881363878459667182556153592258156134238618672114911271755212454225725416533332182183527254492488254629811241628922465821989418674226999248392398134268943975512581692829396564926974151491932742374658797765695644876696744632332213342762724179677348115221359781497391146521429546781714521241455994456258435626832125914775962822432293583462223219539496498352929363624964135724362141778628541315274817872986437715445435614359655984374269846444799171122994956144364367689142878669921251714271826222132277477111843275422793415588242867196411378997136799522369579737756491881477178493297175889526154167475379372649297649279853756982243873992837323371547446493363417535221199374444464447728985725699675196224654515597764872169549195651899159166153425551336742897878321916842622433612836323662122385979534292614842945136189511251832799658759762755539826613688826527315979554174868134688214278422496857764937887984199152472176297453677627585278211882815856895528421831297789353327719578626381817917476172314913871632479931432427496244118986492235915662183945827459483216476615448592153536138357532834326327414458148178884357378416994333948854175524179273478443145686622647893211819491211993719535732683125378614281729528355959929365742594275682148316312769494224215667244256865666238941832479288499377633577147413122174526322317567819827953854136465371791278634177135273568973893246898747657523573832277212544724179562275627391646365446838837913349886132385529423458967575993232588376977235196995155427124891168677426344492629358394643789362977894311414644186869916975379515291398193287625674734559136111174692282568666367167468845131619794319166452817725821253686432549671355331793887137337611984243797721149836255344235662721333522666182843161471958774977553452244153174615362847876134257772319441223847256385294255884524523592418735481569677169936614716352339311263669752569925949854564162998763624351945446951221489859857292287654793337878494214212696981514873339917961933121363925945664934654873578363788299446261974256848561336731962323339565365685194436475365171954192155212947786327412436193771662923324879197143799171787164931629773581114784659853854622386536576358655123123511156581219772639475731883743335236555314713811422695655147884664744583189482118976345678539311934483327141513334279153762541493719915749776172184218857936519737213812653828513683246623886648349866353451412654968275536832952277196914556955869893994363311932548351133233133573475888437554998494525543263348524499849176127821692574695879461544282626627296184253638711246612475935191277618562534536616363323371324182882184837147781137497612311649127149287892538786755264611914985928468182691858369471547214195582747297432653675741151362623212823474417824728968879231954283526656581518354267278655561936612727869284864936925192784639639465222517618113212565542222939535286132618926877989431964119835264224681487548962131675116289314831694933171232931898712365331144444117885564111216292529433194293368843979693759112552924449681792923813594471751352252947817338319136268863237241973964957775744796847355336423751158696216294765298343263642584682724369918674116865175354987143567925115619391368568353442994568424282422396341466449449415826498568956593959212137898282273372684489616863365717662966585716236587488146419214856231436611573251911219178134886148687491439716162985698195994719572946671654928346766565776969893267135233223739481254393288629632933768218222732547671474199646135268176121832658443982441655128155847284885338825956814711834226499645147767838881223813264144823628492651575731355632267958723479925612185898287879511879995212498231797652423155557298936713529276996913591499227335726235189395742492157134415133256375291846542351177933953179843337442542312114123843822852341328924341321541256992942267285376622818237331535279286455563191736627148647764371959226381182525625287193711229349589725972488132185867974552666784562933225984616774844683647177511723955243937791687343173518947215245116955866963471352624968833936355239922762981881151282837282632197673887768717219133653426857447843896285771854225671287354292163151477397117574644719763816726468253255553465697838651468894642759286168923324217975276952329844739882662471783894473641782954327274442994399267296426749257828461415375825573174126547638813717363472852693919969998512434671827159499468995869855455991736499439463253952776439392945913179262144435591219981531441391263756649775529989523444644374823433532881711931287752681592594573617288218425738535734275631961997357269699282925536235145687333557375438899268452452454712379747553943981239336241863422862549352925398797942762937848487221346284384975123889367642825687543672142411974377933259844118123586383991111343241121911169432614513654798141719841536731473798233858827279296594396615999885813874383964111357729162713621919557812445944873765334161277966565463376262414669376935477723619511774113441761776526628851633261965716984497646973364879751173621233647432375655663122397272796264517344666411711979159635561999645821838824251612234286295483535269238278388437578144752132742515313523673232255599847135413731431193224268848748997575588839259425622869926938871225351158746273135595711833134239786367281253631548169185843747712535679969173413883429362123998943791867444752149733777964484914874282849489493427826955646642919112664585556131439141783424931913355342963215124122961787455925988849198133496194142394884492496944886156316898944113985125983334831856997921932328833946392273552691741746863288666919252877857671459426332566888646192871497674379792776541847159844674585639368594987678817219715919634158695653969575396432486394272253224297216917567382393841511235529761518261969171786531538373213621959341652651926638576986311164189451962178829664678369451312772474387666272734671668229669711297523384363193335633877916127245577116488923379833249425265116382744216135369584974662373251149364334596639495331484468755259462158646132795659977917511673951216933731752991725578337742555442548241853391286649828467274231145754288836155158175229559581739363873863133317114492238194861132513624781834848915752331933775924994838822816849692761269162515855784679321735546649335192668924643197782498156364461725233742529594515196965345873629561564213282317382875292588978877937533723231627531453427772386225697312646528155419225485976457275939152128682432913432416776277273919374523155989716554316882256867716927572252143334542271677942162427313512522758261653254813529481391744418127785646158872218596429319419148962872314397927923941355485751721615861134191924221713641223948497416842162632759143247339292991552132298592516263291151397523249956533414474392958647753532455686474428194654991643333657995179729875559824321121897591823171899892438258986636176517679928863361229172328175853261621673147144815525651864579753348255592326262131126317234862439955959776977721968127274124384612417227632448419174191392829431334939859261919924249781386415925151985875442175356853917838112629392851899539996195791812134134221864569653115485626874863891291839897663693925114966411854675195736369438382811721991825227835778843819526348191945814222863953881568471943213915569152575133527766149652235811665723855293548526222118987854523235617177165669658928122543749817947881823874762971663942824714342595632462189325689685575369374836933561148718639617983241172639593124322156781522293125447954785428982244615549392642985123295174862273525283764853845418211596612727693768821215877445985484597369277216398313413967855418672642457787255428771584397578817251924517889885389446989585944833724816548455157858931183154377342446828324712413763986174667595931158148357597124741263211524549284311167192291996979283711611164792121547155372112841443745791147894644531893874562924784853263581596624882316573929192258335631519329423831294694288965453333596139367448884495726796297341817885335751254585646485121557821756676114844879533465971985852413874446335876938842159586236729797524251892233784233217733297955845224415918398512298256495666114995773978688112567363781192394894526433615676758577727326176167151946871347946532698362859775797979854843567667383159439266486866451557291345458677854863854913192928897349839674439471664232812155647688741971414156279598719564396659743738448995217613495217353633825322244337779472313494912872468333898191235114147234873891948646121917653492432592862924396755334114641236963918791283428732223472615175428785139514316229411861455267326362911294775912248474885463314262712676651571243746766985333248732851612865713485628126986391475323335829747363671649748781613671648198425949955922335135452325588631125513976736939263877747358647937467525628775333934199933751271282125376213763267379314597725764747896562643252992599423429715893914938952449115944412971526873884162455358297757778915262211839978443679413145443154972182268981887395757343445324917472185435382842113276513627442527136549464797682893834445811275551425776331671877133613839359263376793261763961239854436399613467822116128526311952837843512636875239782568582854145513921919178456325766522619724278251948213676236229111947335217821567671967796944634159246675741746142361453377228439786935588461336652182276188259935491989313952422726231642557976333576969156674519325232987353132916418247515474295287243134913546664452465585217712732146924819242321615566962347993366714961214963558816688634929298218132654564284426452199645396567322339553627693825119163953251315627542167245526192455326686533935121815961666766287976713678117131369726924294398641236469464561869256179256158894431374117247777145145144828255961518542745183973475132948868539149225579561686692162823431185132255375845656996518366572721849387821396911528388619811277843437272583318262462143313813743823264543343233968517866926159152699366114732415611879664421627198313293965556654529711735554875352264593797433555331364625237128343938525347578731455584537135626353531727683124477134891864335897518959628698312828142759255367332365366977137972732462794145179696565475182967141245633987772193657151323754992112899777355771916336148318852866598486639636193132151249292634818244178735339981959111556913254145312738862512778426418441482136343484795172295414781556361592661377356359315277399974389511941814761171472735844973452588763831733255746392117328819781616314846266864114462264878189393828682945218945733283691484487152993791849674659736779436273378597214286174835882717753172328446451914135432245629328448899171669924541239259852391148825811121824911754354193543227119117214964898988812659651945439133765936986482182788773742711649333966824499646833991876747112996747325195654412337391269384822731267945863499296184885771396222177497498336764149386942927691848472424359146213295772577856428612281411273791672249983854443559787857119663736246986196457454854131831547252579857578821893922853264772851338392211269452817565452342116854891559943129598183232597113713521798896473674558383723138164199747317926389436957523318182181851519161343493112173929735579575646527126295551822559821517225436928999681546349525943656256774425454513467915437185132666358661217889563957841987293236625821419846926494727773457876422218255757245114328943925715923673128267193734184588755958538186642179787146441781121987693353898135424686211877158992472293716625783173928341198949882383462429984194976698215937748955384231254846733527177756743557831965485396285472857914744547389269155451957823272696473593352165131246291589732662336456285589352683488777996584166234726117638323535752857269765658341864689316696244976612184389993574531312531428222239735942427419335579373426723363958526375759964683217333134855113413262136332615717768487393333123613155927211748573966332752552739453666172161165939173121671999142378557938354318532373837451663814739572987814297841827362668836143259897119217924194378826268233955692772649559897983957653161754686522334129759517886835782365156833886848529566251213961525485657426274574291324975241466662635433934563332613745685875688145266941591857885445679539772466235399915186453282983867634816478997912528223897286254892376633543527756756637343579723363652259778993576717483513298864237296412448239156652436987568965736638234815864139832177458374378226869618189118973386652795347783529482381591442711328725124381868267314351497497924373371619815233998126264652785281212124212663768978463718732484298662679836263923458576848549322471296929368626253462352881154786771195438722114266447865275615259894541558269189674421298175636925441372131217624383889635337467844397629697446424514984376424356522796572687636121192754821425971711258715166879342252739251283354221599539195727513181114697267412438467812278543654623138431667161825969123845949181873473246364411436445843127749168513746412137224762568941641726169396856285235129153353398551278181155737933388164369383611914381559578296459715228855271975985265276226966516467923654781597884788659311445478439951536266822851652868888567334836341251777578162623836255444747348436316329718913349853316581669182562517631311177765343194833825242483422345627375593563137528645856861266278389173456447155774828936678348783776826915667621628787124589849114236594986674312742973189567723322774193735467115714432489113357825675521885444851794482969278547965832367432527324993162299286923592275391467551312739612377761646363485114452735384375866331392496461318635747792784451673928637313999182492892938192979199339858126542357166692826464687844266776573424224663842438829391197174326182298793224211624223388385129564486176334119115673176481628613291989894347781149352521522662643835553884176373946779919121449457283424935319822537517649921591826733487862188929893123648921528159491567613287234483212128412778988567456192652382454532651349879773824338459348643693225177299837156166117494841257961511252538623326588662796323228327976749826958123545759342743452563356925536756844153984213373768482958684949386326499699578397854966168241391879375546712683197539684789151584322131111555119158761668139912552416664473644919646643915962628376259322343371373178577262377268324318291225863226312683152276884982879268421899935985813191963976476819615174676289796479996639925579952553232892365352594166752124346518121911527892454189812741835715161789717979127919332632531828672121118186811113135995224864843911652388792217177151934775146127857372753142681827759194522346183384467322466526388227859492766431824341571165869914165284436949132952429496197917432676878644739227599584776989966772446586667239261126316426444869429812856119117446329738281786719235157783291722154325633923446466737837494118324394286696423889941319335467978689949658376839392544288345229821925527481259441586729983946129918268147544268237245231956158874413677714558861921595462453653231142854546584887229793119894532582759417434626546336713377354261548892892896561882135356264467818498624591378672619314175461927553361971311827224294747811617597214619294217515653854112353594765758341784549924667129157343729146453351957429841741172283237521328728913471296645498375446354564469577786814715313689681184183392876892117428929327174824245826511696871128263416429677676141424224997546821387436465115113641181743342494591971691238654144394535846729782946122479232299448884174687961339499221551745313178695162176383816284396769457521852261946171753586224719859352852597521716425779415855947533385261155669835381913742446239742835487119592516345271969291622113265224635851363719847747297116977845892653468448615216597599167131126676145617999496378926634393961762743413846889574212625861721264791422829495389779235428451879929995895161555899739266312131947581377459723819372493915711821162161693711265587677284945634386113496594131224724371594587934731331828451399716134713995656464413411269898421442937852174317782199758121958464122969417515497813515135918525362448142281365233521663978319685424533541248216251227584617827713528336111339724922562383316257643861582698587567171145813429196833655852324426465445131627352525377634835328422818285543182645388565791736915847459127548843153671553912348341686133128415472665133662387656163862737411231845145335761469114396284461452776143753845259796699973592515327944137573219941194361346899778199813871239345434858879384745171817215468544591541476816541966377735366542288493692446945123188492762212146617298123994888388171611553987312742532424714322431985633293413553793272519553569579515768686428728652723791149241326292711474623161497443615736518476298516292449322724251823571638237585515352562948662357162313861946557252975284471348932717123944188715162819572566757993617295348849472149415792344327466626146947976296913394189297934281916733915756216821173958141811449536644633851445237825581155154768596198942317624456192165873721628672724979835497753678999857758742283565795635642817371928741626267253628236639188474668698693173496697795767117654973559239977624518459354261974925924225517486295851498145295781394374534244824417124216569635292518348875443666772683979342432751758887856232235572596197175982653385847331597567744717588647442867341918761588162861719989939645545247723735737397249358475571496543672211722692413393433643248731768598837558898491144422241797825677682128981361343437811912642687799436765934759732853971896141179114513593141593841338325413953826168989616122125177379413141856199412663729277852812224174281483395651613799552228619436745856717943377313814657777127923759553268631371557461424811618355913177722355758924473612411884217382352229622372458419472336829236383781348258269824316624492515347294794843275132931878938227634826925583284955775573132176828153544979734157523512724627159614574984634518123728397183594417439823798213599517726978153159644565752821655354596276763739961372966275647243221532765817221438155462481862527592316272257113392174955586586714444713234851743768829463465356991294612546329668112933777737947554657758731116934621674736747955287475592785492545995577913785741562521385128313572436842754371518273491697226996221981793919198563425372193214216328451172781461276493639573151735251769622654193164958957914634292849512158412541347697443451725863112555621713814681361217149296518894442113784532644424428437883759457133695469737646791766939979946991534519173571842974346117991323312166451861963382847624382976456974672457565623698689525573323139734937245574713591766495711552889585325611138584316542194838147344824564549432945736813479533464996428778827228163781267979483752167364371164279646876415745543742251932915899131781676968954231225255631597471662359545471288337145546749621666327774856192641775925487584695647399874332922844538514443385215513578532981146151782536339582835966581951318464935269299644115679245578138623288824693332554462942957652371315382876293572841725216333585561249518879562464871896534916593497121931455135292673224528898725184181485145672528821279789318865897326199691123948217566329827734577341144462839181187529418831248344469747158329463349927725217315778415562821178718247269548857697317456612655114431997314111565182123141282234569171957514131615745246897456479173629737597349765941768194429933156731128438742583838578767186196426523515575115962754762528647934122342391199462115399295699213833546819225216476332839993148988156549157283112673789643644418462124871946561219256595173172693645265299869623257536424267632329682763432272557242985776686178927254627495288159513339599461983639966572212498225773425693292874921974917322248371578294482584323579769256951751879671575879767851263871722372931533761135621924862126335726195285291395142259938497472645438588421547893241743412578351952662286751243446253835632679818136253739444779163885298327916218697423727921836279682293934262998921686311786626198451397646951163627889293155764232486263345524233979287812961393529641183144731336158426176998775672332644912971592354465214411122497239563843354265446576756682495281566578413345624739618499514716314814942144269959633754733941917598234431185128331292954344123574243541685656775389165847436762441947533985782743433761662531339433471758644241961872999639622823833784636194249534782721334973743212845231356453768162123699833928639923283382657734712111264527471824119928975145948638168336486451255311697839932375111522426378519447599881238316435476223983272454357162476642424412994313667942184554593213465117736358123799171276894889344183161622796573172796199429126726986252796622157334627756542628371881424751334112345778565257145356989166424681542838533727512933535891626598894813259482549818137989165948194256223775586751145655332336419924964257789896756943242246442636332673612141985862598967218398153962818369833739531817191367127562261666816932172592973548295518658463444217565673927359482391432242737487515225578431911351533758549455828579356898512124274639642482643522884123732542152844216738718526422374128661124433133723487711414823214985625292364922737958513431522714775157619696329937677668128112378154889118922963234856722547682521663157393397756683933461488975856933755329937942714538326342741959454482662951346362571315113219698929139352358282464186313411765335324872784544831316428279873966691681412191841981238814458513692385236873525737276774259763974832483496116449679698757553443997776762144113172334456382339763153443595462733658414949881965469688239382725212897866648361862866317349129816996857474778573399914519557459591269943575552259265819636448675877323522526859821191973521534783542857232979298896458723753836121137698848467616263174825434354621282662244725363297788918319695147253298461924572141329173986158734668318657627844669714842415382927334365441884689226733882931527826923196267959974129984213253568341787311915322445733739529724644568792518661222219333584549719991828516162144164151261743654163166958821425393529664237526699193914788523549872535444389825148472134681949243477684886394269313625184123346269383194116122646473935444963337756576356896993128287237596954153137193167776655356476944733856296751994922778273379712374279473127288248678827552359518118524651855996293294623119347293265964288719553254982643818118581262521381818812168432454483753979154443492929964788558839469427564448167398485135327953882127726247432576415277825727484623468112218135532917438463419359259329154523375223968147618323255251336399869334187732467659411562214251183639265385831553746638387445516781547222836552129859271229891367265671375216819887954513593564296797743244315142335341515371681442292382884989561383285567264524724652878384723323731932837611933633682944571164744362149926232528163338752389619745423412869497988334977945965916953643814613364814171916194643816949495269168311355835291512261222345678592198675917821364628597263165647466311224782322294591463172374383752675261821794217832919212999141934149456447667152871586813265831169792722976424227445844175316379888427246894921249188971391144341895623593424816213311751891233439214247446382567995637153291262144582546199143288797751949724662483377671715974156368836958428138427797218841752364494533833639118332225823198162523225435174381127115334379143142513263633319131551193619258171337557319265541589292145977561675859833213641116711411313486258868461539361619325259619163298391633198326178698754514377543165449322779725934953785318663661621122845926223678791933177714612268558498838933736153851542115458275429746483675856981449191741442371195866971834363972421468838636431389127627429135615613932819471471218962134193823278696998666192234699372964946586583162759582162673852118261424255885536353358235963598442682633485388567158757479121156298989741559189142724169224654572668464271548949198117688177548521914727253829318285878582579267791233631219697449441233535984158349422683962952643264425554433355194829385713125532496499732681691148137121124174422245639113123538499972163993949982912191177471442474481317124931922854253722546584734763691311285953466247393444392351926111715176487485779446191913553189633124814798418876584192321277937456827679561641261767937681248671376691223992752544184545191418726217642463139138797983659856865256948133323849427673242357281781523877146872818912246641321237487923528526733611172454657782454336225887337354178987731399636913412873173261753677678774249961744372952479359337856776642666147284515715435292974268693326146691182477395543194339124763623969678674736794367147972849444962726973126255283625811632938719628299151136821749991843441838241721259584316961797211793465152881774227751425311352168989616972258683867718227293344533184747757736572581758915171249349317447112818735729227231417566965268883437437244852655288159799366919472631235681842894168185199664273587545861363185654979714698437621884764896629798836184511738657249163448444898718989249586458352127626348645966393939845168246591168136178461231327386872352721967912634567141347819192135977393716552457473215221362753484554138451156156288638292992128516234533534681366176328473161681218776553436313147821247326169229923542275374546467272735151816692654637136529482216279981419282561311328595346225721941742273777721452165369495164714463728828388542542421293452889252481221882714325274694672954346988692253554119741132778679253721921659679556136746637816551226318117896192252775841866112172235998459117614348276611825275451693868568647685621344884833114738386167434881156614641736361946655816158959843653578393274566462289227235693657843668277766546212978252819866522484824779862617862785374342275952958712272143592177421686897745212736847291222795182885744436994133919846445293586922489724398215544797484313996682369342373542422152575519691538991737858696692544493348623591429734951874835384552531966588755834517317737771336149842399256612988325324384414635536939211867751989458498774172429224336129447541526174424725968593272754683947923433164421137528245784799341749583632596628358335531369368869294491784467272288541452918798813739146482159543583235311725976362366435146415162577634152187673852825494855833549565154166794214342614195725768843456825132468441456184812344569377428425374612567265884828614586528938415188737367639718631223279566468465715768289421157112635268135414125515743743321289949232531529173555167836821482611729752889152339342278841434261715123487678116336557595864541579738271582225473567164617845285247561131429695961386284398528167754631341221359393157778812182683546376122379219844447156196232439642169361569778313749319917398174276789846942812551453712458918491345842792545378839794548317514621631392333447511328395878414899342571924774683632961638421144653945928673583925783431939783152542176382339477712746845539182365339994746991782389288177136198764921796624162263612196759436775952184896652934611388361431574127217927884416338542485621427121846862483355216926914791673987749968991264919837845759458857439841234327546228619565757591576323942172789693497732477396325484412938161827253276492333656372541412292167664554134122328378715933287111779793327339761439281653476162611241632266164579762185713735976326416744514126481212638511164223982319645272115899918972244994923673659537616437137164688445234815943953647238529564442771592363154742422122653766559891962978589397274469558997398629743941882634738154219222425981236117442255787824725345239635269985538982221343122533991422837389928973134121137891982628993892556865534227272671737152796987131139322511269211835199725882725426361363654331928533578625192264891443735553523671471461781459123848291429367167536682722582615263122472939418279144456963922247577955367566247451117277225752255579994278137855718452891228557768258143591576671676338212931737579613615586747137392662836583884299212366568159521473366821766284626231887494933934422114226828329986639259534636146586361823712921321532296266153128121584331847237497844178245467553896489354859148312447587992382325398379466391928863441452714634317771712765866391568422332338896635115233427252312454628586495251251245395998625441549528124545216631935738525212611771346595758939654254475719766351416792462392324519432242511734433553463349635886321344862444931776376493632623778757496545567929439684991268798633243237661439667229317631825327873435243983935314777877639324933712715186584916476257833967696814663814255737838438423115526134294775285265116321739494631764763112219494133697738248324443773917148487528929198967988999857537629239511523836417637673644124829611239696245413413877212261961848271375684593327125297815184881481242827542562592227121738639349818447714917769948426434623167568913732653578268489692491635935613793186912637297269512241426536576231625742298895961819468497987117328252737595962122157493753817393899776386535957545362564637127678681176324564198524463444632264471316776476515548219393157228282912713437766153426718485654882364372728347564591283432157192955697986318335318529724794184298832726986299327278233386384953354135661125393674951479876894658495384866627566341279569424214785135253927636294954673788197917453568795176895537345423679561161591299232979556596714775424231416563767869581962563695258373598427336535756943616231269683865119517945281173414414142516232118992927496443491361497257176869613881239751647168249288228339825877439679244889949974655171768717882314826582973553649333536167718847381324841137425342351247281728982955374777351441647279121657193675761922932582127619273912879132718587765732579234567589576962523416262265636174522176943339359249731385211133447622982398156986923917529627341552854848138236435373251583672622528943833262841388967434783928985146221196142342836244537525823581159843994841568775235693624512244218211954356387134559944466516127491161443785232582754486656329155542861777534774663615172997911347238938197235661297338327145496111843528268985724325626317377911978883186879653236751586671378689731684955642512146537312334361282374126621958424857283798129393723156972589355869986153822212416195767357721815399916818583459466156172133418456883724763121319132866121342299744963869832412299652593841873121443622612841872328313194986769726795168162729844626481378431438451183167872245174275278893376291823738673412388646217378452627785924836823825732595139891218574349962657558876482251643436741543944545791817458971989692186124561872467945284935573654539611954961313125885499296937946913187117795151959757554456558259354891278727472824543989539412867332824996725393696514543463362247636922257845686451427874278595395263912269442799921443116553264738361944488366199344353687663899411779215445414953983912153993686439782913591436889345949812778337473786857186648721984295479716574942419891346117678186678816771418126382616538983214717627736228863942767197439223127725456831498445245283364762797631716214862253933188897172951512984426939952981433541191518542732919184164663269716537919589238984151364179836265343636352828473243626751299181568118661126728454481627236965591181823685299372135699348992235759589837689194411867853834486789132742447937246797576772553867814624856321433387957476258278113754412174655479871366522794642722976628831776171357421977613485766312422551739588326182619334626968126461919692535195893835222554998331396818938198846499873695468632794624515351434116719577132855485485258736281824916753594376476376981311134916387189643252637928635312683174145919688611547679816924228618236316711177134114564889354732729667124352226911331964775384936612966311764228467496168383252415814589979835179612127179512228436232975892257431346653221245835133889483239363296631663734374338142499921681617973177265951369149312984475635521517195318823199979863828349138286641634491249477674845283562772999768764297434886789383116579376521141425579713543528692913155496776818545616558982118937516673285815776763556223336644673458356458226194466822631384397686183139699277267181471652828318896656372816842865698577489193535879396974539746763872174473265354858933936747226718973932763647147474282359822583619194315132915627932222494924741958352953131845626154426571119828223412665139771186331492724385472364772172694723865267483453693854892527584221731612753476445963689939439244168122426748946632772283516351329851552362487353652888696848421651842595463122841188664423448462415829934558498943696932785522984492583921653836161421
7177329776314447786726515121885618452173278272199373499418517556745996345373554438644633731586432488174122714748492186522791954659996858416194352142523239766125442758825572422363829151942823637696664433843764913694174237822969422541993795827765822961642371244152285783211731686357176288152159386565923666492671496127414297995952287729553575616799971865126952779782244358219292199517761334135753324828433664385985389537369565559555274126682956115838843322418193913476919465134838625126637148231578718376957232284316315494846194631532271949143917668826379827185613918292872529712536991788293528383537673673156387257456849245232237148479497417235251254776865845356751517291564343286171251528426123892642944494362922312269975551755441234131716928671641944751465526129891421915775557796169915323859289852645212725576372997457219865328398233787821391357441753259298311843669211157918886237536531346983545874211154527633956539874989264325867566363647621654538741821239123173739531791411983113972921346999578852898184671841295216885959535921392862544734741387784419856622436788541622895156985426738345425848668125518265254583714886234569188287276947133952821537156614468226282966226396324829534341664682359665117557587369939195334416172791994172297342812165964675176624147175111646263628867594238115251334922751816647511988898216436259575247517636836856165543957793145638862544652713494494466969331691584729596564411213631744517625711168369139644584649851782645114762657876889238587253437943673267988388196876712393624387181767388545748921393112434958529154654821844312692586459853625571731785534924513441931516923989997317256441389897345795191563158413328476221473673834733118991332726472943468133135516145138546815862528953581779558765732222729839147773385614924244412134364253256528454188337223291223388837387986126772641722342842523331338716566413694478461458139292346112499344851321613981949235432376125615225165915274262926236492719358977255156634235117116259681711139877993196522927552439345866172661491516555581612734713669223535916927411322571166585233859113369253934355252159799685688989299323681757297995284971793985162316911493529273512625249471725518699991355836321699559994271174252649395815776671825213835168862631843836672749731949121392295917124625264174222212569882872687728482273231573212921941941962589669774739774868761878926751635213751871669652588356236524318194531182573883132331287573692424159993798182977726732144917614721969598759725314126955676789888459282235766952233452797622345659286712882276944174935212572717227522876928613261817536426375312216669611959295381751928558451627653698341953519759152672192216569567536895116218284341586471135239516891649624721657547645585556317614397861753228127223984753473113681773843917628398551985319967973736646527683515694245632844445729119629152546115224574855936824333546542493813142155347271638739311493439335655522763265695482664121631853146738263411323235677141395161117192724644818751892754266985424128276229115882519861324359819233638291563759756582463127769875633321499143825773257699245486937579582172337897465415485736473137568715896146861181698661693432491819918327893665583222315834578632157731692147171415331394578789347945968976952393151842139997227954361214549336477815685445747276822472598447442122483897145162462378982731541555634343936445679129231238276954679748624495248147182436555487939738772481123462825873624422751418248418462842194911835229159263885143912421297128173472286118725567523113182292675257169135182878491687362722534961836674772716668231866412371815562278228719727684114156312417542395749316229745935842323155291261495921585955246313429338881268744325634965578928344816474647327247718539817772817153726565929927441414316222153495419934565332277439871453146532598493711639266189146417427885221987234676181579611539431356659141869418824925474347761158576245197524472267734294511685422765126776472545925533498668521654737399561442822138951695443341123183939656975229664476858524388413321389993353761581393857327921973931611648675515994737427857436971166445913593248979826837115734142737678384343153363622735577951491652332339874961299647149443643561213623635671417982157136639811435759117284457754514516232444542186659669432399766525147659399894452583867657217719194568575323893981559285424723553722978412176371818997389498624596631138145256765539443948433621293355162272737282532242731914915185748441517462142844789277285726678343791671294279742682819795781194596158968412634369372956725954834854997175159518279154952235669832921243454747674629214631636433432735528353443832744996663837765227431356427974211328219681875151939499468242724137928548174927936595139577855549724544345825237799135845683919846625624421857878997795893218838481113955527798333411733623391312899341625622386359826772678563329945648228661382797146189466957741387814563349939834162122348221646988153364635421651986478524321693222151372757367792557152142429574544462442556385215955738677613111113592891829773976793851371758293971938976817925976569548225638592356798817729168865142345655154151688629712628596716785741253155129172438641893544126243573671654672121765381686677293625918148374923844153833949123836421861435712442471969181381395773651585223529461839914712774698424938992254466422249861521688711347536167111421737196985149852634846622211424742114998541392993321157539342635575749354538656722615668487735548415521873963653194479281315181283135562359347528228215741371889432946611847115927829437147877646397984611199649222522111582623655437957657462277723424697112461149595161463416115791523159557582727539944363552483118767667522763864564426477479875439946547751678564397974484185432725931928171363992143276855795479443643936879127952649859186234216548448853661759691411194399651471426363641172954781185514853362645546514631153682922632296559517661718463382395766132755547319997951235614718113944652369237497875536983995973587372672778385484435314169556555569718492228842379121454465492127117525586518881956137951346191932879438823915179344525952883745113824267363998962132358984481532575198964183925254598133632267587699785141751841923823925992878597826365745946289617152557245643515652549325455389521467922496653544494285557121596985968857746432688989941163992573271568579468378635694764825949295329765246133653548972272271934646425165343451739835126138677775361636773143282419895415982893794744791548948155269275823621346294798564473589628474471832249363278147517924723168545756895125279277473268687331754578791278616949143394716473686557153422769138338755923234548119413671732586135359761936373565743184214581232491299161999659491261391615284748814331536951673927947217826829254547879291759241679737445788678931742446363365414284917619432821826677399239315993466988686145527142934392643949434698218213315651317734271326548482376147418251637617769915234773958594568641611252372272832211622429537393223399292311534231615624712267648988681187948543976149151177186662621233148387674621349725826139826856458255571153357139111971528758333312434848636864897426612285164891266385672891239111631183295338799211485612968344712278492189277541286968692288453588974377525438553192163143138793766431476123547463477414653265648863739564656778312786668627414431975546158324157314595326536615745462927392253937944875674438769989671934293738453911331216598345169929123448339712972524862537221148353362392547968813117216311147218222338678684563535311549211592631291693435979631123191643483778325634672937675697842439613727898624493635612613662345767461664892373866222784953142637322474148169562335917211756968483814758116562487697215386163565647189769747669877266172322577725375336642725283974175147161572248564992834254874492289633252354968912389131983958739762648574922487234354853459334823882184742473299577897563933136699562626376739842717923161875636838214283186174184374814148997714967714748179539333351142857314297381821838127195991796517756232529944418433631519294555286344162841573147862872241151366512692591641914228859635511316461793724185693317515928228566451412328224816834421733171147472293222346141316142418215848343689732992543553343371927941944924124231824134737241245347614321962994542691854857795681717623686479379873841344773613797919983383232874622378436711729366126246393352486183685348867668464231426493966133496531982998538368784661879823827189224229382455415162883615833562516447776415443162459396297123168324436137648731493928917163211449759221718442863332817133127622687731741152995862579676689428971525531271222666982386962389732692272839443447529625265236182835436182155959225341114155288535121419561396863614387591997628138793482324924657587545237187316157651459344971787115983657573793579186698335765482694145282662762626784863272762975652671418996655464519674573452324835583214942773237318698132964181124238582625369382745332378645895193495316828417634456486654679647267533433848751437677282365782916417112653842353976333731178111313998166581227353479712329154784618785381197742423717574275749985778151313938142949111618318633656311879952122762774118537979115897676811262932733475664121398981871351753728541841297124523471297456446125426641768564921349518284417341241451946814141163757212246721383545835121188196222135496497127553467744561332517329196858728966536565927125863847761642664246614461948785354117161816185815415244223884796199343436339386474451311717229861112131429225765466917843576549229154641194569124236157683214363736816321733526415986383661759726417212586874139814697562122125668461975955952499238287354878312897835779149442248414385948495515739289441549225521324496937393131162176885424364389371589868935984453831698831866973931699534565372473182285367552499182646824674822848967395185125654823275627462979216138661475183391154471222159423196738766419966423411223455854557296695521385326872416393419623414137575586141618262613131253378451595347898164686278517534932254245254376361148343445494796993849431562153639458276585279493159663151638363998423742871772181375617757224822252283933111521199874224135991965565137945128634211681987423671863963219756336187867976131167346783688652722283984344178831131973624699285113452581816243297911596196573541676996237122747948215771214327499635395669728643714535961251483711685684617952154333677399912444672741726894852587783945886568521325515341584248327741186172597941132637261689199231955797477834258362649381224793961225272432457853218139142633814788131692966873559976342116641753261431325444845711565493729317842932891377113771811837831524691391678429834276388486577597563747529268999294312117713352262616558457716533229928715418562251125775671681265492231227838963358515299241682873534166191582928824169621451216168341356511154731982231295834278967786243424557289575973311288669674587258452711224676142283671717361735121628322428376246455419359873246442321519761646884772123575421672271658455365682661182535478626999458679892417245512655957659922426832242761362927568382764161695646332556523456494293957372796861668499494157841993733627499835717378714632163563374344743423915494761694966864599113268689494122186281628641166739488756136159719812265727345875548158638335489246155981196681321948554314533897621927398457276454548621737441861347373147146282282583953411138331425333787341297216936338978523294944123783152131732754383984555588922246953996794697349411283164351269176633378443849658111754691275861186845778684893741484173453462982462453527875424326134858918814444376549384991734154642487938378874621135734754271164967222389779526669347894798373628299636238786726194719921223112571329281489737523712842544734282839314266513414564219851854751565939313418757854655877521723197951694857112392347591973436386461291651425881732899397275212362577482952817767238661254344547511768147922947621343992982911966566212639846517256618373788537167298318645568617429171836211527231161995593965874865727968228857243977254227321971382423948356225633469747115938673472214592348324162228251794176368222663189724692172734194141691746727852244286986178928864171486394349246918862617924323128787965985678347337762753853694217771258853141471985773181893459712261415586319949765521924373257145691866413289298833267227421249257881184694223162792464835614523154661152362586162959833633954738232495414821132754463444119885755661539373318392886384195442166547968126543446226151197632819216435174759944827331774118544512299563499877547754982318248656946249623454425534427445432825384546692776895177123324734798416427782119881193484752921631868354623388436726448194116354625863944229852652124484216273886232748867838861923857715976212625437925641544665943166954857192218147562758696179794582559974153874995167348839512137629785221682121591117144238514624378343196697251676156716882213645564225359735999135853554752346338115353588173341584461166971235892177663216999399441767921585377894712814352954148357296427886812322357768519651335248442858994288416761373583175831797619856581731695526682312857552435189413153782135256251693173183361479281135991136817799834315935232125765683963993722924867375865151519679134283899417299669329243465389535873219218511612332562937147846162153116428927343971883926499293612138312616458114738256226113653283645832496145421148848743216892782452259882311897463957425877212729713439358384438563994289467649362337562482184415472845299626951715545172415266654285269745423555471845115279133343564165119317279127519829952463218761494669469717169561371348734132916998398714342142694644932242336867155495815242712367467276978522519657247566453691367657282443847429174625982646595179627373363345351931173542656248253346762749274958667272824215253369645749646656847191748642711298918318828217164172682167713459715668926248295632262747856494954688944652334135844894344317749953838274882215314947852152523918946372732352959282914279292372729362981566256371172662827132282584583924536271645594171133263559661138811862489431875862481791318461552282726784469694826774552972131863313972655423845329132762344678791614438546956236632353964195266633727665528968687978996831873285936292221619436479281927787485899384264563889232652635512876348595523596937886628145636125169219342416352872321191842274822869471776682867581931974534768386697717712161114472519667111182244169964513923885946139838129618539535972932456598694479919491115867751338288233338259189126468144877585629617311973321821358767731414898955618715823845114458148134256375783715643112995115655841965677388361521321151721896441492136338275916212653244659928123665243944354986544993912154347418137833766312376311869684341944673584995123753487317139187757382688629446334194326234399418381411147157355194622342695622969715131956458833769938464969441392663269444161654759274563548473597519321962814449767898837513458537654629534615461454635679263629463662827636854989361367664498526153589125238293639727784833576771656724123325814629985236756685634453997813176178113725963967339481979697885177561895465225661295389186937249343563199593735727828825777511757228775177231267796841833989996517517292579316429633261946192661923392698522278322111321771615821717134971154377541138272371338487415936486543719651945272419999671245953813359789459566629887476622427646448649991431789343953582215227655864251281376522796714465121313752359732426392558714433116174145494756657465169928178456714529591224581424793324464693456557163846851764787965714683753499587565191616928183782261931165134759816735773588674751755323553148343888731539531352935829849395829114511841421911963746798114223169369761882918837699885967548535667867368131682859589664428738871142497943132355247148523965558699237142932235734746535729636956426829199551251184182719958126562163167986959823273459482273453114441674814723824915485735753166746428595636852524468714418649656553835858737479758613413815624928456119181181361956157743483324131369971454294117834282773583751485289252918726715239645342423469449331136925327531272224516753252255954852992172679437186865665473282898866241858932187479767761421142913163246774275619231267841612122963686354261573475345499862655312961124748544276624143525867881777453683965488493331871749485616246196571872242562873831593674221465338565153934152313231611524319553653856549756587219168163377728699817914742637158598457335565213127539975556419159864337862923581261815173736266676166652467881115457221247241163727547962896414913548643734728347993327537972457679923743359378531131549172138659385536235633732574693741736276967665729567883832282648821862914564212928433234887782418254876574692644877426776742282758292947729374577152355476657327993325323991536593524541293728216316486759433715841447578257557451151451116296228652637527556756291356269789659959258175291546853176632242936271942165194179246253128388134558489233694313391518646939637657321916633246649532929487725685224925221494341343324283972769233251261477631955558339715155385453352429275739472428757757756686646519251654162591875197154682538828124476789152917486653934567352379449692192865728264119431818457543456627716573126225589832474732843214878539939653221144697446421424228865998762848221412914467653151144295923221224758626646372499663467757647479759519127511873348546349446966988116415672349978126417432725145292328996282828383374889148921181311153319278879214111238178277486429172582655136384275398668545348241798795767278937229974568746515859187927698816637361465195562841297986612556294482276911749941749953428522814827368934761112831487657821366592627629447895459941734137256566791259396484574373188578344113362168333747958545811285321315672424931993814356732268772742985736861919717394862328552299216963745517119948336781835659711592914113496611435182921244328573222831999213923252451313435196425425192824586842533715856411415231329992912795947879611149546362121947552833864639574677134577262714624146649419616692638118693274521779667681118364739469146281679548194287162422273253173364649925316378325197548587139268424555674126456642623474141815694411899164693236451171533761479488938412156962113429544583859233481755726371739768152237633284942954967154293545266225423412744714966341313419654321431597394223291942418526357962137141725667633983134584425941936333261388286971221177473854274442189812741882677527626876766239275531839147823171178882883885526645949272946311423374616561752534282282279823651349991596324721973373721323764594745919746411389645552292239898728441433548918411161317175333696517861582263146545315884328774984417221297558824992521138231863298528215153592276631632741893769382622468131341547644575528325992598398244162183935191631472618258811469689821524587966635444234135888411828324448123963497721458813786495928888351626342114868815954154496974547699614514711439196694148632434435446491632527314629475462516986448459914681684555688568394195846113453448256838279377716734675879147138155321493919727866161466326223991726466768514826271644696635362228956758443856443581341395337434113491429962341228752824438767929451196284263415186159999219511747566584798248197246655366493372186425151297856941869165925781976863544657467123989923346497777512867839441355694692752821998642542317858956756354555675832666566621756874179316932144294744434671943575445152872684651758294573134545725452148654823944444441899632368154323779337131848839574971252258525764724625312384876727112841889479548383817562451894423192838483634465291393811481173838462154643595353771389752322862252225294869629855466769169759326426879932122643221783513383384712398648598882442311883238318268872491112293192439224317556983948391867323566943378186139712233786315283644949836334122325315294242329446345838898276743627837739388358317162185528748163614155212174166947898676846752979757787281182232779995692643142758337528883597662318161776426182623898972672888881275171521421677675673356961664732221267774499317174265429398873843194233879374336518398422239113956889281851889252343834113547919497748278468232471961821124755758825626993424245783237498754941529691644895818789243873257543175415534882273781474859513379346819235511119357261187688416978491951341162292947225354238691577357832395934944763853441428741493929815491446492511171455758167364983293731924539396195491588599559343847998373993241437656475734578177819468894778247652296475516981858863299126171722479719292223213197839565483331658665778615151932718253584256244793633288352619165443335794124154341546729627226262298262134152862974419276743869216839345814549259822691517824344188676963517684359141881944854565161842747129411131181567147254113552455723121141591483942164935882519952385338814274881738536653486162946683258559397827246111634723648815555879684289145321374571494818896497443175223341698579233414427524412284557112169962552325375665528356821366173244466759377234377867429536197747814355651481526762492269856378521627539486518125265858515712749316891229581665568434924617266145618741856586497121172992352963767322574857345281225859339388631841211851575842489373192986265353439573164887393355711452948572638336641953852893527872543692955351783127855279143373935374134686678971336663753632236221293633645633929338296764999995227748338361328299173256242159992568743313987615557343541732553364599423436354475937288373633963662953319118351232988532377939582457125674157737691597582916178931552599538532482228536426895931254445494675843142297457169787566493534644227137784584425269213253112862165787627173657551443277429559315513388573758983929532866914294758414836765179892198825754992164879933498863187913726837773969662294821682289559713259211485347589692583262642897824966782162462269236767479415383313817562326219926462465961772162226675614981428869574937829554996344545661143327775725766381992359721219553269344112588976896427441112888742346459896824763781289361659684668612862755873117235173792375328877971527348922922713644846751895792283462813418195127213843293122816134532212126574217186932516974182491195876799921144916731518922261138947321188741497738372793417599624527249523254741936112427928548267916433557965647483145171661428815851217144627838617532772712619667993668235366568945118334421715647482837783879961273832475527647846361695212771552718364891612936223183419974575824622746593362878329119414149739871867484141173336813736397632177378818881315315122759763764372213235763137518465216471682668267589233551453864983666977438781275826877897524521539127972818251367428253461463674419356659356913312837851688188585649738716982543578114954835944783417125359351316936765467335441677667792954563514134381827642811428438693998116617946615565628948971221882413786879383852271713953756727755415921915589357942221622645493132289668922143645671793854228516211812626922229434843681142364811365768936463547119995135621946671583879887645446913836956412666712215628271141189613182616584866461668358183657716736758361794278511933934513283598445547823977775361226945312545459443118435863648334428671931542717538416139325361937771839182367911479374889372452891751649863472873311361528675966647396413289843769122599293456626221418233589789219417219335693349149132723937313565666731564414949579933491683511766711795632687453379823844583996426916439414365913146881392515746427646752528313822612724549783482173763622587276526574218558262267571611473249722535327387331976577543218589116971198918487613869362716387572733638766123961356317931986184794781241718382822774369246235299829146944661711412313492972512395696726219632485259333672142858442841397576666293981485234419421359353626955666514191994572423433575919617391282329121422687615427151452361477171921359348715332297554683881458197465313776435638884533721649113115441373676741134723858619773483927428369284434732699962522813552265344623753828876212143882799417235383552743533396812753159635229514487669165465213114769138524423544691112351614471988542433211942122379817117838427678651586959493511628519162952942129771557357562415289121282554236633653865127526621824597757173984992552656138678389925635755452544256189488429879544349923422726628142274646134652585299779498787999313195836738362335135399672366654421663128986454916872447778489811636713355648342993914292438521422893621581947168931214792897155278819552258423563494618578224637561891929924639161348743969586774476155793112135784169154324475596286122146379457936543841753996723393329312539182378611522165183296168168511223785381534651983951635296594816111945467636831217376452836332951292314579396162844686916858341535269991742213543633582233436388196719478525577253237391498881234771815582928212853384213183614397658235727575545579345449467481965864618236214511321188971966886679862135291225416424425484267832371261911237267591539911268959992611737771214296543853173991667489296628348284955415233911436977138263525419953248575527819134652727117917653639744158595629965225523868772274166756191892521459785615125488149155739686147969191117147816175777447962497649115427163898549713582528345211248673118245176398365249286149743764472882732565843254237136577252613213648657477541286118517324354922876776474391712497354567152547781391418772494635238278789196278888718421574914751461953297146646543769417793296341961198911974682876192785612127278429257453252744213177535618411722746526846436193253446199942568263827633253777277224486269941198559491739361392577858675838462318987594841848339978282853781159638174919224529233936383591161638461341176167673612495251925776688191252164314884337372856522332921674892477145788574337251922631841393974519987273315628782338822824654424869432534851624366124537884114464569351578241366798577215919328121321147792698272938965914954914291533326439768235145711156851128374969117613941476714974427473369683311165952392495532679372324785278777628644761757125462525161784352475287722123851466575217699731991229598468975373479464386724659445792591727632448595328159552779433193438483598786773539231711925798358464387299395981216715345411534479117592812899742223225279551223596121748647257811677892563394931178726619422146459136246593636724217985218657425611847336851658537229641318936268318392751354434312375852395951928722788511472675675832775219211177143875327248121135719838423664421488681395416334313685627424754156423165652114196892853118122259828488184747188576643369732765436856281694386392217254461137631486517337593664928132652919441654725676454437732551726687667664964657825633127155772383748686718524952794659235135932141746953573131592481421559622681212421831954775916637155158452264297539671537215622611291313875155811284941196863369673684511643246524544915766823787817911132721573739175685729816775676581421387954725782589217496369358562672853783269797428582331575419371243825745815538913616832427729615973181731432336695177252263168923712667256472628592182115344311175863746121552185231433795678145682276995159396721112241433826292272543268861618837848966473435357312985222638157236377725255592955381376638561271914776367455826977311247315345576948633559226196496435182869271663559852342364266639746925415834428444286781414875142934364715883672361536439834615858875633823182234911773424437779479758677828824841889578438166539587986185592465232735272843732792916325978424559339181571818187226785733528428116891971795584721571237161835544348736359461675117359396129741834437939974425522381874792426198823124475281389467173263638465171721168786559179883428294637538137795465172533516879599168932485315657932958155778934899394119699359335665882496155392234295669289195191227362688211986368584211889716499936323297924171151374333996753677215634183995712685572399798848434865263469563889538623717612253235628399786386916321855967624841675215591154321241282329116444478464111627637387396933559425337164648684895973747997272879664618314778324421669313515698541378925369562995998887274522128117835475265652118896519797926833215384912484258172724927828881685794559612657451233238428412753528274674714587914335289758333414729392153549291775586245166327366327711542823699611275713411947886543845774312116566673375185214663523537792793376219344549278913918865976815964591718412181695571877175222351649559869491562221196759667123983618695315521351269461747829112717111196132623448976192243396754716197184816597776666574813314696339614876447229779331597736966721934683234536359482558184451468521313478626889794567747926184239133498494883297231192533366491271755716361797448939633434361767292621954369536122291134612679223558599788639921983392738241271414211675235949771787594938788659371634121255269852428844721314925792642592128375453935981825785435652246919313464587231218792655985941231823485422915322117236551228262249447283124732155379782737315692226357121686643127289422934147219427931555481881694965722321351113813779123341623441972596776422836898873335323769587923348148572492636322843648469931168561951415331669569952417548465716325332722516521351414637262731161823217282385123375394415839119885743463751765831274315168133481441941756343212562788436838146697529842495838661918212623388186249236653198188335842539811749815917299251141135749678528117623892224939774631349128992443462151319195253196592286383121362412761256116941519225561525141566953662387889668626471383699539743893367195393175523279284839843531935189437364822268332771331193364312349122716185452132121556243615797845169559296971732922246295411167276467318828489572998129951285167811831937853247974529538836678972481353512893178929432973991776241598963724191718957657284444916435453354368958671167239679153358261841259651888818547343856367674528625874956481677499222323941113568765145574296646132845495876497422156184871451142892332344491412292521246972629368234791566419591434724123746528937755912619781828848278782826966146127542287456327342486456595682222556325317242429457211156899937421117847737885881575618591271885593165936463474211919872484974622376665386315665351955159166493748591494817535332614694491522954877922234959332637534153389531959129616394757266181696532358643192994558291895945314288357219778128564533417977623345465111772492146189439911432421264836438347564393511587766799519995615899947826233565711847822981577198874153929625689176334444625226195861597911962473197668116469943675167584438235693196826316884254518932489457969432952169621967433323798331381688133719824373194698485576763533739817498213167167653939434615593264876282193645557433824153295587578276565974542758534253157347377946823318588947475757656742217635851824744517733644442194532737463826485367346562183674842137513946136942276966639745118733886797947329612238151157794113121641211786311982397917583867174412345223991629781258683935676622926473544367814525175496791232783992446218425912718833179134455258477781674365991911332299412531896537548412888282643799747852433148717599193762932729532284861815866116283367533525283994874386535613135919384764164285473232741529279732746714955118189512275588647654692579111837624316539662223376389938452263731455629496554454325153341625378187272434835252965655576413665256221825561223862736787225999811841977854757572511467813861955639274874963351132498514378245456588477857698713547715724132295769419622526888213721562299371566471451858119212518534394873312781163149913185629612249435631877464645794258137892119986472418141149248452172676499827992983444624147177948813424219141419394157256992274787449629422361971141599241655299473446277352193856663942297944854833638473193481682158768575315981118399985713339598616562132884777194724757238186472653255635816343837245623839778284392953577117319898757644559663943178133742392316696115463571998853829728289468879355879619587754333571281445161499382329728466922228338968215499878223714941411272712626999878968734966329715728312241238684157296945861453878912934127773659268289462315445828445191211479548452815877915772276796474732674666584413876335914891784172574331132872821548358592718534924991716787699258521379121753775835424188333216932352989129357215913387166441299917641128943449151572968339376144442885755397178872335899314511118586357682414597818878426893913641421456343329348274993473922744573549335992928129952151795965563555217363685554321333464395984732318112842145333675847641944676871847145162328329147473514379466488485831916421181382345344821555121261614283817663789114568158485153672452727546369224588365551668151196343766442822491726334929361247666975852643167413976351929744814158524551584281852277573333469731689123925718973293143757429796819893915355637951385245122866489233286624177854369536113348257489667628668716587288973215147387861431492963622532415293839418617632654878819345225299479784273221432114917967231339812912459267666772526943473336296626578787769185891135298841837253663875622757121699965312183647217422896674142873111376338243373764619215113582113813264634748682626216152193391285658443823193587352576465251157192713727732484158992337223229449844389556541983542962287337327349669216939953729956527457546523342977643952127196941248276455772886212114325969635411384855723211423894221663919222361168593822984555245931147498884331914836864542392919748872826732495326484617194113591737893948982861476433474278833619658411423235918689382281939789126819858782425492678733793468844863539292169252415516253934891617852367749438655682913716542126538592571517988361939325895467522195431538991649639199888583143339558528765828193322311365782536557321974266732847227626634368539782193351253287629238412752878381232454215466917642172786893917176118551626118675743711459176128367493678118451735588622713333223223194399387483979616681884731564467942448851512446729594582917195128334432138291245367984146223252845686526421211259647717939617385491593927992491162571948752441126896121913561795364879739818565198923518927154655918831153322247519318667677852891913813551914359442291812622294187752698639982663372586176327841239846173471691542413887541584958749924324692267269243281234255999841353415465252547613436238527268127883283425437365578536489757829143375229374574921571615936634243966496969822623213175289111685396412712132911585517638883861945639481382483941843674244997423473874275957274649672552249336592555379465151126362336394986851223211259593812212156595998197266397283348391732855311192359957934317886115372427922369936545321564374658761573782834517713983952741193648879548186911117373749269965545981553389958111194836822741531127229593717249341627684531427954172786259322593596367715543496518256222516766777253184462672934759193765242394639748241513571911686579516451587199511131582248185773917166323556182145747232879558867873846656162522566995933962668535185259982467165535743614814511719229571938476214426411719189631124782558329224874887372338631654535464758398292825369312847799988437223363729129144234455343587737464778954559621713286132818181215953741585698549691513552291922383289356671424674778477391738167133113452293617145514562585682569985522133569151258774292142232439965445237383731688692854554791356329238359127366341944516196424928628851343644913195158616752185669611254655918944722921668344442286314542253829989762644491199446627813417753873245795551623665543864723626362835729332561863787128637549496968628645769572642634114314225994227233471392151457917165527869743161912395372635727269311887464275426499313383657985528344316116158855658463496368315263145665183673415243267299517816498643131438258732371635627538175751942945248194944723971927963985844843198153613745755185183425116877641431185219115197314143336316813325242459126766289459132887393413314145175885987927531717248443354139992675818372621857917989422165185978149574937646419446443499863631265362978353682444932837187374262671722442265418821115987216283785471142849315136952859535433924914391866974549411474266155961471668121822152592734977818363441179183543791532453377558768351837571825487311521246227536961236335532652413514355479471183596151857514779419849976941462754824165629392247565993338715347963187656463316616135442628252282341279287173685183878671545231694128964512844994924249368772522123286132536152542757598128454851675552918264613634495128998724519521152986841414639525223313955629875441385132611321779341123576191896414747371645154392936398764158376731635686796628593823745365926941764858982781819478876238561336272953826923235322319412148197561172191885315219533643464191674374973831842942754455715328478923313984287335942132329148535132659349447122193913628282374256519757787335344135157392657411982378857256756569472549994528271352938763245782576889144723536261283388791995278556875455453328336362376452373295975811453816245638624688676114851963569582987418181563515353955988335438687242243561993869942895884974625846974552722568638699669321365265413539487844836184689862242272954348121494513916274428228276154153494942295826649492324645116391552866817774663256215532914476643523145875278399445964842421724612191443925811943116246749625359163249734581716818741341225346877545165658451134548241485853254242976333696791716258595218217155543284777953776621848579395126362424724468839291484571335458997415175434383712546863756474484361264176425929185622942144969394221834344371718452764258897242342684911628696618876498533673652721362717482417197536793473114492351685645254936462483189557623661643358771742181136854941943735489511345768341925531562151872155797672285385173524619927536293717146232337742247735151573643741944163255237264244538345995136797278565726715585285374433481142934162363861839971224178312246989678238788195293883435935843596492523128522971935542762285939399887867914966548176386212953354182235967223358787562694213429833512921574336131676883442997437914712177726311969686855439498838145185516546465497241544811518881727442872411622767486454226474252426336854964259984567564197983722227266157886716329632518644929715539855534656147996214168662822325296659726863918455189292461961695584254127691729986682681553971333489585335576613174139382123159514323431985911143177944944674849766914833546693575866146823535814393131655955649882721518215214791796214244686544666814159861536621821772711466222221437331917584796144732853992326438611937654272925279994543432433628522722869355133916435194275177255197597366636561559448422322338469412172662898554856834152976214553815443666184223374262465948693196389948641442117393512378792445166551516384543191595725436583291623517895724597523294124863816591543678361382423219712392922536643179544332285216151455935233692269751143114318176834884363761972529218241372354656591354434153319845628322631963424395135382847539636945961358242859611244122326839442287931293617849533153438145382785463139179625269145315667454446738131183248272438129966897993855275327744439271734582283177472128964681922851496464572375944199223274283366145196156742185198348867771265199271721873632812664821467579327288261493112767458265896126381733968884795133341512127963545159268559567473354185826741645288197188114621263753333799582533716157326599743443913422523534138843924672789172316331122963133149818887448833915889222197137942969786448293411663651728928471396386454796955674331497219849785195389866881132257441871639293397641728542815264929643428645721968777814982986466635728611445981981193231259661793876137228371357821479138213168468428922616611573569179497964139663258543214512828398118557758571229144343451351526987369833257173239495544479523591825258938396774441467841823519897662186736774459625571884421933193274643296998558625615885422433226677115849191222222337799912341875949613196714436985834182862133718493495578269216453733715167111252469862233666288744359336934114772554243728258144499725952847859556526617665677525993195695881335365516491788894296522161874716839274156288117933641638987745897915542597131119118613992378419185264772477158932834276499259231413261656894211143143896296551569974513125589766656527361345297634757855778387321542216569679221855949658561543946429338968145593285831334814512331334127156139318648178921271514221641773361781133638766337761443621181335644849557194847724219962559675673382462589682334469983841142234448323624589676545649671962191728922122674788941599477221352617615488998483182823848594251371981676688714668812927635547532977463658795747252613527649852318575587252252978952165734589513758476428315372396476578745346988745117499875931513835494531135356951947849919369142168911527243523952751829813167474444477812689497497285675546632855672542514754727716514165174123373773119632122859763924593623144513544434756833718218193335816899472945281219686641514334669542118171872611434183546367617617964665239116229941194533392545224226841134115262316925912712931141691712557183953171742837891479518391128516637542817451313713881377438991439788774543165326344153516462531142534281834865641936839399726593574419366286493277329255673658449317156349521471263297727143346648825269136328412899312339351164773611841188937689823418553962697152317742336621217169895156362751245322779873629921334672226676993224472687244299772656477741319418554927579165873546619356913328692455468518635749178529415465243241878496318121138292195468125163784455998254312499611476781294319257262394444158523324496148515768191113238214386131934664844243484595811628955639323777966267215139662441632786668162528254941191116962798611563672265595191597242595943774748283797117235255831658183138281411927163238393424652351171519912963936941655478296411617136378277217329291536864334829623532422191575931213764265478965612512113341132857377177994272787929759157781185166862937294955532942978392394235879685848532214951752286715543579836877146914982861564124228843635592735689714815419896978375786485394899121484327657115948782516315693827427368975289145541693193448892358763825617816244814531547414728152774744653544395412298133457534129591779192862269289545634921295721245148611991111392716527474838371974224776261944533596851179482647414969712389936347329665649527113364835786244418437974674643738483532741427511433936695499423725731595148648316123429434651162653431911534734927253682877444486637195242813379349361177923195422965291662912495584559981966943681386811537128546418431665671981862121934772798748139565357838225417641661257697876629646612559272692818342875943614754918416412342451377782823695397686888234782443684961636231673933897642981687992412643742722133838798457411262234342526565718627511113241543187853944251691917549279696528522762624745599392588459355737483117793229922518763181239235891843375555351363997511979795212959595639847366679939656376443964119273564941175635195874295684874945714468466377664221218913445114329553467348528236177448811632297583873269825432194528864751343943911449696352181423169632691625669234315696393287418841145264421382522888626245136975874431484593435657991771785158577376922536681916582854374663646481561858921777452337817411437992922176421681846743168963713118116362812246694212619994826463782829363343152181967554235152268795474343241567761786679796398126477975929514149262213123759281568998317558526998311712439919826352713497489832145644379648918441197239153545221457235354891157738513636221781272681521271172186243793168431137521138198312464159765921935418797969514138336266911753292946779868353774154737268292237378188159159163434228852727184279938227267451594272326274921379329616315218137793281753336224258772875457412414548462646647476838379216393856372263675964453628533174798123354871467577152311482218934849221725161229473187533533898812632184363921442478968361466851883859194122572643177353432224219527566239723664782216678342711275149628936465941542111915631365383336645669285137915354977167397999289477443524237529735879321618157827675232222931821855351685421674529784683518753391273193552776324375452467195157696363619972725816321299139228137427728616782914194449341678234338722226683343628766592721139641248582318738854863829591685417854243828259766946843337133545264441715337279662494718454155564566872749851961598384152282925295714398113536151787992994929982124962543326499857331183173115558118933718927361742317852754681421724857296262524713227563313438426845813988443772956879234223187881754577512623485356462412544849533852746983486635517765679372131744743934315131893457384974224439332145695788334621931541754262153626459978119145727968733158144783751427629555318396889647582789735659967913397466362821553327138158912536657452163193236294496519436661713836559889727413952541868695328434355331824843712455795196458975792879353221391726497137121256471774554794661646163486195894765957451724576981847489685868171815641376532157631565196245378446354972339187376275126298313499367193199792472856387323921747888212564883131341512555794662269563346369282746539747791746976541833629163126363617192967561296464627557134224458739574335611453194534422181451246171445318663165943724497357434783374668128273349175293471614229554122735235557814689673732837247551146186454552412135571131487811972462196914178949963851421842721161319545939196672856482143666426152862637115258699473184434384121924855969422951271338991678426284418932368841174655219741629264159941176482463955655524373264399544911976928429594185488851579885644239628133142851941278932499441986471536377256632262268712837138446151818786568476674554114157378636789151135492914915125511845138248971181939918941186851674349861118532978663851823193753325131144126328242486952585779661173321856969145725159845231282229739112466215151821223419375595347269444354198821781638896571538399389575545453473958352638616395145229511251935483954154175717153226192463294852439222934923123154875977563729926993195985899347669663131685764116159444899455657266647819672416878799347797445344496758377466447532887156198328345138416375247851959812511568811369985422498715836237217162373715497926314843837311495155547864168328949355496736159524267441896834741494451869543261942644752856334515375595352246767385689453144225243632127832636366575211493828227251445886442171621291222812112634351413943922139714795627683957762838491628122354562772922243862792854911148426819395162423242742217432231411183193383315291362776279469125821521476552823978353874283195897145237836341382716455339516145635613765311232148885369867981113222333573829161484359135616121628597121971512933985248755114563632495414596427663683149664934388624423562128196542464134781335913572183548486355476332773348239962423449539117464357222657231819127337853533816427567496231559912412493493995244421643234629546971277472242212764655253152547485528147281989258747973914961696474635967666849226189743699994119226732272885815425341688713694469256369539551649377775632498146548289315458691568234539888655534783477254825899275145545318195931833224373663376692512232588268228225958463686328559445234224973235747615153228696357293823676226545159485662342699922281427351232976684428713423781223371241358396249512364747267897654831221722221894393352565539251827828592216829899222747165126794661266261263398873372319953863138821212892375121143832981511264181653785718477959876338357561231392543664288192853787233654676951569547121845623432927234833372544748679815617455837638719491928392718379151558161283291146153596638926261545731178563481415394982843829381895769143932577516257144393246571654199965464433174271179116352334952183695478766267838474578922529445758332355894272868676859771728956479141122245678436769975623892411661739819143298683728111472591449747847424667458913152654735243628493684594139923571337132429998658187711775641619331443324756565119216281914625324259823664411445786714239452967865896934373537126198675412919269197657369134789974146928526551842744264414597118326499486583454188761256928137845663451391215972991764141137221698711112172769881999347883863826462436898999982621421179329137437551391318638565299538868747541624651265384812635939877118339373132982511653396194683283737519327929173873826732962475281411654143278718222776881128613117431748884198734249823549194881996412928532936693318452239392458272458818126953821489936396948281132235812275144552127374788384699353913283398671191418142717951539614988731946129213367428682875335986211352456369994792243371446851813689591235622317394545198487732768596192929821372273861891443578937156173984835846921969646896287943282417993626745938233948946886584729221591939568116741546629814825588787562575741441626629512179548596335296249476539533496331913326997924298913556376276286733872172572197451596443933423395191664985875429618422169265791112768349192292338931322311113321485277672131368555467832139459456848912152338951326426347672251381181446584242251191359694379719425948111722548811282314418137776263854611282913623831993273527162669717957326124319842644499223984469442332628219173614283821743312757783223326598477881832517471323776655558741116347413125381354619519676365812849399624614543941878764769387134873822944923845627814893716725411333423994522589822293482581552542144534154789898598113435996115364942693798243512336257839292325258781125676775829462679794283314692758222869735453751667436135189179955496973233262137648858243452367815483173115388573781596394222321196987242773394466538415379277397395113955896462792439462893334664589257531487382947854153847531727896384398176514362134912645248343594365923857317165573341472274543837527893749731637987468769374525329931364817319431752635621914612598855485567378561757737672617273473893454967862842721774542552778434951179635761199583741566832959133591975327959238142395136828721355469772857134633985713751338971964536125755189575137725643599824836567318338213353697346171641965714245694463483671431919615813332117332572135842488242327611677536697189677157925889495167816841436512879311577832596337548377188273861875771779834661114799872683214848189252482361676281465889292496493621482731166553864246675955567714514477268144268283916251654524268911946784686673488525936161599853776341513499963175687943947495914995393567345115356283135973817556771844243541891448195638755299321365371112144118769647792855448879512823413483279729282176173999644826383215518616131952217571652122378551662246321283597585539421817825277951415356933767544119762989621411961654359146118451215597711567198274135596677562971633932882161529216346734552643235473745345949379967768992167587582878467722966165166839713568646452283259728612536512428945286186234953196461494173226849333794467226473865838871173763155412497587939493421892742415884879341459583541691996337345445146165216773765414611124641586116239825777451273181731211847249554245696821746929551716296261474331891777349822817651313118821982127493621954858666173581131374877922546185258525483369251334561178952844632378397893898973665591961593979279351843869957174963221762823343828225527594624655598842378567163188819918495214795292521388916542786428925729162198721679816812649313331238362356856783214457734911357318953667713373266142782124823128859466591436647553292953265582612585335387876414859314352237985737558962781313249687292915397658329562441582175375256153541447853549947492421619616315415236952499372661144117842973546853473128217816624288646919881887685229328891525634954362844693682237414445122661784686673949262832274369112165128561533723825237396155581315251612826717115258423685813115469785775234948676672149831781918171252316235343353291146683343663861423435796838546438511239224339923983695783356725874849731334776735169297571928125942225664236628441841224927634271173567975634961331333342242611234734139438512382418917372544271433522479161163275256742743451611792528529767142235412854274241794441983493416836217443681963995818358466355823342716946373126971943189513762255126241839478281767661394112237798451815972649746843399657582245583115121966943361755589728915541434254552148752982535656759783889256564121734313635514763455745578368732189412472459462227523311169271657843821114691572345512496837886111918849278625312397562561177174156989661937822273561764382214628464772241624319612123675981134182442756315434545197388926541694813828879382919456532848633484551526194274164616953996458754244964393279792471964415273493122663195754346677293438229667417861178424828248264364552573752439733691886227474962592246546597494553197264592716352866159153537462171719717257137159143264927947586121491156574199317341184141957491128121944978222192787994117458716937311249365161254125772995653211168841236174379649339161812542548977935474877841873429725685778826949721894263417246671276143356441142953882189837194238619451844395144343581967472149127623146436353278417457628887314327298528788752668112667783116128213265854921916331697542776881158139691152291842933186263891994187499915395153923873948745493748476933278543895832226211837258398659773264461755591473558942669368268768265643916841485642271854545122919849483964538635114665694178261556175686811389912598517385724821435179299964582799429819731994456261457161357923137546852923696913366198617128882283942542438562721477625125412299232479877673444523944398628234589492245412973481475767724424872391131645173259472643199813117388382697873474786439343358199947572997831987372576786326121713259684381232829697459911114515742594779553132874896778758752679639617956962266999793739592574659214546677223918898977744837626751975683483674818976133684737581614199889927596834285856219518893933254769544593362414282283811168464141816826346737443281919476867233252987587189721857824939582557398385135989411533433646423197611929422352848518648625594358819384939191353227218153471114641315123633535157221324126561297431373938215736412165878493121668532483444833363499432816942265397914825682651272911613162211765153453613344655754347459873766419561755534476514287456531436783247531364237237384927193544344925335732217341716638946355665368129674724579391567346848512223966843823462483314349125165378197311732443892189491889682842638699355435197746566255778186744576361341474271325323984445464222515588893158275838131474615566812754376598342316634423832878238322988698642534237157418957865887273514181658949217699822768356955313629112895572193643772626112957544274913258476585368468729892693245124387257154338611636454688296466862317814648847131325163211321648287381112453518763453799522681744225942445964552875717323174828784163527993971241175616661779938268441682752582684947653518926316769177595768495329665681931538862536611599751973682326295816526533458498925799546666814534513584354296365942167495858832533259868597723412125811284996688765267681152557892719891749459978187349527563827284967926437611247256895374544316146251952117272474384874892161571546124244445123961333559172955915987933575446618313463723917852381678528246345872922941939786824951882298629718953399359721199371175984352293695372836823245656481151159387688982145793682491161682537298527584357387917813543397722384814159891353559239964995972212235161281895845949197348554434282743338514511167191454543232112442421235357195839164765813265213264699855776293223346492665553385265187411656231614617583422586234254195962458189197711341756738711576518813277149184797267367692892886245663366921648739519777554454476591428754491136422332285794755841667198344213755736261579214834663572152473118721724662451162179744835524599585192272485465338538798637281795939326662475412217276132814386136343133939557386319348393857384481151212689825295267647898241238817838295291382156246775812374568194844684578539131838186191389329116197718465877992211993543512643386644765498632829444785333831884642868613724747487414832949134133915347591813924196426685696884444465152926229229892366249542714144415743187735434114644876377854342393225337238617674233236565459595994742712933966564511634716411467351736228237667178996182496977353511124614991427174657423831885542165596885631693958426231146375878325141318368356598113597491112243518279255934727723286639564154252176172395536212632384723171918233327846929434463751428999622848576587775565393916362917354292219197693217239692949356718121851423981537215454337429518624156291822867341329223665434344844943314412559165689292411528512348711652441851976291248828632511965671622482114856466977374392953552997445533366427585245365153893858536227512754382855956631964138992793166953938469169793168432998185123826593671864629637691318195661486573283145584461782174221893224424232888255183894968514849924945891513796387962271341478119315983788531471566133878333713191544345699185444169238312316735631434427461913439121968596666826847235285726274346434935247178695148443412359221591564115923382624128393544776554947453522872234854243142543427115523766128868562929653266619162751946867586476232297756937839757515228931764369171965871199771449134434163784516498924171236841923511162819716811489719527923733597384666372478741214288723233297215924216592146799475693484896774226789538543672269269256236311636712951247552512729223798637646519697868316254136153752554524143183621587689582354813723581836523835518755671438538869199265526355875441527913142686849999563853287933176149514473643551253822873389115126984271762386399283184718591937715744934655958874292661174968184869944719794713352915354581853755735999237386662775723529955138288652759417974768586247133754717292319187252395432644458958952575245267138686431287591658128562618322871459117191547891451284215187766771954183776984529632944265873429515113611573914693839287424547285973928767472468324149255128283236547863965365223194127857811117533523946335137822554995623465912647731885727341849614153794463894123547641662113693532288986891122163716443348865557375473121414488857195844614147553828548219213916511116417616513842814413241529722343167346329434896576754266487163751321112651341873227198358434132377927677916443963581596747829788258572657793836248294131466255941334931622476399661781189266354337519437386272244127445619595515974489235278338628283246374224263181753211735346611827643198365759294863981617377456156724854743575246968117191886579442975957947894169263214452761852668596711922651313833376419823639911223695239411518729474815148624137818564273621794947151518724431666542338139349953921818177242216234124559157943517822851369261274525473994874817613435549146632158388331698918564632692337175969521754436791531664295275918282996384432917854923864115714718263714697717116166794133488639418237715125592215549355217684875815522452983992273181734593422315273711139259397396948917955628161598261649251133831734779358137435822886697394631192759867812243636466277922451611291865193437493418381117481257184651162827312965929346951723712659384361879568833947613395234619156424624773879289286149778916933651163573675395968398184842332548192328294766928721851128435132244535565844446716544423239256757797164673258352327488542949133932642596441763895114383273445879464948929165333261693577798225758799793125491572812724542686563941496991213799522933364158551621751556631416845722922216513735288911413426539862619967167154388276513311317295877671428845789536165715882286263152221212428916134579398394516533825726763842196516879693686753473774249297227478161647821372123872635843699219182991376156969974341518331845362795279721832123768719173713723923264543291596589537213462389579372879264891456223751156485859285116963766163298688888476162431783593332592212632331792898354119488768872981197579344149366744415367911173673273196974291181344979413133659424136241353395757876825152615574389751437725549393491364566478368332514636759457989318513785735546881311621414219819461378414949168231371589342818324371974498553828984313582698957473679633961524874755929626823977298279522667121346346171961884446774634128726671266324128323356154354833584511333899157497456275716185659486494933318317873164824662266254823313218799166764844695837821183784248232746127161477484331674894556779958839142165254279411678653234927416836146788588442612157999496292546276564345211266246488272836334735944812555842493565465812754939832724578454118527591517112397542533112491154113593741366565758862679221341753518792823956875799152554323966875499719212423218595255639915351799653751885163415644793945846367588327238657612892595947773563766172953342312944393161472838535849699151911135177147513532734333243815933837175787496395799169892171694532237257675589361886221423159934187763994195361157461124536776512449345344425769365446127335144354453833957695588971751435761253334971193889758882352384846633575885727842381166424396928982229752851555313271962262884976795499444192116244274225236472451943435698944775391669463348171934541545131545396542529454616448829596345321586454171354333754133452181364937573118239323546594181396842976591697436152227711971975142159627213538589214779854674538376267961856159248293986439832157637386741691151159313162736865552926128724691343732231549239473251555456119292352329493332371974883422286116942542812215198371996234255873773499996127543158197173299594352845125635737228218625464911321657215634122921511563626451471755658514116131692676444843742833582441723527686492282755734686694654112462125446411237492814191792928668352215431614112913193656161226785826994893835791235172119492222225193989918426945522421675525518191779363629246424498712737788774891161676581168995234176261453132765957183245644117911196267569333882122626112754711649326893843765249336423542894241458216432598187551718586441929622259525286984636825772464573692126911285457473974778933753497159615923653889743164712898686574443255721475486419872628655849482619998172368122694832454118746985866838926223155194695158212859273543154915818313614947461348821892729283713948524263779998811274478432119197722897725124358342638447194872455413546456668683479916739493368211452166148413259347134393934898593592261557243687119423691825182238636131416897393121582685213159985979651139559327322881363251542527293289349271615712113562956438653856399316798495393124343112342438388141923384351276619394926488239819294859994562714113213735254159331127673447525611176771822187718778561737647126725521437446326175897973723322271386245533387513136555127488541446664937153876738951657418893887854313939534124165254623151711887985755464976991224923452895912125252438418819718529755172363456332282667464783323557195989143211739799464284642396423551848615138228258556351187656216146588359192799921627439767161712641391933695731726969812123683118451823557114918897579797524457988542296412769281743522635246159437725487392599915377195176499356212579761399485826171471975177175323589887446831295564942455699947979256736211528338612526893144821776448715932462918684445916213296756857232411239947238728162265495313134632853875879998929548212398176147335328143852593112372977523552574818283333611247315273137296231911545183745611814775629846593322122586524266372258283635819667217615651938458325973726729712567514822477117517266451489334281437317844996679912681393974972741638539893413361491121277448419338765337668498154367531895159579146249948287488655862791152953168195697318444616224213647778871592949854913255852316134191882921174298631824919418671945527568293184277431544594132699925929299234893859144636247747951959631876214353916629175351932761949773249517489996945957334659466399663438989677477614278759635182213276822365664521429792687931363944776997623449492655398578571416813418917274559927512916156833126625412267819932943643823117555719522496151575248947738271987419871316169646117426965828392439789281568642948197835553971972743454856712768381312298993987476424661542584114529142131224738212574623517734343322485953232334252588172176877254516814734467822341858466698567791873172932812327894582151251486642145367717125632722785392824357535939682972855831125251996562148949963656697611222863178485667314941144282464429427251562116624964511697875826957158652613734243661668538982425834484813381983868921749265167398896911368641235526774913764641675194741352429297827351429994371451274331435639834352834745244486489789511192355982264128451918295722923598941251135354891444189744133894893143958922153646556257849634258179349472754593619891352199216456936961579737278445824395194462297391844274681767116628361984457591748339313227418369997394414459977818969321763674487916795921522819396677449652892546716897997653644145735757119529753767736831493861841152674634894495258728233846148259433663441466225769834161711315664495241383372137253826846337248682343869822182213141942964688121534777357197925554118237472687828279626857132238639446335824664679277572159527841754824722414556114777147399161554596817528973133699894149291189222187261868277323164316468323462278238991673421253337958658643267648867573174867521179927978116681947916137595765896552542591789614728319853419638999759562812373952729411933728299553742497971625362146161634825368687325967275374461915389622439691317348931932539251161179119696838121845128924338162327733267848596715174242871257841273368486354481191273499667458149922871213678732111371111496183157777612342252588637112121945427669739615193919574647687282629312466417455752771472415276236452499161857814151122353913266499427532937273849892775725498767243851215332472212814372951643718164473163951225248465144259529923122354948827566746391627878229438155876349284791256681313349433812431159441977512814364797817474998151339764433151916578816442817384246175685343339452755116122327278698292472112984148215899857182499727283915446263357273542247272357723475394621528582286698799746663443523449281336373534133291333559868397584814718274356528575556619235492195117571932644434918944915555551688222411819299783254162856131482699636174392319585198724157792392747747724363212529722523177737312567679744266744254134871564414138182581581593827835243736314483277616696775229172224745217525451267855192775651994191261748161595535691725573246665558349961291227117976194782721365527642469464662466493225116873235711426484369333471976925137582892288728331268888851248643159778996325848178232346122457157818924642777333593586248126993182179676981778819776698332324597453779997521534643541498489496877278889372248274719735836545985544274515572253867352324397544916674848467222143133726331931883499722729212483181312776271384441187596454712795478353535611741499895638685771714685438361423621657674711235818844194542229331534786684742512724659377258753939772318174423982884547933492443586379916874749966915747633993693414626197778582274973673394591872163792451964343182591813974997477625549152533348371857586682179553556245783432152362522315275734566953127519352832216152761518533713932715682199617125361353134518929612118481749168457444289787132225161445962144192919473958975722228315818334958827961491696552947393925321871254659619749161621113684256457698637343131142187412438613891546685252118122541679341818917182891692184318671662742239619175637179231231737675372322591279768813427163222139973895349178419591394368324132272715644143142944613254125267783287727636272431761724717968567222593964583516177968381968948111951223671958117392321514321578917414368871779258538632232479839167241273469843991647978171419961756861165274128719773267263161133141985952548428997177841212981617851385566333758185512499362722467981438961245958678818688471448929941977417797521986333473967164135345391536464655825944341899158183881945331737127886336153824497268628122634914953178876363769154531712823127414712488351636314468314985369431115799968761193681374917291331982143533781714823415864966192236994627723713297293727634916599878613235251238173872342643695646653874284265573651572754917216472597994168381961545545298976365729362917224883713828567342316892864292279954659886119178449314548337723183226523856188989726439322353619251626295224482861387177259238212177248232186194422443149455867482631879495326761192314819642239786848236499912564572328235924663139947171931149562619863574691374354333293452587964137571411459732162426268685157314229973153991326561726632132716378984972338611422626473381767471466161723915945812228627753865475882353759856991293229471365425928375683352681173851551342341175755463426267912852676576962228161179724316279153315987769359433978838899278521341371192488317911317863857876251962439116496159161348222281991374771731252126835886222922797969767248645775917867495819564912671461847944338182114621379429923629942478753327742434471815777187649114148141199312911787563991565262939753514317396934212974973222383182922824254144633449571552496151137697357319281289915437919883939896167475389382625143377773167972966977954133664116741618371164723263117348965369516758657673737418442517978955344694697686432556877852863829861494414581843917913835673645888348642999214691187848534263353851546684152227987337354239929393595838613797263457939264659469294312524618732261716611632164684673421211859116854693334314538873226812242363226288754977283455133764831284348364565635477137288553375314813531644353969793956357176132682142864132456661329726611799638193845453358276612133327414659476325399284744522191414696736739238239217322976236211175236937968216352392312633214162261937248861364432265473228235212332427345229338765316631678631331461144353532436995351336499681325516839119575478168747415774147318272462391399434338385686575423353436134563269814348116926995669939853874345657438413318641212512723189832217371265811753811865967757552594355414429727414668232123418618414499527142482435737994698449335772132131913624847514632752384895671274553256616925549882634548225641923183231671866136359543476851399862182882427611122291459657179678122344271179433967284224457562394141872442724884361993629559583889212831758275418667799624649297647212569317321549726388282159951843364939831816625132169647388734586653252576523876442718597318833187687671147441162914532931976894926365319829395397454374249213379532117818754813281914994112696431191312373614442488754434999961968677469996378463127839796691369589219662835345851336346441981849538972731155241492755937723492429636225326647965323987957938614741449717794312542154419725557339515312254525576142195833652282437197288822487287729591458663843338634671755956666612751256486635122995479844827343659184926445663673291275427324597541742513212595245378821649739675815456811629442414163586544879464813722723367599885124573312369534195843152555699462951175958639718759244461243933986231595126482352696696239386148275739345534939159544191382292985511484812124446131649751458825548465572876326543661697582189312485891562823237712731233294352244358513613315181491633799872632598748738334461255974387122712527182473168744211423477255713647884457611163429614513351378926987621126373344116871675787165849783623195399945612448426954974361212696252646653829199264519885357632159545835185263663527128629183434615549847532468731214588652641383312683236819949794556762889737859392351463227146523897223636637736862192171393835269722516232132972758794767916911854135727539351896484679883928564368587353538472225213444417957751482949195584299239117825389688881159278416473873269827121835422622847159678774999817959352217653654969357595562727954197275911264686624717344284892118334961361517459535595538536227421822182195725737263292651857994251631753275367327765264498756982314114214497545995645946688297127677577113714792368644736738247732923814191424772397671246613621244342566791155341834219427621335744987642476865351435982133828317478726799586663513728887195939227344462686494382574151263161294984113956261622736469434162577897711858221233652789334943351223847669796219425196621435356713577446131377151739646513531152164467425341564981269119172558885177425969683612949536642433336857131331828332394965986265978422157114516335678437586485341285758538767571857958183887495812129731542278244572872983654338748725426661295238229618778694712144548245333435235982697173966271296592934453844544484112632199263556642887838483633186339364875275543778418371571262987374338991951235512137534134829238952464953585359734391392632191796819377911347294625531533751167856571758123264517821745379558871856117632518749614243874792136311816422532851571999359996758574991838127525372429361344238491613135195184727476187973672476555137233117418576479935331941111834792187911529292723794442925318148326812172446352824213426265761393698544832728121725843799523865691227991972662543738856536129784535654495191581923456464864372657387954383192547285879219529763146413922921521736814964842624619757871657336847325613924444114876542169861282662764975896921549781517558251497186512439762361279669771927514175329761456929318932495246474136422627913243661911497778585153236571484494296592178322936385718785739465613862987233161395622239549475149916475516616767956744355622353822555232116558276849785832959541968388453319237112689625787261936544265264832392859189978562179991793955161129684923896572424315811876592448853315374369262849119875243933741447823781323995581727876585533425168351188987362463591364297853664618513675194869399514213396127389614369338279741272197523982612461231614146788588631655182623322595235154329134686334947387821869884187273577541448645999915628455965134685337513114312363877829513691444847761147922524787388951845496454629762373564137479319917654952163277439896853248639766175381848913289431334145865864189852238834252719552932421141677832829939721362339734312857394118651136832792296569399884123495861312314611453459582217632776636442388376493285436913321123863259755266152713754427751575263523327978545426657857994695961175841331573341246519871677267637921527315329122667861927167822959544871644784559239741359221344185771192139766283879968812627919766128116411596552729453772736715422536254349741923875541793562543942583145387859356135145895289173431879497245746273784724954862949827442961873879938528264141531152678965885282979345283641899442388457728814564892483988855616784399918918248229623226489463829547311297929422243927861699181979798186168145729776689859769993176147565785335119485842114486459959319919763658575128878281937685974318256248391789835382214265721248912384664991151249188157199414271312671517319629639818927565474948811589526178256949226517427835398271961654777355441423414334643438459391114539323861348214688739853628627431697649463942611847414372454964718154795524614594162641155954925923553934793344871118868546467183871853268725822763233346713297918454312692712517474931367628711796314523924863698481789675459372152857122529886457169588311359572115331713333616119584271397237853656421924545637982279259356544395684128234452126239483587838871138289991786617296619668377231133482182343451263613529861794122711463133145286597245271169271612171791423545257537112678466124345236572713162783581475787612292185976316271464489652559722337768663135873514795473583545329627358734377532481249945988328688542425275771146745633191172329556255369113875547816429128827924142963126595954183119314181992277534781865383715448135564573546715719137517682145755494969296889634469925981654553761263775661953158968263625627211535312653655527668311527992251323571553493481592937498236457949716115894962211374828293211677757195226684219236224113123178624928297558246241944446152841711756472162558219177744561674952216269739276845769242547859211919746325225545272794529717166456561957369832834783741855625312266658487382161134469358227384234368631388485363942143277583827374577446341824925776179844315761736455575217835593596729928167177921411645887131816739541637668375537196474815777711727895257545139371143747992752431924241856641561276762165855395823844175719798978921456531242696545589368175344531881265286626131113186826935895973882156252814143322177665861533598319777974519571192915132447828761434477168965991196325128978154348164941293471578364211514288163432967334249167189983863461734818411645848616156662365154748252142447371922824763671474644252432777694629765232873531746372617248752636537922942493843611912896223115336131245156177877995779143871566379914234795335628422216751395757315379382992919285883961669327731228799131914895294116471774186494951213148924767135429665664311229361486596679861562599891998375136819893841273264185584189235658742522478385188654158775115419199692973844423724421877951156811144668789412586672196552544723765357832334375322782589386661371161314167245444526459875667598463658342531344422914627527222754214479582869824955271325978975372462852417965631556365379531947891529798386729566275915745741518267164638571457757894674546852164171952253495284917962394613563129267231343837243479886559616454518866779862364693422482195126214498266927722618143822146854637678889246485512132447452729323692146889284211267546459329156787993659621484393744663354721613659527876372139886241726646121979432413985376459737973588225331242641295713191786228217511368699414849514823647776524127555483692312925811553628662723352179234312134298122915783189571742392896756955593843475485674181897999121323918459554856425357968777139679869994415483638251681866933726611826899636992276339361668226595825197351223461983944479373732126199696498749836687611861299292535255273642957195612221326826891887361537192215564521975246891629537695737284992139778474711119978777585926391126898744268192744444431626551592257182622357125461156446631732446596686489248491989452158943412226272932265171398158875388779742854526525271957567491557271165426945611242186747121241477531839435166229376534947545419768561742935472212688544243797246144256126939932976247666639319928375418731412671944436118142446656261115434215338928144984345236541144459414976687382657811457478522755348164254474559138974133696452638636995543957883997867535379982538416438888513891342126974945797258741959337787366533633669979163345834512424424259611565155229433119986592696282223721919923712963881328455669158215238745934183616914357119158549717132465617992675726435554285517643241318559574773479312622428239927754127457193797433594688248282311351561685582818114412687449249941283747896126385277957364477478281739154331492924261536942422832738319671183142145225529395931147277496215514523284129446299533248959429653913935551733115237135488656647269389681544624615462622936156322731316352663391453161754189611831466243474282791748562452524547644224418786395965255573535325533233565881393116155194875566787788524736334363897818568756266161511142661928154638144123999918466398558754137344342253787152299166756572573423449398836364179522268314981917596212179544485813651685463219916158127218916627837691926644251745641686228646138672439518478521943749988937512365938849961196913142395486233781933979559711921956566947578323163349628755525283619763253579197286659784873824714245247151131789929495828144534811145463521457761761455689536815296663716118245892331622517744139145213924132788165749663283212578914654943517851427437241398225156584936587693872952785742338858277279365351621791758772147288228543538698832663661146437792819715149614352499923217967488164117691157117417466886243181351426791558816162921853898465481453365222412351449189439422933792289482364264376499577142181152152465347518841524963982393722772221613624112233628943238414357961493591926747334926331832871464733182837978112411449424689537499142231692545426971179149521464275843752757128255447932849636797697177851421858629724758345218454985349664137964175989864386218271431225636518913198412968982672868513973852335572822694297312283576692834144451257127873438398323181334651151369522258649186861929466394426699193263423462744427475194915452245235149865855441292452278261625349518223535458466319848519756895353152746421888474351637224464113375324568368249459323166892943131314399973243713744945793672885213656161581374366739668239938931467934625925467979357942376741626687519748552812376987317524871221695718574312922642555975872556425776258155351567614268928648118593617564545732964666731698462774295931159925917388414564651118318728515596318434931314456986237123941432962844257956712575226266815857454293348161836543415447144249694857229999954438138263229765295728852691427147729194162731616289281839736864829982976697126952787118139851657292619136319689148995217456485542169181873335738411757226329727284454275411627854126759898415194525174414112212524731531521263386756926989913863596333274875939773136552635438114528681263941335279516598791334721814372852365325518822312827446256448297384445925985882174296339161444665696213259234582521315612867825821446231259299165386215446434553199883893786164723231691354959737336543567272387382952643534137285583364225554388486464437178938715542474377695979649129161743612842214136272623622971543784114729943873189935111367916556196221416655225262513473435324636413418691512135498414981443266131625213541878996224132591991887273161928121782555335713543168636975813241592434341948723971225758176771311916861796342538875679257636849475897841396454541414138673631932535522965632948264235672531252386525519558871514429836489131952993226944693168636692146112534625119747515343335128316553315152769893327295464459139823981928692858671623523847452459534984631522244933169218956948317212137742671413457634261551381953236457128531489443958477767372922388975536941375838445391379179359937743844581459868175664421687311851916946487555797793477232239522719175768336114676792489156761886119528345832193983479498528986132273927445547383751982458324333844876379371727412231297262519733154396643826555393562744941837582449136513749391863154226212293634954731364686292944723898854992435786663764692157358534575152614728287414953244641223666763418415394612693844115489675382467924654963584733451671516846941925249778214476554644544444182543276434797777331825916983216669823665286266384513622313198621853796736632533317955514686154324285325931143862265966658171139429265714213469871315792442148359161673383995794154554887372485826153973432678185377655159748328121222244952982861891492382729155433943247744487192492894744716341197953782171819981775174556363484128735836766552531587526924479744827643835561521855568546737844865923211292611422934882417512755222225186183563341219532697671258281353634961375499398166497934442128471893792492342123591154462211276979759196674357462574732636988473365298639915974995892685592159314838166983189429211411431419681813868829872377598411815793621112376799234356423563437421233577355254155422669773492857372171362522494757861794144211472121668811849335354154385353791135552874324221211586735679329434233111853925613417384231555443352915464645266131654983843595155498478145317365317376623816554812268165847238151993632531735298269742421255133186741326361464677337191778889587889832457477116653276744836873711871246649454611374361359794682685859634498526289481424787961379287538594432127256952771162265113533991726247379275319198825862662656182328516913738225296256924331292366845393261297576366136747838198767616315819584785151538747624785416275747431471372947618567332624788356414431855954695356867138661176245992617187515385112927294672625822733532353488224682221994276472152111898152873831411217487792415729266182791543112419917269979951944142491437535614884235535543777161289475136423162718968324647743675952631415292612239488432839792795616623112633713546169929198145381869698765244937796896471354698257731874462726272314449465163397535313748122123692984857591877352934458189467498652571596566942438465683637774755973141149461752539968837226967776278145983845827437978381376585355522382437168833892314225462897352569868343857519748816467411112811522411197676272129126713589822229267333929282833992813354972514879162643958928539364146578626445558425781517366471531259975824722266162533456241825787687976319416118441411928521213171461966172747794329369754716925732386437212455716936146514462379556269289449327577261827369194621547664377131236432922714934561155376371911222598539598279566516728169461124833638686549415311623698343379387244172514313461862579449146563622247949531588674311595388412186934843345492147952616369379937725631826747628229437852245454134278338212547826646667937772316222722273441247465754173482186389632342562419246997645622942137341441365866161737774133645219223277431239686653995178446285733413325699191335242638332622284141764429151956739164139837788293928681294314797376232979437199231771826621714228946247563753365212327871953573947579643917373855166329913926266842266339366743668387794138895472338797423823147769969723465726533292273634383513144891518115542725899532414433464861365287183433379921145748712143219562335458483369255728221666789337531684751655568141233191727864229759344651253553997955983939495495793174657627467954385329175211688133149816236396333966276251395179643758225382253932682268198665995639128452667114142523625362572528543887267333169651441942178116315879555792386121437141634129997848411544811746592713811192317378897568414277468921483222351652384657381776778912487412232687211262445352673279843135395184542367356846183229121677722643667571293675824264448223117224817267733211278861568241584535626257698221437559726451633823473329189875941751939945384298428158853313368193368982691233325194411438447834377961877515283835445421715627839641464833332885763961144672918323914392318177951955764492697682866963684694425775311543567149615643597355559421835377551548887328244667139538692231122998112365418785442188844711564724451774918769841656249742238519453526247372135463933615448615717272231112616553878235527521512821221544362522818639919915641777963489953637374923622212186526429195728398538824812591635222521286225647911555393133337195334719158895465919292988598428746485497536149414815686118164973865296999587468863314487785254388793327811476896333987972554654238328769183198791948222976738522224667862137599534998736521431412152393524824874994752249112884321781522315982974292896352388195422549713398488745434611445437278141244859467215525711291747538132861969143378236414188253618176328974357856775296811476482179383996912599788181359574276437836774475223497334565437483463516911211984556384222254463243914671966547162541434671944562587654336521873854149337356713136868836522769467749678125569938626617757195367597312624752176474975133185514646286549265282221584847597838782996786173178229262838168569653185166284563752216178544182532779867859212826484431181478725842232756347732545844881399996539726321231951683528813268845761548526257596874734664963129699231927867834568126656376991544513537391913927338915922121565757846315737612998613922435495217944932899541586351775348613296332763844972713528715328516467673237132141583131813465315171615954626833642432337943934815919673845198391617789875794212673343259288812891792638876926812182267212674227541149594221273177471744261943832531939926396226839284731924941929949638121628754373418849869488616276245922633477895438615271188378638239143294336994152822364866337939142725274967716756164583264915915742166525261572376396535942489925724242747971278319296192247181314239184338797397489944675513375151495735772852997458645229228676828438656155184195188199412318348491639499728566847815354113283863554869514693681487891575968346672182233283743492196998832218982318924689347286633612252496259786271653627412962888331963359136168635132234287867885893191476358864753444622837321791242162291946636926733571826331592672416635484959885198257188734877466327552228732716237677548577799223289734681127479753241982485591151971524858886398411375496426977959624821572532189447443846863728639766459816458722751388974725112927417458779298451281737921978599644969285234548286821879179731182665339139998588268114948368268487194161154669434243164231321614717249839178544196797616921332499331918485832237973167927378166918593863498663451489927821173812897913932187512679339485436185766565862424476931354676236269626567232717619724248113412394362256531427283222146836113757242187192688238854163722695643862567863366746876148924951641263279732811139148427571341599595335768454255832578928328158211182721389128119819592694757575227461683578814917451373795232399756429754645324737817317976216762474885171212464348282379131922494639116515855711144657547436836533284812796366735237757376628193245963839942368629373732644559893645377978647382157389178799168292325748896838213675141389898353286438383127777861385467567932119429772628381171334246198227331176284762192112227886749853113526838246554342161422497764447329647112574874681892643544247641684365841926485451481232221994415178398423556442857738121356645455552942177749622631255496585266395313512123673576189536317965682116775799887833755183724251196642466413243219798787132723916937256325719344886283427795396325727768855384469191461336349665657312667714284365234646753197546783388323217621511255895297931591776878947417479482333742264417271934226834134835242599432545671374811116645832496384961284452323243119918111262859354512599764336174447242383434376363621235119466587676927317718556546375621426176828973443325378524877721528845574851729212165437517656632722274788392789658711663649151882162586128947892849522343393724381732853232266292774678128117512788344269566785889931186937146637328761515449762713584619366789668197247741875477623816462499424649213537934418998373718451661966667973319432814887533929636759752238434873549179483437941122989299766392659538234274567938528994957978831262618918587467713751471337137991467555672121319892441975595695388697331223194685713418875841856823645659253561989848682472886228819387881143316272919889573921563739667145248244333349296834133136975199492296741594353949137273693986651443721444244974166192275665282635876733729139697157138833472611286966678839452889816657511493587443739834791169781826725283419745955299829231621664149214737544596523857388483896542621143546199958688292395229541794153339723551741266522187612585385128549578172736435922912682388599538971586945969491329968581577921434582198134398127876142415616558158948636669813749375113615288568621454323728147524947632594922778733999861228817396613218295199138735652728927976991391621532878416964686948695226631485482785675815242169671992876971919569595577725212158542881523517145839686253582183242987231577952658318511117539117947991268143351977618724151146611912571287488817428624823518517219126843189164374669118726622593143468514513715192384366478147988361164696788478549958533122559952656375754135473817977753348823143626438793347585224935455259295877179566619164629696719871314563315151654645526182242999477339352856586221968256298332892344585965385478361157413592531538141225354938761689531292491657642492665245339316624317121738946642226638173329196785461426132666734635556238558455415412584238339411599971563267641118452933815132826966642975454573531847895911466859927797982579611562291738813814721792333399316335528276321319621463386998164534821186863969331817229185885466282164972953269268284191422933157679671476317117454772665719567648494483214747233376635451246244754964388111773153648787646851539349254257119911383288856822127754697584443194696984246349181135258868398752853743589143473695373844274784927163185611641681244312472124271185389484149219517267987373848854155849577514652834134798183677229579684947848129267434589678134362737693363372817374575134122921198559133164788267658818896223931696191155996143663299197124569365982213811933385281143396919679585836212733418234278414264878119813652536339726425147544256724453517866493411141532973719158753942765595965315946187577873918543573148954976238421185772445583788682935589672878775584479351111167539127265165499572597572642912712593719533226552911222849477176751733812644575242374897616689417365493542419137143254129469779956775221983156197919838145482295682764121436632879712475221955979125563254465865919373464613133418548191962853445948364767839661286791275639357889618483465846531772898165465569988536519326825995324534638795552412245299742633314478592547517581278127713833835534639444435646384615157154388852131813469516423421311462936419191621289144466121241135343885154425968777726569344442886611392829623677467163482625966715525751351652145122323647213843682644455224766993724745675794574776422246399692926125796165987726561821637229886112114786593267829464258573586895987529166241397958516478338123716391848416217546294951685739956343316841758142289487984592846286741792231895644944711959721764327379113247487621247355954545278247928872613128849536773499185871494761411617872787516135719313664728273932539146766994858252768998215532914283474875132792761721944149429981273533332872571214657293757777711464133367139836421325387919132546327926527476593878345785343885123229628924888156135514768258831698391786713291174112183759431862852767738227772552257214763438231764544928269429341182725881177489945874474292531111826939485919542283691431748335252346887516513535844478691847255435591681945944192614289117426965486542875298967363677185631817561854818532815826228328517941216983226982917475847998636196666995317665887892112761115873335181248227438979732322141164582516814831233822162192332329951754431352677453796981549384482871242415681726138876453251594624399849858751836232729224127555437944336341666155645449353474351785337721818652173863952943876143525889239746299251599363599722334673197496631396722643198257952813445948965553583418957646953232845432321871942141869898254863332312878891412367137795184339286573658293186886797535612187769652434121358562228428931459117212226182411555815273757946435126639598637419132639576992813418617212792498549577642634383123315153447183894288539329248661842671564414566163294626684461728957843456619175629221745742285127618133736736762141652724355419718483375932928138193619826841329777211639286495557341234796229978179221241517238878122667393128753562131217493192961289138728287514693727169532784172774452338485446452224421875386511394423674997728248978635335923945482597933574432213669868117989454416866984934918823325232327928154461233735886953887722958467256224634666294189735599261135449216546574845778444434824172312726251625582588753535423216272191577827863381293339635192746245748878153256718329143528319867632544311913794775452946934252239387269253519578173179583592323282612233822146443514551327529918819276265248648659189499753182693373299915292553367878437894543495414112454373998332455723732131128591635852725341347347326678141529653941997158863232817521447226915136235118186914533237851667418592445591126985353533166142165954585176591314424654311528576286641591581879491489215953728614551412189949335399156934867315339165847698445194598449914615518416594583159124137267826523798675716852723444729463852535182278252366282113166767113423448173514311235213351633344729713399561353571823113229221167983992514169646529498414172844335289656333287139727884632159246336336356558142696383139298338491372299688949662585812124911954831156438733621357795395993657371841273459447294297889466187397894286855123186375191726737771815786382682171891131915751993398573239538262722247946667297166272462221657654131857194585761994694324188855514121651439765467185143478218313484843157871914198168925262413539896483264119395442247346929245326863264684524392544852336397276235973352474316144214922762343753113127141296767146435516216962811432456346733676418142281726923651213572369556411581293727471229427176334432328952261463323444346168392267785931791211892594712856512154249823422499791167718625273226168873678764272191463736523212242484977429549193788649144923834219231743525252424388172119339636625376458173293459286419547746541396946153577895387644342587335544581683943534427158597544591787693413551567254715793244632978568593837386191474328183966222176613536863233923534134344361112348625379354388723232435117424311215937132355618934311132735281918752598458556757778462321349757735496717284299861646517775477955925866163135336463193646878652957441983546253714378442491282394785894647129446317333881162759481768572571793289185292683359418185456388791684938288943768693332738933442434228754417575841874425412465148449956645162975444955925963911537911769786695873377376182232419495285286345894199511517194681526344924538838621245879937883368695311899415952894559471341484694563567826185273235219941466232944364548469736514182716846858228135269324775987125842915733648718548438773647575263136842983117457527941583421856268975262546317285233363332355414511533322741113629463345892838629582352125524752516754332551962942576523515379282593682339955495498217911467413681771312838371467435512573222644928359342678911691366512921734212725631284839754267656967363877756393752579913124554537796612493994453299763491897523612675341148415985891465896323451861483132294667254164549557848142711343179555432494197764845227456244252941926979737231555743672249127778566192943587135675821141896267159928435271568399125284991716122228912221776973764818758737172297722778693822478834212511364376552549657267248421343824578835326552522113441153758275137278396765655959614783797751726713746837125749859355519375356137593654734896545119873522122594289449521333226452428561826876827154477711471931915425999699439994535547397441536822884655353388848247274698152223564421265461275763179274483244982541533564394893435463933719432343437627427935891924739447152829414339386113495291998162133519622793399625323191871862285273835944735347525744245126411123722295135934212837145942875933269448967947882334237461278644854155815889774116797924345723171514243984132228846518559359219475327242616662447511169653582395383546518399764733192972156991237728741398542188284642243316575941879841251788342713544939574398865911143722229557678732649681616619871822168859194799288984494134715441232776268521492446699179913756149273431549651259744588956226689784235736123496136376596372112342163344615939317763631917848151953166349986853857492469721273822277822273997992928586155624391919457544367214511289124589745515114474623296645761715457371555143619435651599514152951795276122731925359785478373729226847958539129848989389866144431992613983412123855758775382326113653244141183272565711297373688242639152768754571891831515852482139122772591823251553844473784889853429373727296413257652332932517777673529658742963592229362561745351466243968496533225868858628921221824431843733427861996691826918633638288883679541853871829695846279638171337251851935546382878471643151918265514318413414682941519131492893424143391736732171294829525368762444214921385995688115223642444149935856871952784283752331163331436936965358985562358158855547174873614464812219342473625391657693187686676141369739311842984752593728765171783495134792342235558687765646417413313421531954262641876282892145371326421444218437415534441786454691794579597924427473548841413879213351222764592347847134364657516162292224665527475568747393989311712388265529267283357864137324929748344112192937884596878961534364753434127734192311433516482486664823434379769319357899676244536172113178362326371982864988192964233773362332633624984788551954357337151874826112184346722199623183473967158471548279212184582534289652948965945716582838162335875228814976726563234659954961714517943271835588279662716671252934871242469626884982424376943147471214728318776963768523738889825548497154763578725459187351336184455254955927165537714643354447971692413384851527543941997756933152647996465562723357968431182844858234923942133962861713115419871987583373656358344672843382929778936563136171374818596525469996818755732921184761884961752822611365746251161114367985968856513432612349718825256834742272632221179822263127346581261894691925681867292519881356457495744334567178186157445754474146958744693245958328545765822357744919761152536422131732155298155498671316115114271175473834485211646823278686399356957624759859326766935584755162571712324551429441325724458511762811529141359589738323782752299421316276662777326965697921639651521276668668869142184599981925245258374931823114921716721762419452594248233487428948255236447189123815296669146559933863251582859486758937897675538471997754444979749718255945988436157421327712183348978493566896258481454451526534825272565552469268958465927913839917389677972152332724698386257877522972459349863289217586368179174186962865926373333216295493543445844981139577267853734633494415515939415711496664326379488525935533293729393443487151668728766929571864821153641436143191949144764491921219141317981565217376471572523351433946598843563771161889587896777189649512831952511713455562495425168675755775639962515433787898972194249222849472525187298749633699148823722718278388336857453216281116526264259593766262566883839533332345674519612471685923529491219259838998312626119483375597757113447618126163813139618686617623447379813491123825281161819912618858325884476411728115639578213578914734457224148812722914131288794633485454885876192586118723661544254368845557238485883467917433572385891412445346853757719963638425555919484291675924429583185244458615777983357914567549598948577394256159582124846674533759314488151813284415259644199162365374287158447913975952682962718212263151963151479693194516157226276696511337395771925987821925384447164737128169444295291194442945951375374183631644118892238725199478264114682343144868681759996155511589583381859791339768421273113729832151564964988998873329959836118315615957322342622371994493354482678539181529686775239178629241826267977225191982735362533822163515658883553267781468718991574363574444242639334392232262355175473854152491117138277395262682981118691363732515369718939567792546447462843484449354874147179179442442272634255926262211184429541543646223649248566549253669248486859279644856416698551284841874276141311324375329835857347192933928834979966793991831172536267369426689561671643527266726185347472178558842693732226812634978557617578217948693322727191726916666168184484151953719528838591532112415141568146636482312377529516544218486628883736775134126746263545573543837451762847744194942448344713571547728128967623781496492759321618376279772967237437336566429996159195582132662231535979634417885953538682947819588717344238271926567215243896532413527552559163367732422522526296885559695932967294924362476498566713995141228932991189387184197559895977485366366281234234223718617891581826728724464943574367491782371575914144543848693595958155125628699199816484972792174695174751412315679194565594671183836827843742618439223213586845462433643798543136183341547214117991542547954424668835141488139934551889266765941688144681232242227172243971623848186164992959812358469853377748896431911349196334587473617392312377292682165878126775116722777335466717163449399764695565674525881835794577762739835326721795362653314311675745783324439914763912121344889654938915994457633875646173957252222754812636864232271322819362873393728473293842959458919476612811887254965471471391264331675443238879621898834979837163917511668763582812429616369417972699227599539428331882649335139132524772925896441822186984266843971513217743843612587858996618591189875615337481613573264242734223839638594133974973547626529187142865911481316169624954716781352498764181121437767591969799972165937247319974675848936844618929437561347385571812329116435917242441582911982156841864938729618515449846319867365943185781561572241455284482332137538485254152149511683168666253338457692151155697629413993378341558161524564395482613931841833773467622312788998963751163325788185197915122227795413251885377192716884411144845339612427791732641684833845243244876281287414432498441163173216274196827244262378629354936939366115843951885176442515942212294241861694271263252537736133711236465687836437441824192715119566382524677248341464226763159484692313972127577929158687629318957966287398862185392497411618573263676964921143386633937534342189515188824444338282943182474232933896551378841586622639299452576325879842235477774354875459224278568767221317589449216259697723917559896853315659436316657832967277826122888364837822175857346173312461893897889922676163136436172854923285268779556441381155916455731488252615711867839174142377815777159843384383876882634919766592773191772752661154426313459539533546336213789437721814583138816946996612119911234451515624622295941363321154371396291923114566241965229146579735764548428972337514838117924313837871748379331289261925588249369915425782765863152231939843652221759427133139688323761414398122522512251229793512514699947387266978263394341962272815449573547829235723422235754434262775535232221258465963648438413521377564389121583177367271747247924221347236298414792974899396429299473195642476382642223787955159395424457637251351546649323351849984223599118169291863321449734771661333342586651723126332897348292545359493771112781598831691812779782578882549751557238235118215221825955371921489534434143533288933958293621798221958129624111769888944294119726398244323231997126739715423355333932953542414926119433652149337342974227949332268857671137889343143332671313218288115974191435166815574322479428465741962369681216574671657343493347113616437434762345962767772174686278929829841528756389328658832618199784953139333853912218951278242155156699912418543369135829518865828974211714484711523921393555528116554665349215641899199225246634951974938815848153564517518216499968165676312611393338871469279837597745186413292726561156525275926666141229844861258819842785172438919929559788138282652388617299141162549894643363463493156548979141989986382954215222433662864121586659745273691268656745733397718834995698143578216151979479467963823599223145583948333787396777266621973426893924261562543887361693113341959495471459333777931341112228571286778991239941548853952246198517692234746123942346778449717266239799523293589136966234835384838487288936448917833597966232728163452923643235485896536929495933958142753983413743313545744343363166863916261947282769198994233917874722583614568526916563778436391916628121879733298912373461258896513761196965371611634746562456951329992155373553362787494658885128294688436628433541314576144543948898866758853646777565943196471934153437615126897921524961293257546784253524159622157761461919421368231825942221655193943299755399417313581194187245982454185939523186816869792326135191468593155328983827913337172121352729979221881691137699971515447183383561629645173383542314832922697827142122128982131189431521459442527919976119254314176388546391657211978229923939231442715127357184518834689541437548975292351872659243879631959813276958637243337133783126673267623388975195644733222771216561129243764722269341989299489357843989323147269333659531237494615222759661379757537796336589291684683126111611758621836154365722696991123652341588649429543297823269162672446577712931451194535216839644491241914751363535422369125689686748696155957289371529444897498895153457381478671411257432835439687372797991331542473598578857227142234648348964555377547635416883211912762373933521428768759716719163182282939367831127687717993999919551925139553191998942741113214624386482748564299415779531362342985921533927834765364137737627194469983178866394212725187477825772754795772254415852423352679845296581623311123398911671355792251813345765355361195498256556894717647797348537843698947369318243656215325542379345213428825553895882263581675952349871159288317125134296369584193772184911925664291544826921191774784266563519731733113424839263994954678122935784763563722598266588673239555814315824235243582289236189373267186932396238219644238642948586925492363711125696452822719921951683264439382859954926249375747293292986941278963134442982712292428731974996725448255163732561318499898482424761125867472992931741564789422335772153514721342841875771145825466645222723869131226957769251956619593354761643524437943131589565644522238812543351319936524335343464385374825368291236442975116898373452328645422751953611155576555728517262318488265532521921396938473544224913456718389781917778171859186353825682459232934311953472528283142566525156351963126382569378633315532953918151962868663436327158696618734337934486233583613141469399816734461626729197536675943888591215566591254514135947361981722849398373975213739241437817972151753496214589112293997865377625651862631541762574178123824566955213163298566111229574923843223372115411917258376952379628657257225361695594193447564276553417747572434187211255758672733452295315368333537626613927888838221583656457423556419137652225452766573256679674932353937359157183838859438482172515441838692365917526323524433718257258244124971744333413916473933185919144342728762452244317886815516764712849762426844816262792364747984545325475544893858682218881995646294362395447635452543932644368578195646998439133449955222775577336264734831956319394929353787118484859611981448677519347481743511831377182532485845719639969245621891627532546453598975217423144233374985921977764841337581437846459819683246966665351663588189232513544695122886449897242834893834233845362532288482725483234365331328221695288313631818914243498734587916731473213354951254711462293233864441333873991478527321798793922343526315163429434866133421717414991968223253912535171535646187859165839671697775826864443822223464761467542293852521236661213974761193296228277958488334413788825143296262328433933387554531477641321653269161633737697227578267315919651356569189343696936423556145165477345213916199194246916319539281982912996318429165954827523532892926336917378721549486318828514539331215928735665757281937229558946415558839686611982433638568866631116473194163112846716118154625149331723593765358264776316894191855427266662781441122473598156537761243149479197623845124264791839715654589153841667631935968589789796826647681489853617743462329664683146682891497928732992596943157211666968528764723558616184645789929462662229166428453211219354792259937835964496256968715451829929763117256988235397994149217161231751897593574536533572349891861924312652591733871418671798644356488729448365743591854661929278973126713811413378987311938358579256843211144298525433112745876415575615257153764221389422735222652673727899271986914285724283584446343536879466643489551436543738687662368885754647713137945118669353457816193664195924616599299928863761752456977799851816513582527269129197229892323611618268628678914577178819296945486954542263474498433669664414643139723397932845486583656219554253424762759818874217888914663372246434541393827656944693967487699873231621351936761686778787875113487118212919812945519777282359449252466542475261151115634838838653141313694181948561767822563993659453976131414383493164192668943658973921342339775482268246788312793152347574929291583572533196473385537319559239227424792296255995324235298687615876183332948973574631686539776912365226611779712721243821158654829934151715627743485145391169752173225678417126482168427319717829279851419388925925564999166162451718173571919255971232452479367336712849569951645376435571425192211343396284223279525474528849634229292785541451651541336829894769564427451486137972339978699139499252338152561685198466217267223239431732381455742917153818894286614571474414947897382683687719276517167612582596845262762543649562416214569781817647512835873522984465973682777947136774773758878221546623216535829563546192463538577692319446643411917573228661415622477918558369854225338882174795831625345499732922362617448641286475446872956166658512363916195625384175493471689942289437331345813247893837297537581218676951999865434933444722869456951623555636797711497472458499487214256699412999936213519287136253315711661822833237214172654343738636492263492138273565164434229968821795483578627951144759512722396624413378969995379535812412222843522295171586291173237239337261678144319138927449216264455437548467813442139165524838471227346434522452572139235299345382513894428699815742446217169924743451295596565944997129885867635521294698222299186815726748525794121692253536198662397872175516317327633626543243565981792181336771957562235623555325943234852835911626722185643974879361639421113976151113468925792843634461572971319289123123149584172439357937315622715824954531542711953718812864137417664895433432792228394289619368476422841145833226516384593386855251233244829717967923247441582519241962538481549992151992454159521724529779424913381365462234211824521731544762921127531127836123328166762161954177925353445851123731921246424366731464918288221918144287633337962391334965344317352236136616813259541626982693436547623789282159521431489815561163161417323869649154277415366486843927737764938558183198851816445935259824568267556739613719612361436139747122294188161124229291264213881427637111495774542713199474133359543627482634187533247732711235695822854626161132913154147199412392724336913312412711252266211311215957978776378223166225133191846949425519112157312276134843316563231393987475885174748249261742253639168261476466343375714332711153764499921635794696822551265698218236187215829311149758783259999829266721236259564957865923341852191846821775462525676453128441333114528399117555811265769263452565241571436176567147372332352261352468848763923568266628322327924821375189839718749122113221548425971267975267833268711725131428414144572581577356534821588532112385375141527189993261455416758899993273686795754246453474581727174431399794292144176446813483617182335332854683862998513819661827844893884188912274891144391296831858733171497349354138928499175767445918474991251185497326242398432663635561843491268366579834899848232854782568169352647159943664524452129159236834622747183917611488511779329117111949954562574275341778628289813516385791689133859987396136269977358418688326732189626856212296315427277296645947943415628773652719658127585442792626333367742233757717273823975992224663184925644987487497683379742684524538465899751241116671113374496824279295894766696619389165283322117414284815498519321566343299961957944415996242121285655628358575565296542372711846741512364889273476321518896567647464665917626455735296896382158589749293415988692865437377915121462644792389223721387134637653277623252726125829619483661397184399179629953686699582383758179855453754276745398272669648525354188185566154712249114113244599348568429265345317482697755596539525299839241521649564568256944541611143931587122497423851819323529973643125347963857221927316418636561282156342248963515452296593129193161527751139226532279427345219719466258226974444924325169239964224321943548327539256619338433536783799181213113991663661297364228288726736827598346276419411737489272949291194713673283323952167114748394161177992419922846171443763473673463162253694735591874744843718346757393465423937671417587162531153419272363488181542644844213212816258573243478136584351164125649173796648614396626362311168171624725638486818987367654625163248131253784773514998466997459882513478578335721899299384321764432642269428476871631795386593437566438119726683734771474951415237254466494761366897861898115841421384755638999937673375698966358555993171328171769412171196243472222322799137495174548333643557731513877622665317568878688912134572382498943438946593383463114498856192957453721859129423548613521395388786467398729574123832951667879752381226373788274623586388646385339743193781491983144517338179324341173866915894342329764357961677654645126148921787599887457434914321127583738542845991983584291271658684324837947387996996154325482684388864373479128154882216842175742263637962246478916472383296843514445489433633497714117764268186788362889783222225675289311898196752966149897643742494411687722852558847143933355185632361138553489744871398628148255462312651576281458854964658742745959587949463311344678764173741338743348665715371984596159141419562231927745434133547891399282428895745773633589831473328455448492555823755299299529345672431427512891152672328185963379812268331999149371312524427976111559683299866843449543397423217318749699634665988349123635395412599658128771861643665395836714577593475952933585256183176682426972562816116615868843718631174442214724982737361446616664458372622331345386913334513966369853861618136223771499593421952445867894351647256389654998193859495176476513598341125683126538252884139452639591345174734443372195212788765297475389745412842721551464272481987924134885772214241615196426236171797334839531626576424668563498793132715249699454275125334943563113474728668175827466376367945988628659439424766769674555551554545515111788576518198424959516179876762161184613715541456191813329392242132171829413749529282174615422295235752232833469498584442566326173419715824353331992452749761215759144279996687451528492814899323499143331293538878568526368472324474424586644794266817226267233889325987219327346996353331699215886743326814323313618915463162728523286198456741174915115441677918761715462221913423186559953415221993985759783344195431199561611457874998646625475473298313478349551162793912264294775153478972126499551692199232253677395277853733873186492638666352126159939785422991925673688587772746812563276685837547143936547831517333594765679484947239516697923715114579949828763616721691225756182268612322365113392764762116638272379115964499313956125131592354653766465589164193933258734513387198159552374921464294655463148425365252623642314558285194431547323998617645815528445381498436154419947344973146344295677755494647151485625712287486459517567613738888132444427557311955836293287316321324296979973687192418868134173114198113264452627885679138117792557348882545312896935741917634258579245181544433525995479421248934191794924894548143479312379349425685319563976137254381169966417262461748373138119645356365361163197292594484433229316293653634525948183188813741249713667293299673899282417549342262515464158285347845683224324816667482123932718152595828286135284587286618895114691274614499289219467421461431247347461583865661749341437317454881745587146339663919922731247715721757624533742972857991473133397331184139934481981269161515961121192219874146138572125524477572132343325938352539819712353654448929616523625469471884612865544181711613354749475929499419457638123525979166411535186349671464172649881339966589454972628261443584351752743488732318594242539344326158341226349953412517662624846951732573753118885954665264297267957524915592224731311383156122418282419393318127638224216766858684681364684911244911132181437814628623862453127383581266895516438443653638544991833196992257452916237483759929569499644836999474265725238595536835335465879591217466239896897483578138339727939828967736115311671254392885154134223958942229381271677844832528649835672633344244451967141185127589361324848951252419612157562462618246819717729296314697648473159395797599543468287614862645279749676912227317449959227115396978992389937633776411967412559857947136164478358251545111193273919188224663356935344869759597199462675335399267199446522137119334365536542424977557488961468311451911827957541645898776652434995656183931851772592354356724667758524296624587198961563924867538844338974463329557276858264778325241887472832246289848122464738126246488173943331199728151673471892394427721188833763481244529696121857747875315339315178953865241319423639958997165323945345538534116575865885814728279924346759735964761765939996821999411163285313416519149184173554531872321512641833789325855158522793659572454658875168548552139994425574796799895194649115226686476343434788535932259725973552646557662936897478489944444235342676432269627325824828887197797112434785349138213462312754495383696219772621126815662882256285593113296421984132734327154747222351852473635328929637742924466123528837123392764648993233748964216838818261871753358993516895661196454714291564481744335795356384241717875632157639791351333481384126116742238589421417787262651855867544463538934741949469222836452338653541735417895875215533194219843578224745671221291516479714515518873412676641515195365332868562248172198456733783466872859951373731156497715713786175423649396496258661712681893155435324524742669429966532292397966356111255181584735744334851775814839276916842261369948133393438126287523687653197511412145454296111465495144699274369281553812693846672483694691441859918439313229622963273486946681241334884771912465785136142749938736343145262651536589379286256745929576813166233129298934254242569994627991311775269691194853476191846671114761943679347472135472466118228395615747987955511939952265643136229923844385315192496254223365214518872236241582678941512512915336577163931294973526217511831577656953511544113149941115415681869254312927188575392897334319638552165662194925571613471176474797636979249918757291249676125176656565149477113914132345588346296899412958764536492149322357782151463747545732451194586524965592971654651569369751382863317859459854524263971388136978858424669274188454492964942332398944366828412751228761731319379735152756719171812753225349828996427434973436937812448563645227723571239411946663928523395391313741494558855696926553582923747293863984163136379632373919967878247441613444254692677327423833337569225763344766986542364633396992291172691899292779118787312985554135374651958692571545658257982988494793642231896329547442383542367942318783985415653128624279319875963667434633352181625892927192941774922644337837321939816459317152371258236383661871272969457871153812367155137552766538832688512358796984463381621325824215875929264725162142625469185129822879659541252543898677816147884852817978199559569293726587624389267523959661712945177548635578337211784251325149894547734265265344544564435858495323322847119193967254921713795732127289294896868442727686583293191414199786312193827643443975495835348342374859251391719925561447497523446199976993515626217364528233845539628387124469398242342236189591496592541373699139131836995327969817918311626939696264885913877628347952966239145951831829414614191662735147213192426416883878135637476532128821919372527385578114495379617684117844146859341463473937115978231729135635416873733293718112882968295515761151958882515565261881816627452953419513367116915521453731762645274154543928225645411614989236739963219754416177279419374519182164165523362841517893312565947374188474252719599562827457593362263777525793548117356225881752739748543189142831383823439833131867181437938657391136335834759323927396554393625162458733272599315959344275928239939537647384112998124728592393946213373262359873377136232482234711576327126383665897542432925615325238564627166257865426361786227238669373265215959683395938943929118992391966728116352627452624853356818112634724161333879841655383221589243528873466416453216963584471325362763263723482567551135169389517584872321953445753535797763765116255735876568848538469367176735236864872667817384932293581128836661886539859727728593486589666281452923967717624259816344328913976752565658933762933983257353411359351371547382728978694939645566775687689317859492994291913467457657123141151141585139249635698268744573788112363191542329985921771812947392345961739653557559142379698892112519651991944892118229293619241423853159479624126799715222113949768718124859298641355641353834856695384432912637549497139132135664349146454719211441751983671299948111175772536298351576959611313946914817547592762466146948229643122436337117684286931775558153418368764429221375961245825262568296262535824777879447584698986183797952198741662925893847111981276468631868516163678992792388656538329321854818238323112143739575527191671485329531772124733751781685496899521743911759453416385213722171768227599133816437876574295193134724775684463695399997979148763613479235274962828142837126858871388273855236832441814923423629121749146416126143174284221132258556557687452642132765185754575658673213428525651829458997731166367543914512426548713835654255419734791988987692836636434161119583485732911255411877575211627763423811161532466781758258979796949747164275783676823918684715873291532269283755917547991217914278211781659982827741196975735889764722714878427653454769945893459815141243241828799978135656368489428211661679431171948638853464456428343755355299668721539599465348357622388962397473654334495716722743421786981219722871821869351652781111586961978852224489582721913715324537954992938192668195131876314883179213783442128918113254796869982317182747938414391953572366661786666954262138564832379511142764185322696258857624184965413739963878431149114671255432593942636554171661641992251536852117132734284443462434178631386931147478265727129469112885943462618399379459697122641671517534246311561954199691359684712821492363431995234898362546693461346231569325394374693386674135312494345649949343473481127371156116839432736666263353929662685817686857731154356452914948376662414668563658343555383998316913926581163427372232192542391719645543337771352454391833928346332348924845189963358333513526714568647732362816187573633385352168536243897292197253742116772127749937446335797242987898125956854778536153799797731587356915944118752363121631716396413565592496482243874312842173521341327499323931233359914849827356579178175612591341314928925664864376968395383428644548751711931862466588131243569241852868195877387337868411859166237446657715978297232731374439676547755888991328653772796637534131527912992937961861412981936795129546261852245412564761676328657227325262439824366979986658159965332862244175914584842441818937262844527596612225154838883498922851942475892916315915173653564943451626358218258989848326634629361552444615117563332695535217872793487926292589965871287153719995692835215589299277342735854549781671925387981988652168842488342123557974228175198133753673852236218234188771948176439585656175615323627922858667626316497586598486767824718254163813129759534699981672794389351486332538213351199613214861433199122814922695121631428539878727457526142333949492121379446754413658381424743115336347113113582498619146537512628316837146873825382525712433229192997215413834235524849393828273258323845519258439161366751859981494139459561896716988425745799986683327216136863728238794318754635541147665266664392248144295872796542875714538813366418829876298173593237686616262782814497743749529847511285526422592699325937228318975195155191113993338268167536728249121584212552596339427231942462246922142617784216972293985218791153516513115615632835137588641658338468595395696583461999628257644376945648219297739714465725852194431737229678691357129239362914462311637197846629941116132377837777798679952288141633968725565699828442253496927179885685297591363386391543274722536742615832213838673771228534252746592358961725693358434841452142719789613367753852652555996853858137576955373561397375632658627545315537792689262962377231769767759218996757697577572172984635119517176447533517974592291481216791258185377918345144956347945652222611629318382681336857823541576618633181249316825386514791423875413156823119499451695448638791473353811849742113696522157417632458897945961418342992773922228478442564568218617882939216786779179231648146791876351364637726565618519382231125919629163787928791281522935772428313275134519997828149757648558322522466758722891853671215892917144523532225926719319126266336875213126667475234616548112445359158633935293161948378233649422383236497326147783227611341458329195669212265697113722328171234731453388187195353162752388919925193891744267746923241171862956444227832533417183565313341188938994941565344218745982161888116715513734346752797817852881471891972969333871435963534243391438882676733957356256573945379873155259366295653396158928147848442196511183472524116167143479631539657993379591785231382932583191357374175964292436415289698361991275945849251911189463228136165441713246263572428145385661139755887533415886289433533773349132611324594344142449143516249721382733644212844153914818443253181924451896996111865851566298841569552424215487854455947362282929822182395353198912741331777256631799231544934549867535659671225354716355186457936742576148889112493913439397784371356636522842632422764773346597771829136917917711715824931344145281214852999629344783486348418363219284697775868712985137193568819318282318762644892329323834152624141537627495243918565466725214464996194381517193871893488275891467553783361246152226771938662174884921545123479128666192221818343544324476842515461441367875411553832122815554895635789939553125111153512147811315833562869532241777685614528438614341288438265428351927195356921445897246347654517667216559936446251978798142123912199114615579287916741684429496211744795418549293331792727457331565952492731983723117155912394932369858547853886448854912577312844647316314169814117463414827675846422511584456539452826118578649784174939118475295116661819865113492525313684962657594511313475975487358379353428532293891741931155951616597636874349845419861639353353327333311784822682429296989836262267831197399242263994453293141668646421621272644645484522726467427638142861174421619327741126554927129825921691928958721826592434594916861144857264418566428271584941861221614356162831616262986824543944658866669375838641781437818361787436126941224923478486553195912112136474172589826331952244584332556723971285832968147594566267242885763942258683972874824862666192132142259525819584123648378362881271363224551725516974569956258143631484996263948226954882991911975249464559377136472162256314484195849663321417545784356824484172949239152849175731262294697648473716472855348129693699983763126836441486889312144185559626825349922128321491282729265537914437372657879833923631514974615244753557475487518725333748186449918392391125472123471913854722386141284774329218137669575896135779948256958569119366721292757271926581559615361453335433332618341827284342612485452341642882122932929993535355534468393393546614923196858726161575477943457153313544461689235351717272417451394869285198329985768476393815298559248483694323851518186466332213898914741412475514728438325977739931699461155133911683139265949128919359715924454128923254266623913883118969292725696132852648559881685132136442162153869543463412341959946265718459557833932582691482391253411235244569365622947333412171491464492954648736643551686999463488236485286856248332457693127569996334927189922321581779168372332615933861513347761159366522257498672423451662644823537481338461528983391731169446722448791812921571644271667967218454467969862539548971294192876581551147544273285344671872611978164474231658329821664746711876136224442915143761811861274129674727446356387761324116125783219239292148767278575369363364986179642399738483453161671321968132473864729165993321116847691141188498941773917751144278669742653555445291873228623348852597779866664218159692273197336221256589744349532361812869187953129161824363789723782242992765399538234627338372559382719466393246247375472932717958195657883144634152757819363393166377212983653182639494976641627139521589448531235259324436393977449476345541469565135666911383171651763925665148861762469477657414517412534264865141467283829655735698974132434183111645624882313521259637649143326828134455864277558131229788144972714829937649369467995262767259769693336936759434497889992123191321381881956411188751775852838448642315298522218638284245273743776475893458928156631473524422128753919168825168644149469945451191444381771316486328211349112233531341518544897377125223949512382933936432257489688956112582762191487297516291662818982529337469753852115759351345332965336423489634413369948659359218689392364642356921548516325187631614282294227612564939316892755489963844922519469852539249183615452346218327933367337182153972415148114282119672373555257541869725737629213825383841125232877121517996658924841513231669556779111859331369996847148496594384939987493514295174589724728628436725925161636428597467735691887422337194451321196943925526376653698974173459792768427695758584222234772237742962637394346344225529475684671512698697929448822587137537148667275811546539846875798567489119783959323425664789569152319721476235448485896841742842522275496436461914987532497838219512477519558241949572847287155285411941742797264591153619661435929692565259138136175551554723648217446136632812315833712586592581143931394699972951872667628637344916753533898586318744666962286429492611742515733255496867399622947659855793244166745462968364171927886286583576846917626922871273213863691458545924232136552932932496159694378618739929654727672568199531323357982786883974393133591182318344318764923784717519388282364292218362618446944192371137617833392542252239433343251461828265434683514173513585692251682283667761346186155762535397951664752347496263161915746624375624752316789384764533845637957533182219847745133677934377756831436715848925373531533125221936412958968228298641187471172754558623354159881557312854723787244162941447673893832244165224191197773164615529965461266422774514582224581644212631231152944338392788396489188785731879733349126232622894537444734313876959153388275496626955713586553322383534679386438152154586157139997433241525725371873235571183563744292492868254567318889355217171784217177235528835441313262544686342439238231932842564428914359517295173919222463521695831392654293481115485192253592534518797155561824973716893985717498896846975923755734739471611914465132316916234498757494624282766929773671713811384563671692873655492431573579616889221128721268328957548671435222251877716719821353269337718842229955334518189357763927568954945754273445554894323147513715715447212357271316549824112634499462297325612737747962563761384622114539979272788512236562321196692536183825952563655755943313562231536367725377863539773914926775319925636819911951564718642114677686826285159953667621459194196456822461432938897877421698161164299751222885233379135583357192134739125566784711694671973958925462343231426462413755444883434311111885282284626116456764475848479963153752163878565656885252528799517755176832478315376656959371618811513273749258212125957979841568512443392495694192961619176415941391114533165144445972812628458839926675153682855141247781764987946516398453244745114834881359144763983121582969996363762834671223724943292411237237615168955186829121974634347586345619958274665557285381322875163432198618477239659573679437899112867634294841521449132522241452636337659217913395892137422975658589791212444427263613728353176274182179771696691977968154281964742431915459169528276775426415689229335278872896849412419158353529151133426398233218782259955788325652122763466355139331432659587826421757943666526372677564562425844216629753241716426487647145116228344376924165215524946365614574267816747868414193243711918344551955518781331171354496148723446699664149168138493371534715787218654419524824462917461958619534524791322914831953679253983434295968514529489241939417232249893672615121112519882331779125152137622547266584775994192191686923922836966663241165173371691126797963873626372913993183383646791224488911474951268816859754234634967977947797422526143372975416739191232648312973797316285457782121751549738582347754333623862469327442491443784224655596544974152628312615352157874146283417762882184525215598731926294469326236261427253749147859143833699731297824871914185358779528635381942898492497459672493178187132692161277838389612224531769479586887581524923211525833657465342693632318283196851322935455416226268173142641486821138848163698426488452718686485175294154324153749386421447536966329685991123166729753234916862917828226518413183495245297941232634296247612345738381313835642519126947944597181194488872651193914463369479542847674193544811825654952275731494361867851962619191382849984624749951674393589648488466926553525972416462416631556344362424949836794858488865548242218819835538837622757647318455875264693547988966139218489134486912928545541958718321575276246985431813836735285336656715382829383428561921578339226445533642267967758349472685829733837498122477386836781714866673414428956727215773925925185214295222193191711445338848771162459121271519446531594181433165598351772332722711178813931613773524717188391355685884798392334551313465239812713828149524628134171313413651573851115167663129261226443912861832766264186713571386146256174817315923692313611143298852697156155481378194159639881515997671521111588144762735594424681138763514724248654533757719259913867939834273324455816767416235233379936572812496866389237574664916929548447271159391119447741367584989929542624111546362199757592415341828494854836856141728798244275321833411599183573735312165992731369279978731952811276827284126327298951839343277954737286581766414753271258232967995367423571577554194493461924988346652159977483282662683489668754534723192391654145137624474651221416739129991935465674665881816677493981173426775936486577781684963343323686398271238153461731441652254887726862981859892267122453729632468426114217165913441815461561465196287196765988544989162128988458225224233671957517555726254373639522142734319792364193784362989695334652389133176685176594617854617823657133917737461292285716575737399153437355495548741761464494944267266913714972554288272982997387988215512567913856163571234875165471324777357312824146222652315276732223266684686562859139454969281838289376847655775879693249561624942755482248356555343583971527325556677333911778346983735126746575512947994141421448173623667444231439486429641461975147374325216381495548474634889945144515691887299116643317641893489633928981551191515575141599259269213827553296469962211656699896786858492381186643492915547612742253159137589419336295525634687782913327862628585432426953719947968669749752918636239494379837342894361841479156434439855831326978451833144348197373475189476416583438687768886734485433655136378329232783465743113544313383516762679686544574811363746468422266151496384928525547925148421777512627577437715159415526566819231378722792545593369966615814658188663145647872375878181773494198316347241744413654914351128642773767353466159946639215342838827268273691818117317636286349372959792548229418716234633942439327594374899991988723263165358734381822185317525644292951538167626329373876735458158656134432381541151878266167576521472738315579341744464824524722767762324536572427667825478198995639393488861799219864264993963583837433339113332978319457216974241253795723917559913237281418588375196192822415842684131628466369111597449975431187169377665883393796512552295416899364528815264691235718446118983679252814897255183761491743411629263147164646375553515525988648912423651321766885162324331438224898577871965598759594936516184229578351775724652115347711712637634437169859245245222418563925551139931671241718481552334445498463999827572698896939493698729469354241251472942697764639654456156164772182755521545542666624111968831593322822969375613257565197636128127361433515621673933281795786442485787584145594512447454682951368888151955524579669171651245359754243231348383936491652781168414584769167786626448898488241767987868344932353994243361782523232933713354558952447227554439661544856385382748471746957849588471549284239513918973699659145788711418719529617433615724396237459271253518225667462356668264581781154331821241498146125353189682768639722944113912285441379518245382542499441239273962541617373943926712945842173891671899249172368129995499735886954189225999329242851399441389831892941437664359619961617519337853179162634332221325714799343231517375459385856922924737525945711648284246671415918224126361834119512941858832834576659557431991363949974339514461184544963718958718137481247257339572267574792371573756675216196941423517993545214272482338831271969579655361126692832883419298267453341926959372125487647932992419229977732881617153591481896658156253544419788244812393391538322117268899729214932454532425123687457381158338815139778915833995236534156413443738261472464854639813515977897488136486357325134567586913653489751256582549143168448177521138993979337753169849163782488853584956469442824178193856335428858914598145192781648351535763419983554392176244819545942622184538997361763349337436447833427291934227276626993567576213943867265735598662365212226891971611412129282926731673135929313899686295466933417349721336699329817357611641379496565692793912191127231352294792476724445566956932258459918523959463444445591783332754879579624141735752946653216181844662111976731211556413214246454885591948682899986245324151188912773659612124131834187778731855519524612137196422446554574524546459695974643259875841642314964679971968685425415224654332634686771868751711567312623495945966826562626669279733652436637877474358741395142625951473973361552583288167325764255688719627542551823641333273168457149455757365198136752211985655565426982284766533561624352496573494441935756887644562319275155768695241557353881368289427164159424949682144461755114454865864723599332825762662512894455468456892623679466923929765129592571224311987771881233917537388854489681456486495446154238779689645665421569741895368597249719937124996924846681543514754546511289135565415483695248842294454464977129988518611498371727723621572255455949191962679675787612437166748441921665226138625291142392175744284673363766185637411986392314451943952363133217444556138288443353539857171863931999224714864319332769373951842863277879433942121118851921136736772615435739753742214934353968547621212372478516641758165316244235294458316529682143266696851152813424451125361929729686186239599261179732763922447854248841236552332433544965514292141724489242273266467867742993334899154932341864565912971663965559928211673189158848747594261442563347911479481733897513327658958846392514139872267392599896251612158737819998452297642845428828311189747167566986374913939363692681243421731332167589937233977115668592689134946618172299275819844613116669831349216448871714336474727681474651497387744767469951675876255636316225781463485994236339161243265741695391592291271499927352285123365375839232267673376735526472567465222237772938965711651989991997624216479364874125726112474764177822616259915961445127336893992124636176366421238962489417122312558632993481363512625816558123988271676553296943316685394914165492445857131466122396342325661584295196825336751873377877526921524771374448916545928748525934952417871798758363455352121783935393933658741218563482456995344512357197457455863541582747137394992792683561542193316221958352835993258198247619646278396254938419437517986666544926511481349731159519321621677577344948267853363144566543385223399416197111866756755819464321351682754852823121128273539165283754193151834285464623995579231654764562469682338522554541776581789912586714529451431261222422836921293943899841471356751397463846842211716135675415146714411336649546992735426448435421166694397893526588534545226553138418248139829146728284657293727994549132943827781352424134471194284815813946628767747611765742738247921557469854561471328344957536251395824771799231533147643252231466428937665479676519475522282584515859566146224265516525763397415613631838913123727812878251166349976226252614166327343917577386345696451862111399299715752528982631111854122798532912714528226211684216328396827696246574453995185587738221186272932437632166845199327588218749991234265877231224256723633424211241668464267138723825315281966271241382261392886967664877372517211214932236952649123925174258515125384664624429373813976255882814218461756774568811477227117153452216863529272268179685688799374781845773562326773156984154366224265167834849394693958526586763557488877715962722654999291721382824884265559192313942864645426926724229967416261641571413323296985728298345851523632987242712291971558626236242787341721536244272646977724428765145283317363237233289283191326927963172865998261566442319798745264349577566528662236946286338637813671694745236763988861712564531643766132174243292296736168895388287353637245849928344387818824395784737542762153494512588748279644951533983946278996327935615354849186868525428165882635654265899424395561824267894538895318557347816354145177965422228641763955796138325483469614864738689625795461182423291872328763973733371638792598843743267116843955354848688721563771676665517348843222656463752461575661875922667767234866888899413763592631181436466632761966561124135381169148511886366777327677626513431491353586813757686178166345959185778653214226741269419218927961242739854569514985716352121831994786282988934443171115332613435821746191373836416858463218797389853392145332359891221446263742638513445218994568797319256544121819528242711332286572732374195643321925995769717251782854221325877824316759781871914983125347231615311337782683956363578863648686464182844515197923233182219419774599742285244182481749625328156273411241861168884963566857173356484226579612778335621314789218433159623128734667845399734728446165937345351945323651354351225771593239428528566778381454354873132218182743356572167212787148492994269949141321543192363214991773415577887514435426653328612824916975932965996716664227326173479329644932892348914547694337751392149353891679492522722736973616228939737333314311278954645771539234893249916711479596113251159686986332563898217591683832318699668175813759545737944157146791417819557243355545511784533615499594263528769966387712325135541717413139191537555212568245725171389318136934714764493823439632574651239321836948617278942271217324828777954451781654985596795996727818661926185436723687125919272298621555913988391676981795124639325491983584943272559241395562211272149825635198464491717324685425641593415835822829661183172776894553171294361246675615798315124791251795925369593583997285152392917593488185693249999293338725953121493986535116675362173243157169469566923911139598447475794236351163387921696944378382218661348522143846517873375354545964445859952228445976641929278884355673185941624278879267691289952949841552561593922117963575824283934343277488436279976388928454223374733949537793921779266494112565777397691787591559613745644223479613631179894176543122551379229489692729164339515515812114731189896129615549499971468463577163862867589843115513133826149761435563494166219574691194344115479692724817771498268694266318135267195176872525418431352313725551274599947783422113696193278969543825444312575111577726647629132882463966289845915746852777823312168766819286454992925263313932748812713994888714351342257765932985282323565919133535965957964714946568592276996299454586272538677264381632925543755791823441794618483118575549733775957333619483712181757858154856387294231932996142276886286243797921467671222917676574653774626587765449935597716375411455143869852667257695365867824443362116566964145631391965495736896954585136111224233695565567119711464287647323149944186444499392495393442389455238449678116117944628322547156435732184821471575917674147553691185651325678464135746255378614791638978216996783721142739971885913252414763884222752254953194145716843211216832777833571496521298467291263453859716941626898714828572653614896849892381977311147774833232211417443369877586148816844741416516413991369158792511251838371392686685124182457287513326772621575349133165431743344429147133573913563453164576231617485782623954583151719866191382625593264636543832994765864752379616372681571349449676336127827269889984593984624518648411613272511235889679348636936988576663821719213884884269477154488253139213139732187343521752452742932952279736813476961142827177223316588595445313685839483376458824637823788764558499428915533242279325456465447445631878595652456434658443731763148615198594721836767934165727359932444117293368932655245741616428922551684522955853818293179999377977551487399519241365682419217862669128383239895749723166981377473487721644436156349369184772319521979412648929532976212582443696481167424462165823885995866745834784392253551991856513154326291783162593331594249888156879439138986169747458678716415282241623867524279214651634225957693146959895861738899374926864993946797593715861187749248744687677416554168361815354522624651533739734215161836222233561743287691267724564742939799896142584429112256899893785824992517537359778519562752228751334537716521829923751672517911112165435439622644566747699354497895532136295763835613455456355296123125175996743925571627499838367243542914594287869153647666677291587675772684319296311223833472881296714481351412976229651982714975771883862158118156572614326353823542346931877683639532295993352447529882465416965985615481471177597146112857548647893951674717376319295937584316396935817975484146211249121616322259144582238129119175713265656315145448324245189866463641579726866431219441683316476985259114527662923357917326264735987488779826922438192746519292732373117913771546448664285781143938251754319618562387196769765526994594411371741517175274196573133893819617571242137161944612132356638179979393673481384845579376725782232269593737118777122513929813486198976659553519473225369192295355472621172626897996625112628156463982848164294976763154138178761137152325134634395147981939112761795369529154725653248875583221712499278156262888517522645532831465291473376286364529642947291535271781358462695869832323378596493433613927365361587411445741577949536987442891542232149655652148433998914847482185581459375115176158747499556636997638884726331963872543252117629542915329792639682531314726192445843875878481624958898196352558958571268377294569554259446844784439465687781333463921759697156844283651788149445149567583224227611645446391946169547659469233481279457436159188197252235233776613388985869792226194381639842675285475883637562389542639817238362462265355273527624679121236713375351778212542827881632763842214723912176568369159133156113135415461696683542897632193283666352957663495421559521137944999923455916352498888451532283314648798553251292277524914575136844485291879484435313423421384823914632522453962943227828715138754921411699226325754547552366362528274497134141395518682131873149121246619926987749295444772447352137538243257597599343889985268254695738646977875748643277142948126933716811238558335966414782374218654223767967322382868793727695231218982369237171354427621934432418418681956176172845629325411161474127278793358665116516253666696837472812946841891547392669474176823642588953918632585131345847256997314933744221835482915161715322785842742733814935974768558952226513512723924512191749793242316569481165292252473918625296269765782158314794364649488974298154126521559218728743226561626849739112134714846617373792823447532944533222689731332483483672544392475234748153371837871636563593275529788731328455978515163895893235265796679452977686534927428631289888786749569444868578282425266547713248475698874723726451135467686482611151461666832839181568474631139157424764391196998369646657347154462549889511184267131493624637613921293154441353341662599733956887144321184165987279159441972746211962533925477517189396567373721364936286362927761196759483917433482175439183643692359789375459372144227822945168636987847731225984538511557773966384354224319274523469526811372496631767721668437423123913423753567321249876195874499778376577614618819691321322714233138817966917513392847887322756577833477541558492517467771534149243152628349135474895481568497825386193741385585155947823724162216542156469121632911388663735662146928518645231455489614636624531748826766741357626545244951313792616111956399121451216873287355262467647975847137146292876127483118896264115468381149559456656784123774529161662283147598677897739481383191375328621613133119164638396977587119331728158725432126647361818997322824212881315745557741442972958556491997147147283121616444529964451881492588214996915714462329448698771151224757114137796784568522429144289812359585834157166971765351886211688111632542922446484557366237299911481323818378331339289599733889976649359528964827786719721337752542279157973533581186378182521972994132821751196364923753532376367683891295715942296711445959695666642217712551192938692852171417991376849388439997667812684366416772671223355759169489653377814381989595745539311473876766295993522157327143746634759189349827157296763893696165785673465378969129178248222178112245493683352867533163658522124354927141124989775582736427893145285116984393128424944974271428318321193443291165212478967473974118432259816592297263145319854896342793277618569343711482956113454946912264181455448856692737612588815874651191482299696642275468516562119895723276996929715253284389931783596217637988261344374164161211937745834325428548721951577474266253861989311527529177867111453139591862825967169639463246869417551929279929743316926247245143428175916837298124653413823234882393443277911142335249911786497187354983827698967867641965565455142315525116529978328458471292532564391152882141748193452158459425829844931241739253526451185139588388164259656388898531833364921257127412265364376215128287941831612657497947416424321793411338252157387329642228644356832468932712593379385592327694927748187743275234392636413215334721433618485281673988765661456968836359273154289514393797481197623455926194848437358472933611496264319248339236598918143676996437568813947612437354342449244149275999133972389319137983259318462681716714552488392411222168439273364443771861128332479599148236645133282238725938752554495189417318721926594453952146137229658476436364438797811451729431268297362324719878165524829421196156256273973197753571232159778963644345181277171538355759627377298571658622791835898164262598338319644353322732471411653164887879346198934134673832697891914855465416354926867234456964166946981823372736958553798591559532348844844677621611583657761154183658452139783941678963289758254158334154864613223453171335744399633825818323224949336763479594255648455115655599472191254747875361142567975224284885581469646634552419731769319178795994642318377673379261212962377384713674711111195234137989245619336852964425875386478463472856734125554832921811382191271427115682827436169913446267781965957622591792813582118686955292179613219911237284576396236393429612746437991271954936214965533151599439783971867611718216342718582586986674776619279228116572376492985485454813832929369723433269922511649971797682671154958713385171799389538759749911876762481855576249549787183547553689313934132522447525886485612779699111268229314135375499214659877892857316513634941516266914133219541213793492228611746759953556614113187271589915523637393333163944924429799743861877177448556176184986792775619387614993457778373728188815218637337262846993717398114162259728216238747163229427295266783934852743534216336166527482812531298762273612144186646839782283428256574142438199661362182311133856141732286426426674825459226517568691444822455792923621292134153796371191859938737593386812137599534982968438157534392469681823664155343811619648229939148413926692271494286854314615422848134522619451776196949662972455339642584782944234196632243929639451746361916577581644599863927145596974798745887355241671444262494634793946424139888322589733781885478882336921245667968664543457694557385496761664995153591165587848957191765357765412625648147452283179441912336416357879229394754187319985421276469669334719879658193794658171291699436446681796766858878141937161838415354976332763552842364963249594135717759922923549777862766132621584591644253196232175829864375972911765529855333194375654843462848196321267454413174256592641957562392312653572331558731512318667817968951426317974268422469266685514863624888527913446714372741446663526618945935494144693623437732411477347432478451485448851919513236215931984425357196238822871956999136714655248272439182145526763614421448413456838627919114539188578451973425763878435646639859418944429247636123661152734976232412544369754188258251167372964952372654463113244399954413147117481786575816885145984745923234687814289926812424868827596618559762794447236912456322116371519573725629952778358384538811149721653883843749126918527244147137958464138469431698826187738442421978225674919889352447526352291465332752384512842849967394426974827833186241839564635915996985177721755331383617633784339321936285255786949947965429171692818387998339257274922122869411528179831279913281672476593623931293465785169528335998819733612523783835267125591215799785757461419813693614612775597592457721938269435853289463416684578717857591317142661749651235133821113278632186696638796574651832495795318181443594192277366513788367137269797195171295691171618765819691331246851987453645394466388957287868555839913979515636443969191857597835555955473343883614638478899982854196834722993811946425486556626314182167432391461649942594841372794855986388332777335747573911951453334865364139211568813934332265574554388837367548297376122678861252189565916659351485273391179654572681176335587291171279326224398249476613934388425234458325859928991131155619446897831864274748171955794326182365362622892659387568626685912437411954577199726217171877678639347387561983746191361463712958427753441812519621616173157636636453817557313711167255815422455154398432752453619427663842332497187925344216361656388957821638668391167321769745638297391181428584199227453619251955658243798373232161952737137942968846191482625144219534412611379346748835319517371449462284944714635499152744652819942677531426117377544627826229491916484791299293818921956922943443952137496834922262517497482175827537416436343422839128264682561389858426746218952252223428426942518654831611967685743151219329185228417162743281688497314372498582873285372651177944875554118762682951724251944161747394815322964182972441844295583838116764333673112374524836476516379697399652869518889259272873412522547733288971473824453332138843298619191616884511536645787258974245457239785447142648382863193499319594865238395715514693211686825479385813445783445926466223133483188441418917158845216615239519481373933152637346442789524225543198241878343493213912312599374735813428484775162945812912759276387222418881499145938155224263362713352327785727863689973135463317656493939837178917962417822465499312879574298628932347713895841413115652699617786611845348367541896225953248385437119616616145857818726553336685132397929753649285422636281524889472134553991762539741254529834226759336128843496383746961781296247126211624319493589127371457748825945911312123221634524324177513186797154549441231274339355669274411936992556825559279221114699792996267488491195224678334757864751151115423999516985623646651157126556551232962669438938284419441967998623531511442379487322748382997333765147137815713976687757335352624384439575477334431355653613331674567646497271712151974613354323844919781429533341675889386161117733912724398942445189975129272897438146164681781115191862736512349577846611548461659993972449118483231491722554523287884699467413984953259632934157821423344992144248918326661896232535612314648182415839113729154531311579342985212195764829114312954416375713163465334572325913374419894457157441131918145638268799465345124956767412663649337872733724421456642511917214174267698264791191354254917792292173212643545265397839291658438463811211441926378194326568122995352686468474111446194631953261386634555385953953639419872467451428448882719576292422328318312729898685262386244122457734874813797381169552542331692284199833143615125161481299832285736917332991531996991848765248147366684726996822143575636369716949417422354346824386962613463174424325893177286523228149563616942123157296635312726365925487221665299455182272393744913213443619119528814991347141145945888147449218389314288287523792962834354133498232441327237277228379979218798399422131117292489175852143532821131374155547448987273384219912578679383492322784841399422959845159558427119183429964141294781465383872272912187716587274199967215564158879449572286495494672399648631312373469564482773316579366645259595946777927128967967817112728622991769251461795246241925755218565555539285721348194253891482281861518929883465272574586424613917575531645538423383714544139258467738197595198621811123777967356763773132481569416237158868786422481426547925916538143811744229121236215675654929137359321196859834649493974453469232594657362843964277933114532377144679196778355471541421818651269341484345778397199677438261668229982457261842483492876294729342978384353335729954528616312424554753369592984527922414798583564627675584641954285129891722651944453319838785352483949981944696621846833137719427118151474512321417279544394382577311654117564224522462779659214544741338433835432229716875692712448359557651118269456698212423143185489367586299532916247222983632716477142561672414873865791569212523661561942232252458455735522723948232461352473122131145335717497834248897453837289144593346544643871719551291392245235627265765488263766351912124958911541538887123629572982525885176511295143987538982474552324123257274897183745178141762628884628922614233126835336541218362352813639674239373993841448446128379636845961496486476889262622893562411358817548341949353226771479961123452219312252861723668598247178556399582476377636465789133976289221947111722232512686119532966914993239387818952822714115576697316732897594255546781156275699531692631447781732427118769448745187643137813253878322677625784124311661178952379727191349761129587317466985197111571171176178214419124611729158653417972531531283682233596677818113756854818923115833758872624437868485823589916486128318815784912838683157478382441544459441938718223642926163873279189941237115361433149834264353364156614729138198766937257586635528818676191375891241774978243788588714977323969248978848498826563562778941499229631662312548923677361829772271171188211996525169815748159155681324269327669446796679294641933233595456551364215868143717986962666278416733259845876173812232189294372735411566827465463428586536517492488697748925179718221376438979526287833676364149134755296734513317785342241768896629642868193995826282781139177636443992321461166129581427832331725352713438285472156947622331836219454326432176659799753412868542246411823425484266474491721175833276369974967151874641874618439666914829872131965982328979533961211597253558882821149953611578411825844716597212935858191962817235698764813519149681891298539738926644542872891136617945633146878376666777813259498412254327475345296685297373968816849225466613834517623469817542234646147344322174133852962243424196317871381294652823132536851588419122319693617486693363353255613443649137959993623632447878824621577333243517554656198991399128152359794516985833145775489343468221624741234348128442558121671212224924715119256473661639793345414687498675517565488659761271616474555961765256768335792843926959922293517557286174987148235645149829141361534191562319477673864892593117959797785824534455425741589583539528743316389381869744967476766819332534646942521851446116553242298571927815511717461812119283592113473284849946488435438664788394672374671234889296964383242242757941352934559223623473531137369211611773372175918693664891628235472797758784351132563966464445115356555147376626599731952247566568917654993285764531416693115875948981778766775199212396834922317521892378248757159471252631332396435683791137425439626137691847139326823897162763384982943273177576141671936614172372265762248114568524757443181189932311824882169763976374996753851344427868432115499325595783129232788927174412983376923655785985247521842451287663399599611224735982865313552134723542316922969947693616331921574735931843239616431828677258811572689912628195298153841735264857533225377418352479321763711351374925886321954427377932835516338712417227816271217942113633724535851257666385976392127923326176872723879573812661158529189612431736458673253587422951324365319232414675247567562882316779881236221947292267489647536291361215448191428636833995786641477244475362124257151415392295143223496666773996715516852192967752214812533423127112611942238777223523195196196949183368249853719937843877968869835638665829215556491291437444196631835243472762115499835387393711959293962497597952196214884622961393561459617634635836315887127231691236732669752548271712722955664177192724493256572871224442179511283931663922126857789745777457185676332862633756126641721512199474369274557296923843222332366499427681818227632725677652959342122895759893535623529111651189917294449991346422327561196915697387163568124448393159885136915334967949361773149896329398425842875287771122541174621727933318962143585726493517643217312516981144236188571166638594224119531219893962311531284761811714386775745254155143895864197385915114489791395611821722445591539385746664425179872818653673348358613131732589192449182595499843955729575423687948892423867872422245642493833969694362595954213392232915678439818995351396329677886386616752143657219274183198369178155194736914112298658461595168873992488145188274771228176174729179561422323599852954915215684365936711985273767132477656575797325121134521576366124387512988183755737912153434447681236164373686762956841187762872159479315898922981363685281513376512131877912192398623291942214731495524966515388379395489216337751583853386783442113549579473664476862623893713652971995262136865192189397514114616149772896895366822264835351358989593832666836339334388939727352629867988124389931957418179139935169339182333869784414694118743973387293133792344455782427384474823156591584591712483789756191164174328557961829872117719552295335546167978834565654411114983155885231417242187998843644385731817581643767183778867743686232561593238182535328715616382475463543368235551852169914667973777735436717934256534117325695932396262939552544935346468329868522663513791788626442824679365315686352515464473563243413972484321385978911453844415389826752745237232688252499387831913236946811532481247836451187348793666779146484231236582133895574748171599839376915927376521481872122133383249258775833656251572227119638777363434569933129716546299366258932531275375944419624114793299691936611812437481853354187631697171555663952338413431987181521259569178898896272693112756638253621857255984274559453266372138297127119519195181344161272342399624912612159982228735464955364848836545951379929418985566957875592995843323223263347957924279644687515153933749553161862767884149813491941512546441747562699995263151724434913291449891238682183622128291884128825467657845281554643466436136388166559674785378523268476995339581471475767758694894457266937228522613592725371417185255345156824623831938475924947342561384592678628983519956534715691287835394861553324991585519312451248955218883917829842372572947873189497585641717729691533113495944497622754985573616356516971142978774321751312565982234762447759721514868493921824533152621662548921974981892446968771278789436368335214742627116213749521813637934149682214861249592998671657311157383564838889448591119267677635533593828231617978811218537112852921569263554641421415776188613395847569915413364623364198837365558851364489152454776244943227747833123339257639274993941483285687996232679932168371385832543989991836636313878693245587356929983927479177689446537686677987199367942259552314812417366136472578155862986382439493561712914795797691914487476243675499527449667968215537285796243984132113867961147111815232875724647831611365117381156877236638113719617619614616542979665229643265252156395128391616551214324324928766572866148928444652692449775455661313827569838988414366441565376959231333785449781753597642165342758693894898765529365148531444318519472922397643912843644449972535385828443738617751281817234683134927229495536437514862876338844946122468946389227166767385114371369933632381116716693864336983692642168396955547431643952926862421196747534654581159564762997621956724317862341878357576614642995317641413927974178436515778559992658966121699693471536998245526915294248557127474223153246623469294224376757695113779985723659241347843921615695174515286367312546294344537123323712633689838622863132736164153351382447339881381614474867844823621681377496841995364173868578181415641846625233775599371911429355879482275726396119191817123334545327811289143363113131324118146816489569543149243112349653128975229625772836262483575741658441344142111876983254951147342628141294241699219215177958873663965329438654466646549925449335957751713465435793248234937193959691386166923149878458565189973246193163993933925847473813111183914893858667431223479962368422243229242654227467944387653969994155476622596664538644198738362148296965582476321962264328747728746939881969863171933384576191626127874399746411685895122146723918834161976434858774968726395387454858442533199276836485239394688227673129199361584298459482538658343962766819331583876987446557347728925343586913324957353149711484781122464493639529973781322563313157631333997345538341782633482552899244293998515883846687169316287932963354385263788479896746576615137415487839439753457776837318889132665451736827634821853899774453912581292537232466437454418362543974292582583628267291621151721252136932499991484677614798943298144123698626897283356743776223469785167496747171712825437531951971234498367739114216743474314995394734853858858757327489532329121533359575364716338152526288368748153212424542382194611344427331758887127822528731222487522311164818353183835812645479364421841358722488646263956211649777881274561662219516665446795176171865827534678454656173948957124613327527395134316939961792714434862869717275129554339117454428956179951727392165398683858775621514435617948618859242954486122659591252539994647982949942411545743782395773419525479817579525229956382331692662584181361882459588414667132359481453725534831248115855869197625664129965136572633299395499688562296121696749464739328787993885617936631414166927574834778394512948151835135389564492713961543147913233855478141157842415812761769938973511621941817132421145433942671658963122169254973959217315142419162536372574211157542176792663723416449846846716443344769754832542616993978514463259426931154896297462512827188264151757975221795182143698362514255789319988719463629847475273979245176112996771932312882862115682265617956586564575972794346122792388452745546856195279619116979978973699335252433373735954451971336965498519791971921215632871746246557141228314448583753187241921993564169329685495168457646575994525463516923528299789937523739869268648141521841983765158376326433779927513693795552331969379548225658356269898475311774941534991433317611655366774376424445551263993264227265977244353851368821228135925443775373659972368447799568395319169722664316947263836841621295227125871932626125135342741995137339512715117316341284735294243335752313218464266383594483635941856886352448386283369295684749323361637821811164655472693193864514147741248337886658475917997112432887814586281978986528551843792783994948877617689953699467647737362369738188713647196114446385631792631131968239312548316524273488136987246458155123288982941665495286213652289898249688251293274874284527592819192639935495573718826538947856433875777994521362484772111361574212462215397826996416272782764364493261218925511692574117424543833266819328717982184855557638259288658589683942554994698726575156625192442529641247121522257632618533225995297242187886931717693976457852486496443532632461229622158736125977176718548437169578761889713392469893312219221949571398998256536114366535265486969633581618958364658748611575231926852934463835356856852166762264291343429281285236921819414861212946968237898522657485512765815795371582256917671341352337619313289199826617338689467839979259526238634742566466481326139255929342259352769852873828895454354517376553142523486767516162899889897214845624519334711374746337284356127562899464843141629924833562649471231161745222986341168458955186979512766465194616719138732443222623631339735222979315158353915892442144735534931938681485678669188452634873337987297549549525488533935211885226512348279436113256316671552246832525486951368169888941679744934619551647976873372531463467657573688981451985514314518677584513231992831966655514941482758414111456178147391483161677687193669346253625931974238443843478924891169794369231328392242586968195518871643779877136795731377449479652483995446912921489154266293256463259945799691876246687472666755478755724379643617544591554324944725812723229795738411211583961745211557451315827395373451659913162575917944629519648953149414283788515112121159415177633227322546239559767912182573153652254256993113972491556736967251514991484656431444355452118422939177334642869474927224321961318645824196344543663176625565622756117542438198921193598837291486159122677357325526395922487447183573559497272111829628787722651431633222945283541334896793381228511551687185562271533852544152575828868689311428598373743244961251825859893178835751225113798697748188137764822422141259247666873851667913117811975497951847589124251972347219457259583126135515529335851141873293359156863131244488924361583532292445176427772662345874413469211318469891161753675132252553917476331292952393413765942437567689637944164774945873123226478814972589157158982468458122148594244355621569636519575682881542265451282618696821554994679238195419624661548367432531126723455729582189873352738339654657415694443946843625948194356796933988748832292475742739972528588952849276248545285634987753941893623421675354614331634589492484389126113174889611224156514618876465529125592437312482593542997724934732536387112937783593218671339176145594129623877532846786786649661862668619829933554736264421877438116725795451393916471748931355123884199627732116411889985935239445347991234168565666732854374288742134847749574562614773559763234391474425833752858681919344162578884691163617281899869456194988818716249883562314735725987859541375453636818449317263451356952682468537679436812795452173428566744975993866229219771873416716469833227615765351811764954774235275718354417899618126829273974177189342226134224275498487972786223564614946214859938954556664472733355153367937543772574485588371724294622847877353793958647682253786467292525834954655111329572786381264359193161653126923346234453274412957365794734625768437571413226153153986496521122341942334511698393696523656267375413531894666495423686745564756828488157437547162313554993386595516565114995288971771828546463138459313332594335147213711127243582471222945781555144842764752782395741559796939116264447737535689682954481949473254227131522673614843338812253848447713815596268328629124222452839339587736437222159273133948333565415155265777628675523895679351927574826477411319822439229614786566881113287331462511751453898551937214716889222387544496537511231115469198623394381371299989816614952574624561722219316162181656119711931238133954335467728365696189959649638264128164761918935576463378175635512239339397569693639612636686343582939673498767971731442716719558993221642257254251419348167318851971434158145223886743328269416797165424739456116254442716117657391534442123438934697141631446815493341612462117166658349818177574884271612977774166666529557796931936642129916661793331131645388695936826752913773649315385175573773353283569422792537177683623895918849831156914269472854565986971839335432649195532318892285697455135974113422638686614118869155761284359877254939961836677215537365465551492958632785915712582644133794598512947925133614534592694297576749233278139727927257257989888196972467528667212356484114875546795141169898897254757253625489232144632284848979647113842612941353561441426581657291383559111146443876544161966523911585772198144528587368283751615233146711261241277841423967111756567719965884831472118737781583949219652695697217716613582676246197281276683256194335474497349944338436357129872718743163221122889779782237314183643179796191184184643954692723928872446985191829791728281583323243181838714443921354996559566998346291267587276452524157833221615561445489297553278368514557652244612199925295998594748733217754525863388447144492385158969439273529155161754849293692191528986815162794645813434237362161919171439362967984833378756376449499217567493824268364211233954446866749472124611416542129595292875742883523285139699139427351555625859156671757981348622565968187675937774933445457929317714824743215316646955127898156297832113442431165615675916835943287283133749723127287972272815221618952211961917891587648174353534867255458992549467539486672185462858284166582414169264323351149483389585142786699239443736534313348713265373375939225279411134948891248613758844677134618555381557116834288463993346421392744876276711663634528191624265785874539153541564869578423597417793868889744126325685729695643797264176495232424374322449836556195652214935185988444694983393443624371549975169469585787486976633453937954687154338356327917266774831166885215691148817918515514113399219447681679512993943445132785662345724288286451428385366533152711565952926693734719593266537666684784575817674649755324894363244241277931726972312917452831622751422154494126443918661225631752494377874853353569434633857448946123359217314185421592358188726351759143863364971322114728225927742189995923576382375989824518269917469549572811136563415584231197517458994188721353678786693336473712284149488992663529464657695881316513557238394898476678427167944811976926678228252235723347411161362984115255149119398523212525941867742683667275636522748914393479279782324151998194365193843556357353318572614513937735133586197874948282887985922766384138321598834485786497524729776864116459945957561667182535789281932689263275757432968321939973752885667199334293141913345977331389892354716431638257172929647924641645464351144531442489731685422621152665446648918182293761814829217797985354125387422494217325977162497229134396389373315649945215787696124928926771444415182443979515546719872851491189581461432511919596956719482454789673442913278752418915727431894681686683663839852262112965927359751425577755777718427628289671374453856367339159537284671762319814253323379353357152486131994998916962423531933334194174341414587416312547212686687367696974517154265989448979516733365833347952342328893626675255332236871722615892329413389343455191692746441558655889281694615584126696128861515661292264813766443736171583624787683911973232922586412789766795753291969536843871941165848654595257544456472515491867854763447234223247554757716389228538513955574736374916823767365325916265511583536797446458546544224664999273918326774912911483519961393246189142261511452753923452748975249987946865966659777256551732531419664861265598234475251639114635486643657533787638637299943429199911496163895676492599515832894678215124952279375272352448497292389152731311337296358893547327424311632156786486851841727442953792427951889932498297224184462221879148191367412621484794557794323651344581228722118633957225541123588853515262892793336767222247612574828779766672456249121599357326943325189919252754537212264848838915795419734954165391563471631999841192742331777927459781367335799334866638552221969681813438649378922881393928187239978923817423616631832929537232132336926561828445737764696128942378514225313933225129134187127263123133612121283652433622226956231834189619351136337735842854346882761389489797595871313755783851946319779447914889994449769638967153741743832843799489631711251132248165865851159543945867129619383348854732733124116772432735279895642816866883966745325626769369679877589891131853444122258784169786111224429784323363646252262347831214542883714155735187148253211669232169842589394527553582183457414133317584746425669649296429931789135218268854326822183345485395748119412971721421742633772835589252365393911441467489926917271117484825985764713461642533541685465721348213987972969129294468995443634331237898815512265641988568558785498629851785543427685932628549574747789427784713527926815443698428696598691393845957137698986311152839774874287786912993361825816795167558366329795973116285252157784843843721479811187171636553529831855747387942432597352322788742948161994379135843736677148547916838259776851899374199625883718337576762178254457176214392441333764925817955114382992381923331642431886386799917174348877453897464855845513585181853196894786253844964964571573812621433713318962833872624798488258895334177952925838647882767671465928716866929549563683132528464233812551225616471759751329214363332386281552714665365853186794147291371325996525313294935335277894515687949776732257912144117642935184435985723181226646718273638428532152591854955393762892181636163339579781649662732311156593559999434868718474171233343591819828567294139494519563141573699514927661488244518488329553161236612369929387322422464246153645332755498519317152836197966627116695839128731771665481826261141351551644254427593932752296526462919452574536272337541691168447866278772168522636336561642128865834927441724467361316579247744127541192348175323954116356719624765571491752413799689828371216216694738873111654679528483672382911247444647876546194423551215165583934133683287444321892193641599798157111811398597513146519893339235692124935255257253251499493428925862931181336418363471624217932624954393722173588713165174164612558221871261282283828569972954216262647373182423416666751315979615243974398918864216754244719451573324615443462318586617991776947367838946196357945574574468912939962331195562415298579782987445392787554839946334448664668397166925694384279511814196715284676554783112916212221527619479211725352414798415561961266927987949794941432539526428162196416327358684733847619178249161565682742572347158686378212583366211287197322472665598899146998173222564971755553935155184633593422366266459475167591534943226985681284321859755586524588456968555112388931278995311395898835261959486822753586193415643667731436483356268642614681252235896511591639144332192281121712242162695435948534611835445929394483369269885443347132229426242269978532966428671273923527355235893961152316582156174578399869894799428164931489354135232715553199984485961652887166274598467611249472981954721567113422234321742826592266657889436146432264665141688717522363847438532463289598336278625274179974334469462476242793211457674215621426921385581147319674667193933295177655212128484638261168873798931427354463995222596547159624414979129925152598823261115692449677394982497961514652743748469592243464371372134632453659652994816574129397315724276557646294618641355933789195358738325592783622926183392671174346123132897382655935983797737442654715829124692296426126156347986523337987311366364482619421586523686348732479935625484861927563637547538313977687973248168754229734188486899671511242212612958321563332579621452272915878291492293456975897294785944656551428998597158439599966324199817462219955489893723785374459572519694719581269591525384931932563965644397612431547467537196683716113373123535258764139793777129143283466356288554743683164448284559313343144565153879563168123727284394418661862267126484257723934969494726233881794855218157264627444737384832365687947542971971436273874525785554585386156922863823234841579111729426831159354917626828589241986827378259314994356175121253549266689134336192873811427685118125783938387587665737278124348456358463272731315115475755374167638571273387416789196484432436443292468655928578566994588421669429928299231116544945861575316461298734242491185356681966697243123927898888465357955841978353544468899396247567896276466111549263748752933531293499868496118557769846422124917224659148856129377227488935463795247452341732118995967741481843579527295119656282421921925973572582361567459729692545542863369357159227182682289447932892674962413274557189279962426596591312476723333476481353396157649245342867846835348245415312991443699115468923636256922673854988958335183718695157573276276955423532578288621976438437897569244228411321184181949327463669577351647626493255312526396486852261472375498172762379927258998316391183885828333127388866653975291825337833696813545493152116571567617991596664287449339967559761522287192551215283872753618333855585357637924116164812426552221541546413221837729276624751329649441487383393132679478365982416197439453283521827354916213359137266732145293567443726211947188358872883221542956815378441798595236811462987353921361249911968822865757737954334132428336173672727631125822437533536167528348456677125632861989752847624978299146917459717134263817281721254222182597116351549795934472517972467916754975585289328424576344831398274353982166574817431153837448965853549422339355747135392796828624363989476442616341816615491461795469683659153319776656728129388399125762971446572598683127887446371594347122645914973544264546771379573839649273184424137817121567356568886686412771314671616696443341367266855856687211259696326132223424456269591691817326949282412395531973311355535689352565489796526171829599823725934913676298862687552484912956845751543928998982449555354141382141534113496483823983933228596789428788277854915867696617511555219558143913428494224462362915317399447439759717378377768341256831243143976464184691745429891161735436833121627369591492489142496691369157511553132441813123449118434559365267621162486356268176219253492539743617824152539481184779599693851285862816864667576892146443767187288373331858265933126323322992888424581263799555929123574679884646932847198729391118114497683686964866229483968213364123181784261815631314266784714775586154677864963291599541195252513261561235862166361248786147292621622745245852425467821541984295278356541347858587128751916714853441442666228228222259379928163288142152333855683484335623432878684143347253658247654284159469343937394857755316155141829177984194756696535988295453447694595841925371441238154579595261869511842934123619154592222124713673893693385281948281747531293548456483129281348174145215365628477989451677743753131356472229123262189528487725583334795313229952464116475644313543757183146787927857353472194363217567932564372365732587596319587151717897678378391873968173649365865137179394245987295367358519946392328225384558525322426597544292355362476259146369281441359343143894737346423653362723233237452673544312556145393656468336616236145167843439689998251126245435627926789646334127499112494754496457111359225249231431848366849531318354255899254171469496459588969481343873842115516223575543384294771169318662626197387125161695996996633735237177251928548455447362797939884769189598455627522549199482441594274448431393151122661126383391822774729458787363946422541813111492499221763429547425413549417141234859527876137322928864119644567693448495322515294944119286746218469629211992821938981528375536252733152541563639715192126833639868656766252632567299752139243289347887348564716324175482881432728592649465142463195542165352511622456443529713476471694913636183518817657548664885676134588212956515577485378174822321459327546389139119731959253395695877784366346121675462823232626294276117118227382939761485422681714146247536652152494674492885491835613125236586813677835683648184318251231116195171793539956397457483965474513729249149219221468468368613316249511494759795967713553712116958397885841747617667222892787999738176794219529778713179411645673261322146261115831311295441797456141817564315596251365271614772326946621443665311793933539488552756634113372264863692378763811161139328678116716682213215288783353991436916699713535286553563584416938866753331672837413868742878517557456619684199377425897925439622284515115973638967347885419639114854691476725135851175767355717134621328913753937657768412487846219963147692374548359463228146435231219186893825518824713248112322875898697212294869445641191229866225228783593693569827796991893668243119543979321721673461382752119766751976321764132968842569166834251748653131458344564469545594322113299368238159856726354577414336168623121596933362626219637456921393996131513821714316628236155181864789962411955349691233414159897354569745493417542726319353141649848318246442288474319273452116526482637656941432757558245615684866567248376455224437192711923843562321328335921485619112118226247153698776329711262152922277423189797912927122338672899919289275178567359584895442949694281232191411568895915988117467796937962541328159158914489416736257569179655529596857816111646318312229413232631247729821667183493921895153415762783661773555383378439769316612668621879233948727185394257392965612242457732858143973171445887216931286332231875799452668933651382321374454222961996255773547249173647744256454622398291422699735613255276952689141951211317919825888767555273225915375872938721746761379442956176812687226983925959999453785283267331385821345164399936867312539547462913537588563577472678447432227361483637312368958974912455471219163889144768771535526135329474796113325999222963981956958858592532133436131542862158635415533862699267191218869858211715368485825366751942957466435181739946528615198317362136958836164894149439689446469913277888178919812422788144393922143141375444354949362877324773655559567219812239619262488732218369575639415748674746931398891569361741861433272468497344852345749453952128398829417257718366271329195613225954516342871113418382279899139555112813962165884735916699424165326826922169473641367913691762342346618628154873395358317462327933118968122698626552514322985172523711182153766811922264959925243141357463422378757785874646121134487388992544323464796847892853186914645442989933263884524315431142112176326162191524922812821129768637846564912879541544911892671863116931326867975747185428134339319631754412527951336868624263559655786964122914988222924381214355465435958989413272674821142449468252172382134537658683684196223579934614199616123419911419367648644739153529228836782548322594661669952396753284141974888816946173832168219643385682794279226297267981816224374776134331463894711766151252847842373444511518669652236412771851792853832377468181189462357318423768732995334662825885489581351819546419978633711837466263588437334811956523929292976581679187286296942518948618982492575843876378353221853844628146669431871468419415317393141225864971253211562245853778964358739262128919522742875366476758644693311299287318272627237826317451317534748979785851931339333669346754164954214412741659334622126412835628991996833389294666447363211274252155686549864731335229597419161224547329258947781344777373715552913698593534186484711445333223937645495469775547754861258345457551371644357572352295696745337553524861322214712433357756279195797741196211492259828969123127234397724674292275836839664532334921233137737931923487269473373164284823712861645412883432341212795393558655787629261189566318622488328816487211322916167289291468492452735397181186218674782421569768924716718458248115159682995755624513429811727124271771213771154252656598893763492712927222783182184545245958451324681712575166759313226453841254924449756237549493369455827566664266815337164212931914322416594783891589597444463525849738473668844962623267427698842816335673145854161592265791422238212672117833265747753561721464649548946272884326763197669423551595864854575158171674355646326697543548578925639414616216613934642581253119251233578726535418322798399156887343386846599553149151135724262587825268184265384158383477516625635271274573818763543799176397173255163252268449633859653231532694415685646332121253144531435723334775542564674735155554478457724561551188941332836835441594675358182757479154567375867854729486139728972558153264634983356428664275195852171247639122712135434335614233272645984146225998569971233132862537456878282694187218512136985368438839324876887233988415879886836475358353746991358965228435272513765111922225699398121687627581754776516717128219879221563848995131899423118684134875331433774895299629143348699914557562638965273714679352867641981364553491227276445157962292859447634482221942231617176466837924429593435616315912156744112924247621321942563725619443433584972554535691245597797294634739733325659728788827748297899328914125635975363289251679821834168242725767565715657643438162438268464495133759388521387839954411437777351196115411381996651998875499169262474352294198553357141517187891732726639212829962258595247665485229487284873188139889424348321174457358234487271333483936922573994426672245774283253512473611491945296161812847991829632643978121812323161133676529814383427762386948188266595786338744685247138366298338454935513731415118972769858272392375147113557728157688774167716817856681517149932411846773676615421211199631681318194474355632722213318156368484363659886162656782577248799796611653585891356286284994171659581169337937342763176493954617218731118637373811915597425131642633481829584311692814937739834814115616576259424522816129231485537599189425644511853216525492365591925837153295351396285164982659456217734348195415281128233872991721865718415397125918249235173133329196649356711397846413634579372453652192125885495756117884846733556917612793995588814451676191857944927459176224468844545118156151116251117313427651127286759821452543878848843292297668127343656489652645183369615684759534843636345846551434175525712154321134545385345276323465632913617821998211611195166832574711831195378997399935991755223426547613228889855181857634737572345738432286186685635895674954692654725681441465417713567953272492185894438541689675466297748957949858814521634625486652798667159757674298918399464286896682398533932452696338211164896871272929733293465287482138211413438431357625932153852183391932648971134665386814435998742661695845198162475733559434964979858489963368416433364256865167873289417554371411914265368521127819838446285468462913175946322125247223577182925733325355692533124749282488918646861414674853563795167349373392944581598145835861811514755415872629451539597384418678234447268752116827895376692622811984735133668112896318447242291181681817971611146693668592277528442485527934322528212975132248295599586467674534549452942379661448474517919836766973751642773735129783469982389233253521877686435136332128763962795716375124989189643692493836155347965288876237398846877734387929746363174612955785294222534146217952353139113625659746534615211559449787496843882914945542843432732131855767185427642829662716418333526495184241531263844698944252774959237197755736233871845685298576171743667469666317172285977149672691746212778136429978294227353194933698547481312666634797951217239136966134281491816932181288347159112422473199533823716277731665246138914271853628852428429362579128153318434483931451525823915519377462212297715798392748618452416933868886884829225226516973919796223415131515344217524673549231395255431883764688375137211268552624989784528141418953325933139863199192856586578989112258461643279148911222274128988211734519165646239927291214763675663339229418467243689268752819457463846557136894213952454297589562146591451194661172546242731166918934113516817928827528573299861515593887411142373391326778646294198214212465979838914974259324621758935273267477895984167659298638484115459315352549935459191548139227498892317112525268173423491854681345224299569148921272985682855463915874666785783645282572257595757711322564184659917425671113435459819773356485914677362217333322251296968729489574545244268444671662822331377414582628286192262962341225888451384787912627361262741892676116827539471983799387181169538643774949442359176189399573345421825958935678456513774326475173519716918811676712335983512887145413119833692324216573995592693532267942126384837325399822725487929165912273521162355984874669849263338867459426696894395812556435212189585687482843247459592836153669451224889946931328396566576394915563971515327271125796766587411732624416277252523119347115859894299444357833882521561338466663832158532974821522799371236249772489419357912442896498416531325954481162463968849552471167698995783372724126314227732475988364593778238438779395627888857267261847917982579967511768187192733554483477193364535655721327683547169438539631167989565677594198688332187361729285938677111893564331864125578291326837365161751333387889147441174646788282654788357275228248814759279538149226964653123561722452778623387161998393325295287768298463939731532167372653456387443314661197253475995496322686555716752125936865282941652829665723286828614292255728822584955338319592994344478247537552625395726663858942468691874679259317655255436115147493378172859448229645218532997326933945694573323253416768999798119151856427281971571533138745547581499537192573741518425213675863759393756446735194221141167628492711413825698381945294882848358896167256442914967677318477866871545244865293562525755791975129219983877534199287666515163257878319849512529613957831653228452553424379357244275314593463459899715942262768525951292154129156849548827193139589679165675373423381533171499713331882985362259992792478916727961315952858162375495965116836529753454949981275364258714539444844828722163835656739631935148751323272927911615663237813927354463311415134622178481214985615333774338773937229553316349862223789581512693172767193452258458311222695672176322492592499937395564621527149923333325262138522775839132674755375839716727617412458534816256956822839238654896885762678182183166261846732122312962731344517849587653599433227439562178579178276717753185821866286956595712271877356451161989331369139455333281731329669795474111319622485284725111531634774882144654487598645883653599144278484726676871618948984382876528179629219195459389824122487939862973315316327868713519718964528487257553482612798898948723235733436512723148326132622742255663546661592453552196389619717188533537167458472569233149182866286584591675148384185379495193185659261772268375172111428974118874916933829669927524333315126835456727485121121838691438891171333274266768712188872615314842312253542484397451238241341992424113543624119868757383262931319471468856234141335513772119818192179879559132226189919135682421484652195829922934721748333585431646137456138639713445711524494177563859848398614335352378558969666933982686462388667642197395381211979531181339158315157737384717843887958458362678693265819726652827383596164447481831698648411438473236212984375489698555924948477251947259726965422338751391187532458768646265434945852786843774972924214297163124411453864138371949269365471377213339282591589587446646421847539172798614863119517264948499513131348752921212188519791865661542797394713647511222253232153832181694694642949784988422728133413631773678434438863715424743956863837926186992112661221249747461178352912316196164114643691921316551477312287357147514425343445152331722479421535716824154498465923111691653643483665217498855658226131522168447628396188311461773655651146411185184449388682253246516819394462618869577421521386116821117654116854468871448924966853424563174793959759173125719476893836463276247915131839646412387992797433432321444146391154929949526667896666389868441454612719681943892652299477434817848976446329564814625145325435849156113587852239676421656131667528213113323539469453953755946727728647633615262842743592726531834737829448229696536948563235828186454456748212821395767447155433399663976215952847617465519597511827155626292766226558576555382168654365647234247241233812871268149223239719642963181213245496719158332126788171132862326235931791311894173395283314353676181729443937242845722348699943295918171668553459335587235748556922113321924221221445946624994893631675953841731555636982143394242121344596963493271939771166213522334442373238698161433191144325454328475521656472871419155896294466176896126363727862259516433313625943834143622332213758567793491613793552865862662341984645892287292321669814232448418163174321731929168391736933262886132722262689211539465492631416561327841961664963448594714635386127138447316328346351121711145516935694492113791236816368642415246525981313454112144648553163672313966149658292156188951135634951225162384796246446168877996412671938217752184565975934692155299985437551314963548117737411253676774485792876671213824831827617762161511119792283412687491649135926496541195217352254217453153332889239474235342312593841496911422954945454951675134445652196828281244736288989579751113873824562993653791599464448361978617932493373283915842685741858671158365424513972566461436617132512939156895813798717195992162329581231283864911357772645672896471572366664663872417455696434343936989333766493121227482595325161875817243541773764113912114994313733266278174725491276126377121355436223135261429972996374599245937475326666433532319712431251553181632298914326829685331928189313974132672311625562861955394397849241944728765124218977123856737679851554355185518587911153522546666271544658317627164258269852418329429273864427747936472614488993774133839837983456727157744587677566426138582252491659112731636722768751994295899913447924847355534716355396419227969777571242876426226644593125144111518414954415585565515515485161265493685466169872321453723112376181911469976411276291529212982892557972955288225498387385258886285588617168221642188639546251461441791278551517493866684689451462863546916651843876851146177381635896529158235449555874123644848779413281159818664441491332254738866928545843778334341538267457697613884851336849936788713651958461393448846142262518333387676417248744513257288921187229825319581254577933699974742599838138352484787686367292798964737758864156295436633396211562673833161214373835472233275916446288699136983477863521489144646267713628943524488231989878696353124932577625623473365239224235232355665272147791226951719733481139695845958923952419116265519515592914512976117997441746826277841933345118134596616694183392872269827287764858486616531172775344599329771417932216432986548462548551581392198726585954111329422172741245486235532151952251169532571799422364153953736924587322225333264653112292323293716492813752392221213846624772779813961491258835614693236175164812984362644513722511923942251123669554432912446542752743611136143439443814276422279825976148711555368285771156279369453645315325911475455296416992585886123838711233967294418497944119512516153498
1654953618799719717158164732798361774393493778744179866552672794417448721928272954882228953712724773512786272366127141319676837112311751167726919554438753785593614837977797466979526727235311591949778524317932872937758239726616149952756178246321455838479437215596649669996327993676863793242445912887167467724343812562178684377668823574149433157727398136783798228356664483181718376863461189592835837345683832529829275743246336968494826771577566691291721847922182218938285864665361549551571933447356587614429644729399263648159691998684434187575652863377817488874128845864195892152155549322834246135158899125719944712641675456156352692537865772577619938379366628633371746545398269679426468893988931244491728177386464731195535323894619968688384152837881297398479382954424365377386529663448783545475995211522815168513938679455882887576865761699747735926962598718168478616312549613178341869443849673166768544495497951563684612151443199296134889448951176292377387144425876568452377229978472159619665188864958547719334826495978951533878294414324771879398457863939268181388366636474565759718483155254873637317259454942177471333453278631644821315812495466729946854535151931451819643527163893747963683858917448552791331334712183386967782959464382252214493218487618219859546818364789263165122637823432659541782584477896111439144476439852895316938248865286595899747533966364585496338123323646637993899795485933391211427763265478273798861472894831795286316295177614467638395112188952941649556744838774923712298872411973511175578323733327647511819777374182467847419588227293486115962692749869254111513895859391131559478112965542871163787228745539529964892467189758729842581365765438312758626459756617847898422131779492222489347485479734946111933958747283271842548378819165819149652748812178485378226759657657876623579165635953145266338766194991617795842972193676754917733665584972771472697194593848414765725486333354562345687644758585286725196698795954621841473789836692592925867771189825285898715815691981715636288978868349245593643844258596389478685928545386739816882197231121411488983446895965942961455926599845963777627462757514887446935256212348769717751776256343995731264945481292682997936258555635198187484949954159477425695781579761572864625926124352966988737965448767527566457772767757565657734623644723145194783662387884941923437872676536236479335199589393993897881254513416284728663186931485116364379591155171755368246582572247968478227757389573437742313257521279484357588722595145195341496365283139184534989585389952422787463587594412976885626289981574248683472785511164542181837639587413981876384821856948444946659816283967778331431123844367951539881334755887312672696858525295546687416165879367699535877189411271996633875567488448366979412791343783683893128885575535974371419278957777362129289322454767396727384396592418715764229185817519865325494691362488113288449678155853824959628173178629893962958188395673712186746933327416497449295586866421242863421712329569774952339527938751752658353283532832446686933486958865988853424113861554537365561344187141452134622353276929495454397485145182371954494898769388543917986615596169345533835733884423973339594899158814651475248979332231369526369941679494463299377635958163396139153217543418952529124158599194269458588895752597781653516951528812687739549711781484969837592757141377842593763887391994388882786618821724972833452345914244515153797349488182586879711865818547921667427692496793597672638643759519479499424473987822896951727621548612418473835531129315157598971631579453465258543417785738765165136191952916543636785475951189139825652759462624878564376338543735619526812235191257676886134722836997689742339373561731728332983395468484675196456989453144696614117549881136529887984795922194197956287311863148244739133248988758161476914341465968382672458865444291996832836194257892363882162294258334365866575572968736566416226938987652718914364978399312387147726136731833238755555852897412977917967852573582827286868293175758758667485956255767187768814741586987993634656491769138449456699746621793841245631712778192343375491898824693234838987396422468878752665128149399124367436612455463627992227355842927532133317843464855199279276691743892599279723958292374342349786955828528228621785911973277817551592385952438423668112666144335711241346971554145195378852451564226523868863869783938781627918172129975187229788294542895878814691354342759364174783639599257223167931741919296548483854381722269945694929581751721942987248251714694478562443699158469364562865998897475239167563935495548931437416546979483281964171867119976284927572912774984164795984964969476748171799991571754467196535253569799997517981488972637635352273955973116464913437676966179865464488518963971659311229862957118845967124361962559976564319323541988129293165729277758834257839186147162966479833962565735814139198625148689561267951584656885413515445772698252748475635679476417358751396938651538981971335928866472193358875682953538326224723596629658442434316435169681741759924941269834799518277564468312977582944746142691323145649768579624692142847146155743858231958126715842721655465117646688928758836896298934492581853292298617219182211863115278325618888168523161425777343179795224472761472796899418275958947638248969338713613346511579658793885258493792942776325862659964191649184934348956284354613131967359144534772227479779981585475753934618587295689349937375453964734396782797177417915962793943953437946726611146182865593254943827331964235742685337272776135517182947991731217342955345936514491255664591186846162943563458676737169218892131585625948718227848969591238292463662881852116519288898744643365824621127262314451215857886717647363736882565872384678358292619132632521362563779197625578449171845881631595464638236175981219558924365892624749933997661593333912498957899327169185878176157957679818655321752485926579969994679945571527116567289551797892565535658834541474722259775325123799614723888363392625979965481397788958958218313512639915632732985445739657731362897134459256114834195242517996188547269164986468681588414895465294241188737797344121699813555925818388646323287288411715264145367154454119481275992371221173631718879449475165535484614674137311666273658519119885543839411389341534672953895316265739957344391539921861936183977516991682387482974938213298796651626757493762825965591997817594296982967263147796987498873927112569927151935933668633342995832554357696366829752343137425324135787898126372192166665777698282825452634277544576463365124351888332472163373938114632947941844277596487618249767971978885761837448338466394767362474195212615939192626695372869654421946278115671499992965685752678858718929934796945918524466787213231657215927365314792692343219968684299931421781296432694857199322833455377685387622968577143665684284115188256821735933964481652398613252316245754458856946867463588892516798595545246733884336596594659163328845651188682918188364378557355839695852956662329526124816341616173657445374379525731122384124816154869871319999162583725635154343258313456498919966277686551645372883175892646429521867835564991772493927982671881874171257319666618769964762696187164897327972975281623643827283496989698266695417918989555996811881934169395294999197611917226933726531557595318974186772385856925476942764569488911715355774157863789741936993136731359521981382267744274884472685173247568198838674897449366746959544791641516412471762644595597774847513292415528695958569896477834119313627973142923311467449164323254937371473482329612393568269329521235457429559788769184378816561756791867269629716395594399661967745278522833356823676318885793284194218489856498899822543393424418735741769151482948246772244187972434777581448776895315518419644312988555826939889385685151964368892495941133843892647273629212548793574514172977957848331293194597588483366743847953811383339614154837115386757759889272618552944421512625137929516971782997378345147965735448186761233799578456585581988895175768825974518211824273356416711913247397746192974993557645183163956438393985299994829994779983784847232974354867951634516439318743146765252618126494275684175989548659687181413545259874645716295196875193163697444365827498369811156763519655278969263819296322954179893342797524558322879118658463764747122986692288644389335662245789692444597937132852125558189152422493939371529678157513853461694998782351788799479193884128317156396125939697941131571268977157585586853885286384561763613875634967651576799915187527375482357798893474979376959965714868725837255327534197666423983486225764334611242298442164656795162315831442942159759828647598227783472172793353894162289963274262929413985373757126284372117986818689199919164422185526616119286168662541688568482116519552826641994528549222113778139174283826788924124169316643553753114992193499729892696763476966139146673552174318869934412486526594516965167174551392112149933298186924858841365619844362885322974171937384145636291176438844914125625131144456592497659841886884326195288328587715683918593228854173487268216286811987328214546678215536573894253234586266949181472964691162457759167938591822184498154756745817463917149149824534197183418762396699299526894679753659114783929715425995881479198855454618482417236555632626987959274511614832731789569838228494146216193853487631988751585155774411918271893192525292881268689569349743684813669685132759236221733487663394764461894588974114483842491154233235321646648494385479892858973238978494435444761961627415526597969138167292349683679739843521888654536431179479587455178873719592627923668797428981629236292197412244553736224466563864363731444453677764752397271868645469775368811533581415776138757818356179561276194544865634428661321786749735295674952323117972539961193977853617431241893767993365588396657645646613749559417336299743623398115689946496931346713178913714747173157949876713685725582736777488676115383817793132559426998214621945376265492843118785179152749588868217959912388621363741155828398628915967783134916994329932978441476574941776569187574837929299781679149915811727278459767312616948317153658792873719976981341325545526139617769837184178567741174854318615578375418264428484276513612273865858666972475947378859715862284988532313823556524664993678471879899588416864949861984889187859262128486726166276113569791627489392618475781845637985615229944413459591945313248567523654193268461561614224499271993657311627737249827824619793117931578594431685117755878316781469916526978471921631814232525895599587669844142874536886658977637887668594679827567541756368348247168273883996684735665467992924598186645453689983475822838638896692998521751236415423819387954822951868466817391847934767749875741113241214998542569944532884447285899394294747445176754894968535368324486776118967778127936932526246369774242247465516313316341111378967639698413428759123455879413957119777563974714632821296117884557714277173427469287752468563579833153564942958315894763392682117479256394724976381339949755788762478462987644245736589675357814855222489995859898347919941634836768197435793886287885917684283714137497943882731533839466385111867779559358981687321998486757365134294411755989317445666638631967354179872247767995565368121922512547923913757271283649982419865594885939582327573659496778254985996682815495189347645195722628581715153989846951772449183358457566757388487457359189873668173117243889111163958566569647738826479614459496468579177921583348288153513647221184388382268217459976967461611899266614288621816199881156179644762775286585579166919657247252779245746971939827172779655424245897996241458794966227241655432663235685796858469266589919227566863579136466998979451639468959249431772394469114829351664995973874281482355655361477521325868165835275347461972434495571164668186927217857881966997367621561254479546871287589726616386278525987875649172332795364796688567247877375818981519813444894687593946787838383697479519695824959198731561699689523375169832296981654328254373565181477285244432634731365739544145621676659635696186765217577229583177241856123886464188988955345758439925783957657419312718575963715455553589799573524357461395975732449431494338856282816278969528277675925236934527993637439275688938593411788984422373114679929889361989692987712748124656563156482466617662464379387957515547758944774918298461591979633651935596958828936667219792823256621934714742595263996942826494555437728573698646235157628771828222658586297969758778491562689258629979858786534497448455938736388239842992879629188112888376133455555437677897987621611555458238889521269763256556891241752893362757431559151492358319442917693772665621684154795473135563787576773887131427341591387268876493922258827761697154536789494555822571311225196458732324371152157957324475683185335812355784899844266568356795848958793531124949769525562581888288332952627337491372933554775196723646163942618948526212128217929811737616877269152733744759336375929762227564524551872117764232843777334993661886544467866211449255845298276873573551154985466248284661391677718842696685954894672715817795165133246277854574812456664424655684511251836282588352689381583799778156822934486411421276911257673892788676268754861597359198457892651275512931579222965366731395418117612686989768868475236383365739142558592634414873912937667717513265568847855798736245111518592241632229661365986386632362123269343864113986184662774989747677634692286213288417784844837532839453532848988227634637695419963852212951453264668363457164618617184833867573589349692997395566218957794665831691742221819917166518797167223643334389594216529384385776463734812392591249695562157378343315393271246913832317738836292587537893542272361696585163631875628281842666794554797738866285229512462477833918366871496773196619498651457714739628145282396821988551678118171832572224432841322882699729768746817841819156666952569662461525795698163751319123683814261732451532547145589438679758423847382874845317257383464817959158695382659424897571548128963847116594735452694118918641821621148337285488334362484756856656967622671196782411989518748656782976552555898685688919752154389882116815369187198856441642815717757854195611614319173376551937597915526638248358754992339685187984775177197763817715531745658759197411562188593929255248983624912411955549245789193964727959661945549167787993699859213985269948241942438911476532931517234254958374948439542685119648472512292143499624747243548875799291614456813967766761763288929263478423782364891469357826367471958919768676937174455424388268419572865567525116173783998331947845765583496657775436269371252671872563669212716792512675677128397819217811978165769247255628877353812272489832662211513162435641536721155587666159418543688743494874437962381265222429746836269999721117517511173729843898888445633276529842911592745939475118774589197342747698616969177337181426197382967544571827871198364697356162677786139137797791435782196111965925817654993272698984475893286979933654442167148458796183347157599442656452187759892757597673848632834759134281524666426931428761687973983358443845316693762659298125186558555799524374764188577379755687477796788181826194291541994862554977669913585312674391188785751488528621912914984696666158836393393654932999843572133984614118528692318772123629186858562994495364266733162784293256628128891552868223996929597945926249388762958589771972587761178191681777143687912858531189694381181345679543467737729732374449657934241616324411168127336252288361313157611449971743369167956659194644389693873182169922811951697461619827995939672236272729567936653465722833446247499346757287978534762625711362446144295661477293282195499639252492795732473236163457356424815927985453731496236751782423281437968476159671932554397889897499232978484263964556384936562287874362797233422832367384655739328766453717241386311899472781828445747737975126968274288654583997587364363225792174989498513198686996357389539897875834619366576813973932691662995269721656348526124318793322799213641923681694732998246394245166984747796975535635227932744186435247677981435949381656189627416382251551755923261218487742486174964661373621392619126845317222529859426867628689329637644629698692676762968269797398346789756822717667696811133158327814782965899812357167291964756411386129891943999366825242484336755875935938772888122423932381548335456562372876984983785827476916951933763245429212674414765914815263758142877332214291112685994991529534172795569443212962726288615388781412181852581863566552422276273236775992672597783868923837568184212331861887264922266186978195554289869825755591246832884194338929161853975411359457236198599896515845186277862983895126245498851729715831138738122122511894284815418128138958855976882552961118859859235938747891791877448189143554449516849953893121732838482613575825441258769781186713765415848547414549389765131475984727777644376653417217988226292945882188333661779261939327822416893398979561427976429729458225519831925596593663364323988153528431814845971811727967632266685846575932164376596674961419151489688278167373941873176627641242185153687774615819889417424664998821984695745929378241352151496787132746726485536784195718957536555857283225643357565367215187471185298861184954622638122698787139382792967721981571386792492821427386561161642684365786499174624557549827971324991741676169825835742911716551599741935918529376887647969891351982515524891115843629879467941262828423246896275591168557625679752552644695752795123418633695277899156954779771376792961923376891327958655534794234988791765777173581728395387659268196469283911735937994963476868929773194272445521986916448717179371976753947532635825979898861355222585774435489137322277625267472974224631675447966335818219732614383626895179674845736167732982671967369616849341298826792756188638116966328537527246396635545593548653944146571171389336561426193982554543881644723764131115476184595966479951169216123951975687112398156141334394487682856937384184488979238833224486831563836589658385263547544671271446466268867821175453669968788492776622636111166347789964781645729795539348874527489813659875699288277466191576289325515452643862875586586456214455738987643917599327761917786526991675235531147795317627914587768988423949756562814179687469133657493314966321586642413551988367841317576562663334926961557587448779231426984666395156336525279392435159985997473387765562944255465878444163139166485185254342589261745148796764826884644287688351765883446151926168141884835959643168688181867273739871376169329868526773651813991439698221915756686682593899666567862266627141414634136538727328823614585146727544356754364455881982125155114161956555793351127887297778325336614885694913651837256961373914753998325265389345757887895839473541115319567989886882644467962529469159166273113879791677694468549982122511367987366384966683666158865488773291851848581951483957946115875671116618847828911511872481548119381726285194826591623912796351728315229152781696617787983984315528993983123141383924612493793116951952455814556689974522812684494537911368486814365229164873593132519934833976518452649887319584465777289421856372323862936715464693833517672442346383612543382628788226751482811573451614466344748633514138342122721977466185299478685992858769185195978948144167286484792993511597733869498878973563355277783913788937898914933534986418948738393743121273468896875694343194797475567934156423456587794688258287169481595388188788381975343361673753955826497981836419965246887622722141746255525158897277794522289515871956956488665818434659761122562347181451334845893758552378966717166998667255551368942457136694869349422461955318364959667626473218187993872235396913558529849681476734535195722155742456936176682689196765569181198858939885591522512586449474184632712431154978789467517137212189497823493198783489315216449759479918979794283359486429692877967479416685997653924882436766535493763368229652665481814496213791645428717238587487897213488346651691176229216853758144268652963857786933335422432469825157451624312871985656753272794456183513625729584491912299174578685191664852947638675488944295334437535547495324735943187276213763453156713889816225764291484222186179671832777387353788768847681598362323687175278489176677895777934378273242315699211667927354926738929911774551114829649943585717166898244346934414555191743846355837963839991341718697758192417996927979953357122527773624612848827999735775627419787531786812659843387888297471196869386215566696525682288853915294222518488415997799172765715499715644112456592936647112278895778578331196294471756174136676839182954866598149155596778418624298175182244471964919983758618138732794431767874773559734971727198519774634347233974696492816595125722788936184125277293234415279761434882979886976119526115557732726712919653434344158978712787337549634872952953887781128249374972627197177566923711242774329991541782681731769732526363472754433223594327524719766779456528172744866615599945911816591679853723239224822454829857779487831678332152463189763869623861167529227331556786162922499593273574942978488491295794168746845626993853598873397488522787475912316297511344177267993394976796969828976193623498424933561466569568596939662171527997517497791768532721938544536644167695491416517114332721763274541697423928722885831392595738483159275196286789152953715819448149781725688984789835628536343764668267762535111388699838527989693949472367331847767985734289757847779717172359358728193142474739617761777392881995785391589982863251891799988972142565646443954889411449494658817763494963991741311145791787327752558797988273161363715635836613678157588786891325948849186685355875832154612119678175294398527747741393886935167959669246123738171958656392655545349439637897549855133446381176484636861335847415174926145724223867665166611676399489492554321454559517756743853783216796521246326387765665289936436477924695515746287434447878948329111429361873168643571829245639912143559348683184352656472591685228286198636949358382884867369615576182422182578885466831834347934421414267362231975254696796768736583585281662719777928933721841186695681446476465299322637217659449781913683979129417877478919643323967252945797364861792266991179639977584891873958422817785238742131391999736875752313747393736118212962998785816758879615134162288282134486546297684499376641692638726527241674763953922974197652622754266473697566867297668149431146783211551993914918529274477422662579421627867991985416875726867498533212433313212295612278182112842347812771135491759416444468679297686661124765536282681912436431272249687665898484377785988197463588267265444263443911319854745567698923955486563914266469466132299496115681942541635741869592762977495197264346528365584579286799143437746633918389167536716692161358538838286938976821419712196419477515883834742741265716643321281949518732619413153878887862513191486476437649929782575834289425719135637845571582828153396218281446449862337177216567741872334959419939196179479265291835411846767167182325755432548293845123148774764579683571995145717418848952785651467582567465729812559959637695198421432976373688934795826952884948642596129166525359929415652987464122375748897612162862256153636958484851972858329196965291252994992341446436335676829169987735194661587935591652982249156758159991255396219447822326615972911146821975367437535247643783379916519152899846512158961945891841659212543787652934753567553679669211162294727268593773767844137915196663779479387592855812646493674223699226488777697943144485196623723978311139411186539393859796329365981562298512233976373684654899584865918293989968273967676862638781384171225974382193859997761393716675218435358514918945976878248867571587937527416727356672391433697533284938977129346132458631768175937265817381765693582156699386869314596886645315861281166957768465488545814344798631828477559684453164552169259178328861677628232611928478753418492972341114192338948258692727849891252977337538562448456299344918333369928635236347361878345572771138484942858371279321242689114244714949727135695468825415474541544468289126981353536719729569441761896261916987236282826584885676775415145961855356895445888599318793458932571533346637429218518782992787528689728894538426884998733945776887297156598954961853421241585717641382686299745621627541298531772275973658682781159224818677275589477152895867999193198475636213682395265882618598295288967691552122447674795945422473848494345879164332549429286587187747698874835241531914488758973554657465525979853927374446565357815718343777562973774924882832327257516295117969793984687827918781367769938686593574432725268275959628721462134854389963889886167276426762484561771151849518929549928448593397787451191967617938513941123277413394835274868735671617753225881168581249874955986363338981324739768588236594819128379489879257254461449448678336475397556152114322819574656438838668496443866154152988559221765967652541446834163734618252587159686577457198353117712527639993315878279997945965133132951516513395728854226547535684282138792672748256797419655589435327351226636698296427545538489698711185686765414598335291698891718131181964317967697341562486747899236814372362666991741913676666925256489937349498477977434321585387287861322742969684528774194729796123846582976549661711226235348551176228363799182777367399189791941667582789196591723899113981194189541965494173898985978811835166351615424411569819425383938646365247776559363995917346981926526831933469448228421885729436781915642886846258599974672347972488955255998869773853541344374692359738885786984692965727736947472798266872977228313431353866756233745229523927242616149124171917987927718456198418457556887291496139649765754342839187828782953921623865422462399278666439931356445524673576385151555194877978429894212353789394647583354939944367226927395712818586847732992242187991629474748817956897992883517343183155979461751689734667711578541197142448838581845526718123687731259587372872942885413439575632229789861541967936937867856717739134653228926616271821392191874868478167646982952119284398147689833229451148142729957863156388978487222684443124783645922144934238594625365166461953655458956641378563731447389675584687668569255389948724173822341978493191427761965172765351965435289917427718185428737284576919488343899245814383396176599889786843249958488255915133126543231784587388548732542711626741833587734868859422449279516496943285349746123986963691572619315118386363623491397172459125182897574275499161324176484318523155554739312783162942245768579898525393287683963495999743244595151578996424947547874461873471935363537691511163825333481547497625116817321381564416843896563572964836626938799957247191214935522119436427111671563285979811459192652957211192398421848928657948743178218816571914384692739549167361516356184135663332166953134493984457777325581548557952994957254983387245378872768878372538831696852394374821854387283627673486594669277278734672173557881953667227974331122689357347595972619772414315894712883388292147591839658891262594213829148382421144353619679118857818965116743711271985331731687469471515378486775839572439665117822535617597897324115159214257212513186312398432145411459786795777872249982165719674676994855389628888377179348197361217666349641387455328735843475927986637331591625453263752598759836171786355675824581529796949852235619225976378718759829316421363352922666377677775648736929219453528988546298169999324732699979654319293694833729743293854712284927688266216513919856113758534152784982696781376673948437845562481443659227318193971876643742576316449966148914551767794497994428782581898952692458924435546912765647699498949217339951578177553742626625629859541341429674886637144937857994576333281896511892661441317555479852855585547846231162799287278548349884527629886625541369996936591944358449819553574683979963178874815127219465143144559735289926182373272959564656848823346355954188965361574798773881514582636984966967612828454699994932521378592892611642675943335339368743663727221784977396888526567887894135174539457263742536383985793955899643829149465735557248491712271221481239931575475314569311754293662939832156249638951361747372837656715123748372799625822385244566992559695495158377681335849419328611963994229384698477738858269142165998567136965399688752971515749688219661256751454827378337784347247942542669614956982873146454753849581222773298129869587446697915358554158187896518977472916823554547722988127797443186212288771691855752622248754392461118697152524753894333257922787932765869893853191937114434485934459474851951766228257914178557875477634223663419886499924321488199571619362626819994938957282327443387176611982153376929779634388773997415589688459587861265693389813913538734436673136525856968758618965667989297575197318494144383459167155126385159967427689157623775392121895248831663818317288515269666127967879699858386726378955877187899149159168288858671662971295757361832997982981522165135759892511911818844469598729655699977716825972868197861324336677981357964558597579528365579995594277755987854668276916892325115535787635474736665753688176565867717681363359892536165842283859153791188573651386985892741966198694622464965764148723175464933818943766837496714696758129426248811275234325994916549676522834174633355117684652544634332775962826753453459298115242343221874653932192288985614991423921367197544657685421354192448751338949954264652777439695254815245548766981618757949156299974749748753982418794291823523659643538696873772944346886716755681952158361225258238126986464373393359726696891168736424724979267998458162338468623137281842662826431913779731917897193783635937717766713959212935475883398161732995839275578911629876853253965571855436583924222248955931421894858344818395945714247994834698892718737744861714454849433247526928259161975154991859279911959129695971753775169764264372438992641254693589279882178381883394274473851889827794399131937949252127565163875557249596293924543558937449843887731184668347696793959898351448594151778239278284235265268929377991827369929988745436825869936652866148926428746685587426993272653172431148222916234435357643441733334687945547482224462471633385531579128627636127753499436855563496379542795773124236615499447584657635893635345664964665442574981985427495452327992281495887217872266919654385832846536745846331443969637899767462636663951228722418139159122681317724694789479252451189344356466332797659234518336571233839131968464322128855529983616558694518675911559517682641476965478775617779512728261934558945777426176366812946719514532799394356726421797897231682554276491673394986897378885837154799973334856615954324447465514212388719977459863415471439823875578786665389577911471318697762653862743538439955853326229677734778445445162932252386737949816885695363528422255698337435599459417631916674851382455598983222111118327887628358764216471356995279837736875145986929962562492719572565962939332167438168575396673487846429197122447118523936166453197854834137184118773325556467543455676278963829435636772495689118776168149523155113235473145619753885196917146956447533878199512615826864681625766721848195626727873717394657249415683689983397643134425642656627678378384938484944659988737967465198358738685763948816885695334866836282161629377677379581383332474222415898663739949559959789264672876141342435962598581116848517263514766864662724914451187863753475358565548612744543345267724732977939142246322128719617938993263477275826474672788746198348852241137671964178395233714165476726956983171477241838286778816496771282513114478243887516355764239119592755727171831879979271694596533839792922591455326622446322642775852899388961824918687436385746371311954365248851877776622438877282979378925851374346946512925115676597747937716347788496529588859961744131697898697796141134647983134117145298354947448419294596396446625666362596897537157935254419896243127884261328733166821895724724679741386739628698965687576165455862912443449191188328211746875527491473567649626453953897538746991566835578586645423396173741826873477914885713299798641179494456676164397276885616372949378757279318942838785826685155858193348234372988262496926629316581637241779539616636941577688386134168715766172339348416352382993498539615236761217788755277317721458343272191145923614242687139658255221867444344873377526576897846348626459664851747712341958796198329472343559484827721714892243466331233699142957185267538336311823913796463681676328844181873651736514537318138442811179648489659778187865155292778192893765597877677276378916126139769969535855537263386694246496911465196628589699336518466575784592886228459937585469396776551274598837657316959955812421983987726762832399965599999522233485444492934473937869315381573196376792541966794133266226522387719983758281646175638896327413236785229131637411135266112548538436173659776922278122999564839944758439394567319244952869531983694397739664661492498628272154659826938542186299657651973988297349167793781921785748294894493881918665619554376216469673111748772728176473821374213255294649323714175254238263443337461487894469928695844446149391935713595427561236198781447687312923468727716218654848961328992256465197448374417183948417171687579873188992769784739542478275135528722555418996962393428776423713154651515257145753727591517796286173214663678759913933575637838833176485244154346541451383432388913416481624884465147682527476937239467785223597164347927693273846757376323244727592242328286217111943626878347375559922421895276677285595195337538683424413226973586424155356654396331686432477521287815931453492675146798519563749247184349431858915579395731955218557457429461828385517984136645324453163317158647594619465612753546221843453291373442959556336591825393435731648648145351249387556175454584881989485925781676626914714591948671183664476266953786591529588656195311435888757748181949131284961999592281333724617196197177798633887226875181897153374172489786615582359618329942376854523815775674991829385821819642251363673167528688966894356871889834498768171257783942866695757718397759744311989695931787178262938668916186322884417854741366641989932751381148761769827858748174373958869268718353748217847894885311592933269128243458762696252246856172776472419579798817565892938416363378962465674787951391954634424153724919525514417546872695536537744854664616762979741856476424698451629941636465158541264468198596869773916767837885186624286718587942967599592399429397156969597613795846241268414442564949117643823591386278156159612496698385467615582766961618534345162712828377434972861511575641554442564788487235681491945297459691987825825414417667815965765519498556717735715669973625363355953767889183278514698831275399465283514326169158733651523213481931938218875138517846356543535186635224357757946571882883484495914342681465942697623628178492547535965678261523865751517888947328182981895729675539671514761174979591247131426969179616429524682611274974686133843461544823851185486834823234922752826787483755664762936317817224561768817974892782787889168689981231331668485964496723676335695139776898776867814222968135832547976313877296968971963153693285255119691618991445251896872589799783794499139863945456878276545887965795922956716513363586986194861236881744838619952417799516586937666136331942296369128338741497673227519536853686245968259419854828519896313828449619462713749961138749455129156676943768968417632283959523441861535726749957256245729333935626951122652755623284371858322873296122328119932544136913636953755738127838954613287256197626256864552984555311169883853496896484996512471283583377147579726636856758141352277769679113747441668798551828556694916116563344624433424436744135153627968755421482249423473869932648387494889787667584394719735811579364464596153183295932685861627589729457993225965171454191322437154947687438733774765244558491579324223417314992425767258724766875567652667361746983388221737329319795548761383959312841352182213891917298827185338536718751699475152254719635135791923255975751967661885876368289792854556896875296358926721285598416989666627657311644623733121146537581181761485723897684792991115974725176833356341858558823289428397674695549337612112259827677387818789516424749246885112681594247789369387133853469367619697165159793326339621856934182212864765644897349678723425597657161737565737936973642525129182984812364774378821985428894473299985962575113659231868687387149276173122265773944182629431288785427184664296677886233438448514758531237639634952881681726151524484946279481113182277866377766419835716848787897951588777321391626638961565769828825377686725365463498844348991669596975378272234143127759568134126377139989959725288432179763825671874949339435852338924873581779534744537815667698181892391878222162578295132654757383257872679649785259592875836218691281594466853161672469537537669997112726596898351215449546348748614855615552588173491948347524834587166876877976298998977774956877976781581523128976837989877879627829436171993147575752235682241463267629317139272262447479336291324167116257363359158895956585646576471913295348598977393234155799752998891827876593518159285811759599865239977977826777183393618967156529838824386375243643478938398716842221197727293779522314966543142989677463434699694753549439925677165919938935366584182151632675643342311242842649747687869164567937552918319726847439499827634836772414858135241543347699235892943561358322211982385845188883527956373455133497297957156526498212783827982815384397487234129765239924568961764928487994681786774699565284496542475568883619824562566891886738747883381643984912435444538941936344578198219219329622419116685345213436255467924579471474668691489913916249373268359834149948273916931762836426643431611839889789872266924389866976331741947413683516358677147788853568242546714878998189698478986742788225772623597468964253474636392625388153594132213588559337398456712523418569824911669846427816417483588872286146626484424548942978556823383444644297518759951922873574693627357857624327135584599769969474847292349368526894322517995613248176998548932428272323276883495679864913521766987594279983577218377537896819621481924942256188357597987357546973537771947756485992753896933826879177851158193316691327932648115172739121977158395183789937971178876926149861199776754798514983794929723718435836229157222532371614114816993549747299142788917795782222975598684621875976575474297445469542426434545413216247418353867415669224969413527279123328419879374764957138538972793211975964862413929583744385185923686444229752959928542829338446922345674698968555776555827477936599714548999392555879439483329426551155455295713411335644868397783844776514762547876819888687344571575297869827559138119695828278458634994651843561791769428487853613467728112497781215384616667148733523963122472931995429974467783614796414715817125677116417521232282218198843475255987817275567973479629411341522561433385212659557749519565643531666571996553242548656827473335456343933648924177424744784137387548371447941998847665216789639474686761195325225348269893819987296617579292795876611515595158799141645626969961468388778958972723365749895877551771768539258994297535389355388377735533386397517437459522581517112364674135934821496476774259661951298222472882652536626517144447115742511821714772361915626159598883841673513753999717937556547448292429694581263196591197714678667629886479376153597356523944263198179483446916388196484814117449731749197515849451537486341551853823441786825746616966243698465999712862612767174323992756356958968147863776838285742737865141564681266675961598177199447335564779778871786329546728894434694477461221589634714816568913525527693284334889735231662538576538199888531152981434784682627171979373836495143173956729574627768589729898685713939985142414634567149772149183287266984814257556871323736633288963426837646443116587153463573845923436663279927216766667468557537625915498432482271269865751213245934925762269854244934525367484889171846512476443155941254438167617842699275373537571889827112881337532976716762392236636997887984966288236887886625948228619385957239916276982491538997184837917183445974847123948135586176971959574548284989329568935328628635191449944283526329338571658863884468252558828434523664556868827118127427721987554162966781528371778889364455225835542147922895489642777473526619523728914245299588415551689155262918852646986677789846461244237238299787519439619621623845964679761666893697772198687624427335313745623887483761253563495411732563472375932691175959579468455634498495666365345333527157481871185452144369392928838361184929626579261891125938989941154152212977745799343286746789949219169548695948792526638589972611391187584382129937563255894537497659979896658825259938691644761888898938383935961884132898851195681951655939957571661383517745286895936452154274951855952431447733698737748382364585662427839973335189976851776893894492485975147749795458453598373912871751238469796393328694459783736912689486371311254311828895646942977464728195697215597352341576575941731779953416199868726527521927144914144628947895278652464699294771799624394823988998462153387497259583952648672191339868658596312454417135533815562397438557553231718256275338151798166598142755311228192987975651718219589618737212837441298596991577383844857913461745826834545435312488796495889836383197297613377142499598994358321367776533381359753184181579591332828758855849574828599328178882975877623633746333967129279744222729686571377769926474952547365388992554373579729357883584485885558431814937596793474785213298779593352846555881231729799186545821339669652872183415343369176451421481377661775358766919924711616128648687559319196876165738576258656476473812337335186142989155127235487561596159941677783254281955648859447218781543683225367328218661763652983918165512579315733353998838832946343823588127672339957946586988163597791965764152758697917821512135363487269368638469113915897599872265835636861299449362278954177889295578172557465457173511737871785174327438962772783757367575148617517772427127337746464918551695945517591967184331753828157383374787284261391111769961264996993833649348998949616715574377319365411484772675368838395816256464386254649562857245318549869372797585291288146763546961131723557285158177321412866892477942137629653337234581474979463437863518586338653517668688879746866914337388284559882421428367991856414283797632665259587437725656132764794464384847831599272446986178935134383958658961896226247241472248516923175877476467349188295178175299194135346837785479918811798483196745743423597913835294258688491864122264827293194687365652671145984432559169781219772684489689418658926543368939394167884681825885291961757929817782797436597287499768479613546799673339755838927589665156546227374442835629571345582852221749158759898549653361716676315591342827115773215938955912118777567223473596822943554452466293773719897345558798317492447441754391642661472958344871936294915648769196363656457981719546817461347721375183932877767982658366438628763278534947716789617489483571614839612548331555736585324356668119897598964195761917821826219737986757885825651111521318795233954868236638817656184537944346567699913378684556564486743493676691285314782684979775543825649929478748292968689459958979748487622983233466527119775767538316277689694412881188297835994289498817183413346324698761322388772773449416681415164919936481659533428592883264913272885659233915165448559117453734515947695119117259217891383562671865296778388759598813847537622887774877299399989895683838871712313134935833352729829497613633782879543514356827547167374268663465328823575891711178812651266458291245564867343758619288473115375837368949995339435919115436466988361485941639588556215899391294956897537376788988947564527569828532428451287438392563881445129814236851976751252227434897332942893147271987963583718618423975851271312872881877276568966338998586835324515388912221927268534149116126557953194644959677491918697217913538816623276888759829877225968364215917198146712994447398337771922341489366411554781598885527779489286153478653926891455811864682777292295664467245864115681832543791764448666438782987714598516887823832737488768716885138846128769126797759419856997982525386979548886579416174776978957762456949775188817667353169995763671522475523435553783264645138767119629863814757131572138224854979988962149814473818447786671719712991736819481168587585951788747563398982739175413894932517365523796175727938727424971541318981548214214895327685147491969684998154722435676853434181123235996625358485263691538912935248423213934136238231986653578875617682797296535137119164256124698984122748824933112628962983596732932716628684568938459397829481274274568789186179574246793717294415654389638797188866973565947388565983231281821948412582616934821534988399885237374269613719348331287446639415157452936454499428897448165738437138665661475352194413553769492515765152135892547129375469372423846514166763754991415949873499762772873368372188486125941767312838964335588611444574164983656739656211141154227544552353471974598812193599165787269477924782574316184264741911324159113356596793589863424211661794628711786889242456795849464594357142573557719612479247124118378486529468861995123546163166483781583478337877937471737773744544274947248114688758148185722225326267867254218184194477422781598957382292936365325519248317897561895597991288439891672925274434549989413491993241582537974949522848652666381319139672791627647718388483247343923867993248669855189596525547736166494474469784526484122141757595575814662519713974475126133597969174998395169498157764929286891961916926121142591449616143478815713228212888734187796451842164379874791554773522482396948389732981775182436492133539952943828399259546793131785326584765265512284192875749819827231791313619544178963924149622317549942939825415924523173528444985773196569728385951324796589862339882586644739432277784479616225969338823869695152887348117577177113487656974785657521561617424845276994486539118563659318387898225237423633332326472592573759869881979129727292824999418725464892614862689397758146942559579388718927363398734347945596957875548811236416987329762336291221123643472878199645819763829969945236567212257693669986885186954599278984991676142754286616152115195312373585819853878859227749259935563548861463657163976974799595443317459837844546937673563143756456568271371468425366132717245799686666843364736845229318665521966865854317493588393951522223829176616278278729516323434743779651428356741421166766624295754645963752191335798484854958968679894576266853387117728375783553611691692235784875126862576979325311155161994611236418688426886315166319391372219639824137339141866679874452881499763636694511763752227391511633724458951675265728132317935679271713975135754949875666414822764984984463597591156544388977232619517383284278188728821687877794973499187662837766445431232786568882995439477855819576389688788576388332486335773932574898821984379489858688936957477873671621293912734262898216616834627693963994393822531323361717174493148727342531241683368455911511931969193281378896429676981438735473521583696163639535525724263432634457288965424267431547757385421285357778555996691248738855292528922758721817699816898448944113644337937195854754691146819589996393632239765189282657411518165766993718527638764664996424125652753347827246458637227127252284579866925927771599483854773633485519457186328954969515446614948777688646671375829431599114412882811777345347434848636642728631243721279981619912989315528338878468768187793839815567854436537893237798877788584774275315612879673233358488655185751563649572117736811994357573191918884891566688962296272114291484636867132388687576286879749868994839642715555157547416913819593354148639383677453542698864369194813157969242116893951151258466169812736972934812287771761361616818314596787591741319797789715236595484244324233721562573732475828117222251124295874981195445319819496112667223154585882596734146564853236337289262574666751168698435687166451753575843572934395554316547158896576533122778541712311131718934535394839562684991428591695938258763499576185119524723553737621425262677122558318662898184654573275727163838814727598519713254746397257891641939639552647936875151139699579871517859268793515142964627555827187697449785848898799986865666962996726879863487875744958867882166536623927489219757984777893214911172381995759671291617374262569459862769315482165372682761997382792713635458876866892165866184181519339682126376532362696537859131658537677978219243721168836928444494226441861521382599999121724875456116834969172719944248987388741652164764327783643691854672644479868618349113689514178625665797629964636135327786391818457787424743129651648119779118674941616287468223716477135919816782421188279522518446761625841958636275175667996178457932158328388195262789355454693368457186275817522641145721789681494745477135859837698265992239761958834649121997856858155938477722929675615792587964167518235881833736761654952454832294414371291849351297818999575619165318113256342969438641478519391554759494926972157179828397628863969327818618742257998478574424981994446311978872984157949961819767681454951772798291178491355483896986412629767718691614219636798989659392614976361711595198856641724849844874833758979888842837916639749262364835474613848881141338374225927958134832339267772423643885299677828868979945248462584163776746586827293434589471993669885689854269171617627569922491732395216595724437212262246916665593681646773644887752336448643627765168792842999659995488534743449998116861711553668159174665511676755279427459285672374687331876494431277682474485159482491567269811656179432265945976688867447498946772392951227422239978332989292882162153719171231491335953418463328588955372867998122434938157843271335619317738565699637127879439765958436622491657356558922975176197573922484737676611266833866655619568549547318633448358823632632334558313988253669693476813517825176274694331736119953491689759449463324486537515961456746397488646946298913943539974141281746261134998548557621566826349487699178591114856245682943191577659285172159421413659965655592387276297682565813859274622169633599196827327527164175358577433995526615965473622667869141475572914689659869946541952496274998167658441953898779132231799746645669294914732543831874236485537811832362814689164819664978277352528549845473748228728917817483541535956997599869588638125581966119646334146442756612752388788444416745577137871534825616272554986897883299971923699633964393158637965978236987923647985594613116786527774979836835161896368179897178797322235834426113913658778866874917599682441852896334656917388367988341121869488864497895463466396921987995667231899954113445654574553649985283659481973943369578731738448231575638912439859292791154861618713443551624737594968755858681788872661571664766691973685747741396113698133891415149184411538535979143875432383133915694795935385141288864926774396416298992443914467137867921429885947858744675955246812651938115697146466631989876928835776996269139158971931377576656673833156913761885184296484358168631818992815265192336824514478486781149749682128212649985888335854727686334459937631456473969324823131415879155341429927796228555294946934251669352912714846865141686496626992637246139918838847211477241597696768247984855761812689113657144356732198957653246854645142314741499178429537576421868153393812571271726646629358914917948633577737983947825323765399595648381751729895657254449448668246858376435618886295497445899686126889496314774787298283453623556351329426976915582866356992884936325569347492177634612821242489556969692526758956898163711661784298796263951885816199398135454356856988325485175939254763857329519696189791497892652845259278985384589638395829889936748615996142568572569123681568348797848436597126786685346194389599236859121614963376467489685556353972654618174497779283656658683818962757994764814299846331922489582485612478161425748459616294761136594972417155164612765377645836433571499883844798319345495474418781829683722341767656781481245566732339843529399469787486111651866225519491592266136871756859187777937157838729444699477791476686986192731692355271947234137339812386221895641892911477633887188241821891576891396965571947917283856325238346387664931983651729667194161234647666168988873228686737112537971511397124756141791289975728179843428556122837258327788388177386126962823364779815999566972169183445945274577323467529627843585477665443337429796676628427126679261142751696761739344817973767648312652925597665499744273722622397729275512689626551386432381566833115654686194766439746724145659848841976924386294837167735773157387279741181628332529597657856537579983592845752894119373681999934814761389149752481412489723668927556449316563914711413248657641253833965113788415367657976731749769512697668652364599977353353367128781168975499877692661139451461631386984479527596384417929523645499697332449323231634773798689166264695999161894649622929965222288416142269939338247252897413549748696334926936772687461761548987629538886669637579179416513826866288419285714391117554736685346517983952548874466643417582897172195136775466936466444563757825122149519823741546145697183642475188936687337859255479366766336551327178341965799838724485371593357967768868129611742674998315152731174559897568812163839457937473677414985296114535635489625861425152595244398931873226898979576793431866342538655772251877757634815248219929539326873176478348869572799731637629889179431396517968249435377653681663147985559349727726785433672858998267922645555323119525366347861617359839746515165571418481267172367635413224627896556824453268426115776581881286616594912676189461397333593862486422412893624256928254976449741531464181416312929694619624651577375411929382164666826237337436535565727636913341917941182711696864967449616584119268464452888582754936795285268574453972469928996929282173718754955361352392763795142229341574218174954748193554659346628246984747514138984617691725245988188226911677766539435254436269714433191995168926967171959284169626116446887326788961285988812449819422681647381631785618571496473434943257659615191872899811261638174488519973816159251193869328192773973433477984728329737366749754925658668829795461583985775246898323238184624853687949948986657975961564514358617867621645515765392724491165639747198343594773916255925649138298443492641761488212261757614358738691459622518587289661382728128853858778899612966149898238363424811976448883298451757417224291924379397872256812633657623152449898542243742886412789653194566992477754899468513614817617597756714527974179532215386977554633468972137333722864934381496256426822792833874772869857233832979858655163665435459478321593769682445429411235255887899913879814726418953731222995473144677425616347277389923929232995899679828799657864223629313825759338375289652747965522146847684176552855694687854916317938762697327673866376387864842319548751391934434125862676574749745396874445348736588534153317628917627543951871537578693946543555662647422736929776328966824436898356728255194769581498878282178694813777319431952935639933971557279569219554439262978589744637943193772393744791753929489571381416352345293697228123233848759565426227347162561961818567629861851252484367476673255637959698854925684974151877749617899621417737412878613327314282167498269848865811299524942987645725679644394487958963379974116237225691416663223455221671898598729829636798395953261812278865266126234759912972199917395594473289166916322449731567247136719488848899653381348668829819784712879356913575381493584656348961928986513244712818142226159391637435312855597285689499996673187577799976658944536678876596811776547678666579648391874542223426941394895554447649751999661183948557628649337651457472822134961217674446368156562983973171988138697923344862481153353649143272689943663833648132184595846718359548721511995887447446114372992859627367994684885164828375897383696792726716523924542352469835428714334686791442957585512576652144693355431944881896969358756231558541323887463532771792548257677912136749485726739499255935451488531172193634955949949255365625238393947714752124863792199455798945663839675614616887386445838697712466639129178993447965189858172177964484989699587338568963185844266515399347935763554995731321551731715119279535529715877484827665256285835988854619675267799578391753612332995165864537184963587431375765515229759258227858976374143413834711842339659867678469769346878486258724324678472687175157576319936546975622251385735687257551682516223443329998971884913397846827771866842812251156994339154779623134254762847112482336885955993124342619626956258254853766129525637111719939962434332538636389496988823143497443778964216766738182886486299399262625785425331282995639941674875162686638998934988188169255615327179652766946134888162356829286452457818428378954185584191387365693436756158685532554849181659237996149118985278519755581869885747842648711497438318816938125296644815462146591799898884853124967295788819649881495574744919586773356221145418955488414188842192116378912431734826296232121911173526175414155875882622854767559698253213886144518234279516578791422338455418988255965199873446238362887888462624197293983416877498317312227668185642447157657917591534787756652667749656685721869346229576178385945827295991199799322611589138994772942151398269817654399348136795725588116271441675119922727624363123358195767314215996265454718741469531963124716523521765115928589928135718754276232599237577287364465317558137458535963865373436285415944922761799652719519987228155887799768159549281732741222927986798642374962439464619156932365877211988222641793917331213536119479657648869716731463617549586275385526231982963615799743126719423176163386779483182721143139383858633528298388571342479951574322641838185753532286512995816948649565163452734192667254783246988633426649565932554698218186692475432553541929355756374399887824574878488961812529726145838922638855758752344669639934684467996359986796813655474773556663731168747838989915199893873529988669117291648486655939862928528586112793856842696511561729721625262377832172625788178995314521695151386669837722435933873396212265995757766944654497632637443949482965979932347325543977773233189184775715865198647359752966141498966937287834425955111694547488329734319276337163553713766841167645651558842391478316845688746882973963617645565488511882457967588928287691332548328665944431489538349353943733457975365311899442982953738559427299438183454773992189271165556948591257166987778544554894945286691245617557553287613265124745814691215884768211493677846287389626513436473519175133773751143535565357748988683985561834841176767748488443787294811263413151971311541633714183279158638558818983843986989996122473732551674732415866858844542857753123282328867781717252251981599234178433147531768888348664218857288952911824453376311637173758549372488932639469567528465385699891713517383117227272666922632188247244691912671315957397357667991695473532942469854276661136268318681624312552626221953279919434758727442463971563646972782959251648234881819734776883543949524697932151441494315148334512653654436718792732468242115837951247581466189418538739527214332978346588524795797716639291415413289266786377912862367718293515173677234863997266374474728159451648832255496248528265567675445668878222574314794883487454856498212876925221244977567548295462871182374344639796914727475289572628114164483775917593843211846647431686714757642418993214595661877322845228657493127541659869885982986139939798973777637627258999242672812781828556732528939691598469988595188116624451775615128919285686253675564763978629828236417749956856875741596669629514831457753872248685729566513627828996248547222998462441961693769149282882522747228628969347728542144819839474816479544398781565878775846854342516799454128958473936233276185893968623544253333285156821161257431686517924923765224242645465893632613851939865999319629546417444492559567946737739821179512997521435667453175767691158874178963644762299972969225353567228484967128231313195626887154997674563386147942696913266784895267846728145989578386772627126173759695228155867119425443326542782533656213218932833628126534353641443262896218895674868277528656316687237338729133632826336913599436545478384236949212828785898441859826754551424797734422712315746964669545727963869899363579875814624965789341515453893222288811381938797483634619625214879668638522488315782925198356591858674296573828993263823962115556782686555989551876866982993945564232415535376171775719281525438464673789376122852767765892168266146636297245934434747157345281485672316952338346919685137215477242183916362623214871893194816968429962432887446881357263666415291993279328687773271517249382263481842651995726596529569878957568386528927952693728351537628198877921995997368474893324375519355882894836596596518329348574578915494732288835117675818346663237786255186957159666697878391183956165931235581912784771378675549153627967932654357963776594926912119433668921497235173334961222521826787933455651414378299652982391287778484568418323362677237816218638879911215372512467627898357479167167848784473283279784965975168669859833564647357684664663925737669631714561291891881913447669915873797442531694378511393429984564638383853583365412448271241265968894313831735211855988525713977355933146157636535455223411459127391786991685178596686887819669666594736428412964914662868174924313651942285436232274968139898845981888786252725257267173678432316296568785826785387295789765244598649447943736449226856648284266846447131339914994863345919943788328577113971544448186487457171554692436921758887688837195322953599491835659991811527775264616857625373329392979438774199197293876894487885281969959268634394811956847586729569523674716483525584693648698133958872778932363957296137827445565566649594765988989595862358383252275836989828145466132614566616615434987851216216617331389539917197653583885223753718327228599537272848645231919147982596828725364314669277868256913621724947336855648677379849929123857587631591145994346556691972144663854472125476424916382455898937873499295676562274224896186861311257773211178534357259315177141816635769258643829689821479697915794611361328691347563389687115761175851686164558132849866918563589183322288423955155612971414646469838954373736962462613966329952974766395799525163549336815293889256128233323985179859185472748422996612725716819396788232812186441344479899676658955682984733767573295687595164352766546584269897499144623955579887365454977435743114954353187797691477572193319263953251691547782122616574235495127551644399798945771842577837962754375836127579877995722818563293731622524648474541221118685281399557169787236611675666575175415189564465183596411424123978276927423128166721745255862324731553285258471198761915865999118168917156514247587519549742636681385829538768858615985586464856892427355556379466316598482852948624745237249489478649572227941982137729781934766514239429673615478467678574336713797892838545979561283248732471388619866457829696336182686577895666551827848729796896853456636492562985272967639941821249223956845184895745781255369471817547769271175132517458659338957686753646833279598345143399326846793617912938945321317446628691872442692314756863859328628767687119778922269273196497682466534796751641198552578539196935517357844594559856483471468969637154244124317197894541451577953987152515752851776967686787625291269841879452977479263538779468798253374629474876749562381339613794197913996793953532135117251865226189265319879669727416159881471917918371794166715679136215941789149589431519841881587632924643924253873467867339468932743719866115341363275986631288854727998733488386111876484672513878187271139182968274289781237594352264137876714978759727628445621629351867312549562266979485791666334565652655346895224792833374371146494546716671385381134883935612235975698611417879595885382128934424486178118963726226897466226686879279392563141212595563384679975812571851414964112238173396157699431191699268459757553143985691226731677671327983754318619779217814374476128641757884385888241269446188744627387958999413273416997865442484461771784326988774911726815686353155712968421132116798268441184373736911969474267348759831451545516838526238856853712288397599346672643954497933812637647297725967587434776118763269578435943645135574712825886677388131923968894768744494973596576639252552463779344977659859223683541197363879599687936758588298213876383151743128363437381423247857821514185611265181534868944311674136855955313857266479252535581827737684215937726193837883793327894778727619174824918893959576864172696612144746725576596477271974821748954995556422176719322679661711744293217591946283265499598883993927317598647498215641819519163273515863836259242935716933951415462362618288841752848721489942942582158621834484134365647756996882573946147312924971768281298962564637497721793984931232582969717983858763799554216616343198478287725877967326744184843729752448815874572395189717739158846327183679865662445877678942659741218476134816473552187583951649254267337627493523958569875437589357594778672864332132668368739883132749188195987689364639314724651959648433665481572494877357478933512519151755558236385735452644872253837389591891129567448929249116692829915756188136621161428746763469882668891732914269985671774398296823721925769546525596476128847139621484989935759474156934716344321689693397678357378747526622432282167531841968785918818391478815531841648165847335371886665239757913416481282126963576448591526635589941784717198851375125916555964484679291963689735732969599729231576267719476469587565272656318379487629656667388149798251856531492392145272325419673571311665448488848747657533593527736978917914785874659939316964981756683277456855489126723354945391411289517946146233869314776741743946264421887655658972196495965963551926565219883889192691777976178388936357922556325774197367352237392634995726689929346692531893423384513765223394719244345669899789142328874243673834892995975129931212531873939259434443114674296444393857744717364752565734288589818346815549587528857941942369766398155535261637398998699982646788564531497467522666682782227166867396945347441933611694417118818857968287761733234853579559468925365654866841958952673898932957587758576359741569356976758146821437983994285612199226944284981317164313415234859636933172193595293828585674678682769416126269924652178236143745754955994883258797596182986681786572945175911845352458416352356678891478321462874585321866758138458267882721865822878816357479877171798288955594119838987196976231154747352422323781269144939952551837726358683527539192583452536846294118159328964942594687143691248715697338831878622869218938161689916518384813874629837386399842367713221313587481767891473699621919863999836223368681263397893852472888858566274559914496389827879756553356176445544319271892921248347213876536519425469636217761977829395471767824884543688184934826986653752881988646655891419465795258662178323325918689679515494234421635367695317828841796159339291526898877494363856416895597859213445996446485285153123576164842866685395757154977866176749179253623112593599242255223928541918735128739848129594529771177224612742896461155318598888358567886174617383417288415226946118539582439338486199679794296534658519823197813531876225486828611773732567786524716958765231892184599843514375991732441623669997655911332735497856362429494511948572683884797358659417226387662592945483483291857313542585288998997339477146267695161454546295543535396688349513827556528989548443656751498618858722644472281598824878665781162336694478275939412924655217427247918948121491512897538319372844185535442214251929595845831426282595457196269949765998652891735989729239371593522337154226733323799237199472784597159641222447551683865884711198185938413565996519449647464582181178647721746914926487924755135892847968199969956145444918841944132945524117599131716164582147693575699932512459768995295462359738684921728493952189845679279979264665914919896979548632829277919659639875756896245482749559582879614332852365135499556745571396887366473277419131658212994624326649174864683792813568478297565326417496623786618538827382835344219211339558961114958935799881932831879433664541552481363997357989428374223669445583139293661414239867973327772864186614715128979651919811542454615137217452711494187878324789794343574527574943249631897469576577456382112672141288691616528317426651471316813562967626293657728675642388567349947277437738695863527749196159882129438636563681315238837174985645988823173949831539313153751267311426653837384815967129336395488487259689134498687418481595737768355461879363981258644952973543662877237675776627688788961414319275275886171285582951884171319415283338158755467967737264488745874458444341797542864861433224879799853539583265263657755495539676834592756847729753436668487166926475589358426924697675785983669497191578331493791938834665128445295246622736752739999164897291952798954554366669314736266647327956747513267518166525877971351561988328196534912848286365672272222755953592415986946797638861971613963288638692514279464855828653146189558142932759741984393312637991522552519725265255393497938418345952912431985249179595899178979889813384922524251672679726223584233357753662589352663526152556935371988725587434538253223976572859835915916489966712818458287249459212477452795737567783883583998746924638945796663655565611423673892564168633315291854369599145684969481763216516996951985171144572671985566867918679186327178555169183755283534271257296993969124878711897229972782589158148951722545481989213518357649959911587494966143661375184978614299629942893657617626871256593395675893534117949667633826341819439288574623385724979853551399136518464894985291285374315535667123464366525711686251581984965613624476952846984358393312615542719794982439935714737619835642248769927723219289554173239741611673592563917741799339437633399113418336369243565269816579753744487159981834547181194526787839822253671273737179733744677819867913528971353622798897672321686868298387455878212675749529916212686873482487597989319677222175729892636643246625736756189123356831118528224655161385831749669764394854895245561684126234426133454161944415279365777897968125351565773837559128596378215589778569224179327997437131871257163188371599746677131994721431697775939431899635488755886467538692962276977276852317331895824184748817111395838581195597425755359291897839769576779852597668327739397339767494725979979557158134564996266797634978868578762443434846398174854928747821921533471657439793686384233258997957328615666797175744969274878411122154247892563751482587947144961891993146386588964357871749848966161551279419665149398466979293499137669283619186697676294224799292247158954832879756212113881896613429889196266915487856751654286334761715868182767698546242654965862284748197962867485558932367249127145184568868573453669399837868494774618318247512218884619876529343999757472783331768514214787343255467186949882888877797861894156945143128223168115833394527977372782468241179779243634519815114318612673388197266228625955815867152855127589356414866817995488934869634992473174789619488497981769724362577481438699786814526539293467611637289423249766874149464992248115147487369218647964753783813576885427294577583527715679586856975369149712989952974871797361992261778158161687378565256183674412622115854868623669517965267719192246315574914616335641652411858919917192439575943287817182666465489851758244637821421376367219677483561599355224451617931729268746452557558424796849198292769627539632394597815975938325456585697574891791584572877829338656943485216275553812658123239176964663926789439915687426615668741976944614875654122959776472127789453225613858793198739883178751453255359556342641485514363813314863838574713723698281472154147339375179871465839894369416329966367392971139917166556914945628391737372987744982269791131784241718352176478979319922133993516958417854128222659642229849914228518499175417371936124115794111675135586699146836389478997146498986633249876561633441174119831816157596762892999975699945316274998389345711862135988516642538639834937686927953418253798595837279984479631795897573376876942617528783861957946698298279917837594992156968251431841147728292695795466255429872254595579777475682862567659292794742243618554957863138219662734863931267831295691484186536599449568168193818942266474457179231767966713824491349933443637789783384727273656653381755392756888721617315937115428458962358882579663552676335719586931325711834286787996672673519632237851148624847843659576647116237286998687742513184665269487885186617616366587785629398246761291354461375984156353368871971726856641568392164347975962449723197674774239963957173258845442345575335847784866474111267758558365584643428189942794186557332695476752163967128366721843412852186757966336973934524189274477559524657959588728284885293829916997987978958436261921771882945168918487198673296236419717145672584415322922217911181862968615241749758378755228821246579986335856815199686336756264645526785257197594555124456714872676134585959779112897666564182983498622975569468212267888169669786978332559822276155145139253641366247699888873577546991472882444515554937758831374741988783813412854661692978172469527789962971469916526899272248743171382348547739586592119594423943654494632663671813968864159267543214675442135231478368945393529458655787217417865257837338845557444122174697124111215832487477283756849385183597115932156979529673975985829664369772855673367691371184375567748981678181741367985884912699789243249848283119118959787527764286267683598553994862623882767526117865445641166567149186618714749375655438265791181917475698259635186766545654429564935293817534454699446992147451776931531587126166834321191577976144887225212889633833724876593775465719496683859549661998718323454664213451174755426878216385767163772192728841688117818997184846751627741949735247244449791467258334582556955716492842529772954537531573784619586718195633957622989115562423128947674994432129395998572772516557968767785841775445383399135175387531461396528467356696684646552662244941244416728795958214616695754386532677782626869393396739731256461389488153852472661891914174495531891993193555614898158931747817647887718216818676253837361947121826946791373727278285154584271177225267992347462823237396559952187712217531444582881293728171152822939213787522961691849731763322141644926822282635133564639887541468166967674646767644688658997173697573715644428114439349216897645475844414371498242759392944287726936447742988584616345339749838667726249898184688951387982988752858989546964363751665313795339511547419187836917923348338416679395722143214423178587179316312986784983437445698467978492519719864735442599612814748282965941639989149929399719891552548531165717721431349873457232916147194727977958687361929621161835368961724125195172732582196197173657513475982369225648873389815938549432852272862464397172918517872248299437729459996641452485411199225263877422698499965333981458132425532163686737113658397851592964832499396797757854128397555185293436153349244391881355816539791813828569311874923237258153331588958838536475542445969334263159993747473828572279714181579936476916336147412687694766831338617548145989698326934785395218936268443578839961755579125989825193554596585588463862143959765671581471495263577585122366489177556748543781974664947956694698116982788891258846674667628562393278752452696364114443182842433116249161959797112587283921852495639888444535327465449398358357223814152974861331191898663641719563941998544929377381674656919354516329624366696458342225587766237756151649513859185156167871583723886448837757931888885571459869519615442754816217844467282735577591278284288147551395158892913524467864399763923167726589214284542459756212798421917654656948733857233972377282869472541184431573567179116281996813977591795442244858974884285897233659711218735958697987735699983458553925195635869899897151798212884929365887671962784568585215554784461256989646546581459673941756994344572353674335973451633593469662953235878762513831184713649227552641439448383899577654385573472266177625978523957613588533993984695965764946645839782983817589977489271489792817614957418188229376148923254456329494788771388713777657829944295468361274978987388222975179468285774194857452889629691195996575897768798316859368795411677341172621469932851989844393876526267196141741979846842712356747799447169344251547661949328885477122795672983589183326198486158898677782164217597865639382134936724839116597962379842193731225333869789485818839981846552828139381214185291443541285886691417169941127184847884771549723686496266956884752934626976199156658924848356812779988978855653753778683913289848955582636786278345636487626116829114991423756448617413716573472293524635664166735991647412338612554644716425428558395558583915474917946647866541367741955873146324729959681559152361947818772789347869689626827629379389925139574629519152639165239818818233869268214557981343569383389889872443994853966493322612651871479856694434172544745561559338793644515998489666985948715791779371285123819727345568665825139829355435232773834871913972911847312133255214481459265577915821976798444843423544883911844553759794493631916628318612953493773746551641161584588933481787145188793129518993591744886786784115334636561172925773233136881676118782524737689332255881823591554717384479774821797161291757873577487894569572664645162566294869539134827923874224369481842511931367687217751284136527769237568677788735548655849479851441923183526716353131314967213158963834237182897538599993176659525932563139998481783834348224522582288719844229596668145357541628525891243482913774879221311735538369313727731664196262969951487937992796898389435444397798251514975133835823639766194966248629892579898924176396246395432219625685557977548644873324566348843466814544129318726525753531945443826557567848155459249737679439691847453563253573763667852649864662971279218417898919547317541927453853589994789259823487259368469466961486975965171241167465625757312798579118613177338266549727687594351586648519339961682819957647198548622964877755316766789638732426285835763847467594916253837936719224499588598747419953545235227956875783959262542679648762192743295675997216753896987914843666447878358431967275678129438397978145456886771916787635748883841442943183779598568269679841253326386215729658733318837843336873174968314686881154889111421341285177816716742931198361946876327878112846548998596512629838289599765342431165913927638639598595553444962666559417732945234672971299146878117979388395312963397162287494372656927562756543848686359849118324318228231124938528747288947389737797271164114753326583775692869535274928319256387849283215997167393663884527247387597388578781563886197966169469391692111562794757719295555698993292538783317424116361342578799196448198821628743345389665848883522542719964652635114498934518452334873658798849364446331165485796277814853329812995448896579267661827381513867268698889932541779855141947386894226517458698294245998993455668572172797171522487765796648878562961892685575557631822428193865965891616411473958819488179239156236868419295451978283789557313271373272142216737321631397876661879296224333148924754521536787223631685454947279826789998855226445878976411399551224664655416972847796923831511857588679438841673981479141271369588892935843987278498618198563642422492712725624938284626599197951869559988298174857643536792918614678592627971386428167953953525836678837196389385386373249118989539288243484119185436238586187836592632678863637541841788559796187557877516851492717931194536491353485427638549168285596399917936799888672413898739853835313226212679668899158957585721638466113638675547891123687147445958597646672473775965587421574635923552567469685842162398515798587237446716979166469337598475246591925287413238777992828579832544151186994457585551778127369327191193358147547288999355479788713769846179379517745476851395428653179555156892342692756477629654186829832845616448832862249629535829759781282672869969839178677142719976281387658998327196466286617686774994914461276429653187668911122765527245896792541255356373365812427661381452748826518559729967379887926195824991361779692994162923231819456756673597344613589778327971594371178447644578286186563211768345248497669767539512834538686474189821831144863826713891684866239369272435692684476597353967914145519379989647435677373195227758445556586214337957329832631351561799995662699417358372979211128747328862119937437887532976554248192459386187588726685776432429777548477167368679189549662359188833223153789516625672188859396131516727884654162847526766688597638158891437987776394448247657873857542445791178177968539413583431349379175979827942214355686727483634468422275159638888238166998967194554114648645461889341132411472732632249377267483429171657199611225491146275533835573943273246793582491786933343157731216747919667189746959248356977455549589471485447444878939546357965696786297478789846893196321784313565936223995879961912858985414447968567975184766264328838535892132789794617121433499859646434975791484249784283176846677969825441556984133539821314935197731142961343443637733665499384659966458341753623417568772329567228522684994437238611448595554112987332156214885569434278814443275526898496836676933917453994193293185959343377226848347521396391774218388818618171162435617195483733618936127634233569511323928397958632255187773446896567685655521341847766437973661891996614715499518665377621978697989575748278321377262887866152596516826658199761938712362889457579794147536233445677969465449369997957616858539382931123168759535734997157338964192858365878551173952496482981175989873873441887449866233234822317691979464323744937177759967877459869111267257144871845379879371178784794782339326613426496227736395671346289387248433373727867996166726727388212527539617382377154638858367569991321427626736376596214914514568517188349517924484659596146129147969137719269746521331931953544797337735542814313932585491717877558265164431892319222566842825515588472322946354281729566337751779523231896351818544315657694614484294711636224974386159747958638961927688943653717749561197479368729949856814994261417592538982362259654854333714919136468826648697984735253132323589454234471617666453855628432485373779685143511274735676758883855645949444913147135476195118958422242991816292166868687276851161231479719628449368953299426322746789929557824123787868138591196692669678387386981465866982281923512993681917913553536679513664474362795413682985813785287539614234939369857317633273651993915682636976986978492493148389447194757143549937946554615298387536761818259415515995631673325394934182985872534224659344242948838852996799485224342379847154646962766944664653247512329692729291397367486832988128891718336955613222482455818876283126627795953462751881468221561651581837153531599561567683359132399257488134675228553964645636985836893514751534168747579958238619611432158394863274276759977275428599982543723124899918876449546463929798151896466277596745971133757158149874439513548676185568466136133471738961475383249952153365167545974449972819693162861766895912456812868191961372778466727399744996163553797485187113369826178865866587127854481438438792241389477789668383353472272826844491299586545619342879442495599655276958489844268196183629153985288193512415154628581969211467877449688245142819336848131784825288112292489112883598687778615696755412198526728884732277732381869163969663889397989536142911263344791153247735816192614717753489577198883546169617961273563592754331141567272477966895568268926361274366482565144132896588666266317913832655851721173311566333789297218895963418869849663255899766293352434729338795247765769284376845297949119738264558678234985964797375611489655923349422851732325154445488447696592316645619551985147759213191393668487558921486724162898698368559817364539325189283561898725815468865377988262739336982128891761689742332997295756122664814138618586234699486256319239727889796496668588768835434343194385428462163212956497422326846644628571899413751855186521224798967533727365592578122463267579881921163526154998914769729581491268659683917273659639911566724499846453276684258354561154384165968955974141234166914164889254559689371988378177231799487218856681766492852182245779253512398173993568836879899168133331426841613422879149956651998733548152149526473682196464762518278448559623919389124939725227999849441172191579524899318587942879166569862375792869835894965595288552466238595533461858234846961895179799462591279876588184678848345491972944284582532427825794969413995597921362212313473781417371696291381556658242967263553738873711526953279961439596765332914775861716777458584557554212516771198918586251541662199797576625176157532661956863642729734884413959974976488395186457399859945374616744649772965197481223688718692358669926459546478615664923369873926234919185755713246326859229265927653925761249978613539937299768669871559914643661897995389766113984464134526131955511159771922786186465677167529287894998738695549866713359759377958763193981188923263968976122144886424655851515423364584726655737418944257174126252314586765319387634822394611561172571954963368458269191968878537516695749593578595991737356692721162347617766117355679866952197558271356825378952458193199747326261786159578425831269314685768576674479783384273574921699864498415773587216124274937876722513417676985995875677711717848664639186248664175133486463978419578379326396773779568129786287872725559386671299319191722583447949736751619137728213925963297685163391956749839177126758372729577531946798418594578893297946827761688259438189319934761585961361793478218948427332945182997976613526856858779789918974476129299379886875215975925845156976774857927672759879426676367139589874742517966378297272283515167194143776792244299391591292536343684784433519168421297874337475648262324865811664887423658184191989636988753777413225977837628147622212386446515859735341553438593654834835143712993375734445438941718679631517852567484177256574365445384673879175247977356436344938695356132468323126677494382827868438981965616713888951732518534141376437296934741727728756861153983644853812324739839816586768517538759339774711218724151195167779644115178858338236281562545767968568789848511992215274585715138748537162585318933479165391957946374743987317245499364787735767948791776732699416529492725452768191785676652475927269942355772611529413483718434497483647292994968245485451792694673327559898955525787652554842479792219551629673976928418367224538815637865641688682929188761932334942614135611324817328838672718254743572477373156317495781286516941673781629656289543349738478575218756975435785764174934535342526621882467896912966556412597962913557929851868424435592282712781233736675169486157877416857464357892333591951839665713574345215748413947825965485419373414613969641417498746647185976215549681848789562574286342536399883266854391259929182618961924766778972523818635811455745371556514748216933682315543791364177476864753466954372857296482431951744435422136929821727583255776698631663769565255653966531478247628722674999587371479318531132343428924974346523659219221465471475577634553757799941953883661797965681132533939862441187643649974671355764258196129276669135747644629895521975185481379948866654115335992877841687449242769946365944568336545728331916535651953488781387897854332858225992342766446785411958597636926596469312659518869458268355127275439763212899766362579885324897775789779388615863323525396829366577761827598432911812339948884715587198788517347558469328663795752264353418528669232587786314268435583363952611812765722482435546661834791123358972917674882486528393393794975383792838823289883345576473141693192735793779736186951197755459665465293159837295813898135651277399362396389919192821227443596524475877562837988983785456371827578272566135844319373818535876641358373615734867261262716546892696943354642391471139918418736468796917262293894193416472357669128432623414665565557334992533641662274522337719562896141495875319131986699245379334854648943135289673299441436692527316814413713697854979894197513734126836691399434939639944215652989495955257353573263392153156261845893495835871544413343626368624136879557853435714387614935512847994995643518363944498748457786726156164717496569785364871797191199186586355674958941588575715196459319177179656781188212615636712495668118383792952262316163573989886828143916384595836475424262384275279259668823164995223591415338265441858422357755339227873744577431462834579892462938224463371147468874128512876666447734515692537442415589649553129718131551371569741361246467351299681929219564271372759815454455933218349916734317348954875134365221774936931736523944563683626747469256559578376973599943469219287229251725976874637868917434827615591469697767599784827629382931235815462353373964749722862971711629386751436615598614275918932517339435561567276569834834322473414112874846657678418312137394848317357798742163771888521271995316726135113178741852189371857168436664786165271831459861495228329778212743928558159562833766818327485827954569999595641155942912481152859581458527234663117526551468683118971932695572493857871428679855293416345247989225782293852224571658613657148584338289846481873316299115918548295327347528769892726156345768385782863843165938998266398893353958897346116117556757896117898655313915773871695238489937861378335565125352853132638112655549537469978112459239542376978515644191556657899957128648738855985695859495389761411747971861592436837592999244162596521966843386116839924396657282477429456929235645158498898823216495529852566552765378584479879877787622515837561889723135862638663999135138258255654488848426136589941865947845274791182664958418726183657874751696231722656655735594867352228176758529617713361988584993682497682932375612948254615432942796547478351478333811286928667224174679148947941815946813247388768917653345929685734155215272668588494982935335665679312784424276166917574383395869578281889557916649838777256484935537551467735558986754796128268299258251495968843899928234683489412721483517881644332146397537641214294489423876664193885334188999413779821946247852458269886524885785244194954783824156452892965898889851577977431632596933533942771346323248924128975773929238346566357537381884464776885961465579921856144629689522123399529791457884328722344139924673481271527741178319588723557494249226459222528959853414828741967612631955927973555886135248558997473577363919741776813273616575184419964453931853422366718497348819252247974266722167994656862223732894548868879623893788658319997658335947568984191714472393894411756984919713352427937249117319816897494342665449545414763226516752926967698844841949851848964894731285335559326983135779754154856348993574818694472477681114514781786733937475698781947218788616975493567567546631755617878764377681949477281141299254653698195288395131226139845174741232659284756452152311616786936171656894665825417382416585655247887369855315533394932778826783331718751323247853812279171239482252287369174366352985235525573417323299366212313569891173661597521813575258146487891976927597687284933514473543949655291679485512382134253981356597186486532117872417431164455919512396245288428919843133637926126257722899466662394752396335879272434111878578466757841358598522821355567671842348731816888289952679784698881419291795361385883744823381336737396119271912667547976844178459185919294879882938138778853635177174952483418492276364431232311235158635237488595373548562779819997894669689233562915968396999146498366615511812831116715218714758975754264157278846987654819664859989979347973297198197549348144936637629898914951835613743996782337987276718439496437851393387751448291463761876391687335974332825825725138936954419457742866625254397372384693984816988583173511967516956163479187923628386393497968319111614786684799752783453317851875357463989338485454733119667835955336743952642546276559474474463718899165732353543746664423928143852267612824866735891668635447197971751595158423115639512849568948329844197989515821526483296415681939949787264692735632183228734954573396891438275891216578533185651598667186266328876942411713235958677598254345782747641687483383753122837419587895933248518281829691583869322586668781774852989623217461949857421274667681693388765195131629686721453934719868566161759376935873236296557126745842537436863799918974776271661616563527861667186426182946873549188929984225618567265792841216982493698698787635347446168768135429538877999998746929771461314966512778763444168267278763132632247669389449639988788736683282563175112245858459966365956999265595961693147548471554364953391714694736381873419282577634489924581977198435559286489252397898445479664165487761686516987645285343183458419813355145863322367717125646188294778763828971741554997668838459457945128728777833686949211973734938817366325346428691718437739945495242112529766352362156156286332466658554183164154364548298479596349622297677152583285167133222727265391939552615969326938713787266651865895723512382132326695269597444627546388187965365864373643264371561747128695542888443372654139248789596411648634497235843473458559372699267288689451799349226586246188369148367373299738495266127251337378452411819625583128985779359955751222748376815218236159875489744899642127338427653348553235784363191968392699954481983137636925461642357558657812618816374712999811568858493341378435474934914141864975529881252256971724368426569398467261833983618867994491577886234427453746151443642263742925772112346817111525877748496875374723743987958935955517519651222733434996522787811685511775825254438848615691625476625883741462679997762617654561455723366187779161887759378268337982349757224452164846162623123178428413639989479756396461483819353826486645393293888728751192198718836472181898938973346125318614837738779878754691259136783729323629571617559743422336711535811169877145973257811598848846942499879993344242514525974213842754727785279236921167929831724467785248598561368724945598146739798442391619539399277759799279746484318949759773847652596528843188778418967828152452217784944222339124941115515944687926881483483768129148177577181677238249531745465454316414833814861819885841338783341321839173374238392332682832537294522814597845221452854734564343389343677659158249938638673632265684272288387689832923117898189476535713377255568398715479823211769425355273873789831192473465734144944526647949847428648779382579428198982461893818867858834736918382247421913436322354626552661353939243414355496697353485558344899768881857696749158213825479792957867487858345983856526949951379779557354418579618899534287575393758512865798633877227574542371285136853377151228651745134775517848474898337934396958119773775597847528863199828615697699738587561489686897456321768173527134699892592491116223117327534483114635771825475948525736954737885488691666969644289442539197214312137425799375888861861572715512326182844876455153538749384668359172929959313953339143978139821617774692758953713614113458771689951132931131331529351967447388199248873373847827187672982286338684695655751368228259316337277363782439848582723582693387921418545298264331982148793579397826429951753566765599716921673635691476198191693944334773867548444423168795744814264847884557299598349627831375275635912993136266265538757889112447185249897396938141786433669198215323815439514194572478167147344191597823411472363686181191539863187953434151135681368415227319766515414357775896263851253676669428596146955322389336872573999866761896174941522396616273785252824282335913178597879563545856824714522653785529487998616384948718155695775869346293489367949697172767372129485566559893957931151474365239768474561261937811863981971181963816784877315396311821718173731124282828987568544697264521624683761962321477357521929716272363836284729131549136991937761579764673457128265637362571383325131945758241536875652346919747729834168593596754376261435919222611653679947345426344546217592656737235934734444111626591934516485491992332255973176229234693311367151914611962838574774548771122688751265713669983911628637887729437518257938937624832277371967484647217999288751183278238146454626739514864972754297187665371875727851437889274278229445537776876282583347687217857171266366334669517577886595399444161548561651641496164769416442998239989761687352265875388928623628584586755324137113861567184358675973695333763185418894719217526947341954298789844645277128959388546817513314479551299165446952488156943497519896854815489168561735134659962768793326426192186876118427658273499287286352888877192498215863854155545511575917737778275694413982377727682942386647315153331192869779176174388853694162145933344985234451982479519722199865676248627916983689317864621481494681855736896371241985266247823444762958227418966611751894874565415861326911175673826849957572658419165576835637761468825139271664692744916597927344282833568287562455189821232471561595748515257833518458455995886873477223712613931574433677621556958663187655155339263973239593517256253285823951946853533853972399436387872788328493853999649652926774246612632198677827957489674771887272217978991433779974755528792116165458616491918747654876924698358131226376827976635781289363881792197261482279986865669625195785699334377854455295797198728873921811629847541611655423262536992288886369411911742727696982221615185189449569654778573478469636521119472469195544239696952237775783165461386694879171176846864932447718986757747558149411442778224246174119258636461941417166751682887391777525921232352124538644626414967865235623225777893942284854758319217321638593687871227887651196774457777741655662984146465857814522932456683774113165958767449751621978133385591491927244188871728189725267879449871435595124893441611474554445295186874491872712335233987929877768445969781388834692575189755512841289421177926894148495811179166389648259939113278921154882679959776948884867973952736557669777834324684579387949742366942622337521782621244641599118266869175574654191665512521745199911463461622342668477443888436755886793436993976914394996481696539584489981449449742421287825921986967725245432487613657873175354543341334995826558592486415189249763376599468828525553263515794441228577289916253464138945659441554959567988197435584152663579897161995982645285631698192471336752768625868489549985798928237894756758819471564281652457829783217565571142688874351959778783783849718715382667671643458821984158637347276156716948221361659877589733717448893929841365142167627616929181485543859356996984784284765578537899936291546658697197679291569527538889497744959239185336987721147552624582959887246985687323424699999666769248845967552597482981834124157687913395285756965281757812282232396882296835774813644885681991596447697859315241474163846287635924748954416431552956626161179917588547598592173652477978422543987652683781536858669691963994374324588986218444588464785376852141675488486967575667632869762386733198611861737656967195669156733317219165345691983875869217247719395631679497143212771429515642583796631728885484926692844276529798782493429436339326551326967475265593372171432417889669126698137287383275974492972736819649884973519218631554195723556688194226439858349375591942332933349285267152287776735285517718733641876186862634744322874897453694911797184227893897869374844562866478529329699124847919113451591141788581296975887297496514576556276749487748584145436923691876267716917411493765347757828731251795855999714595379566949819168737483569554678122925494658858932937492689967727424875987127655958531566961564557971621585865284539371574633596491757666145579169142316849969422712872882198258549233194359282827632398138274582169245886489948317779341399725128764526755556217425942796267661364971795926834237899143943243389995328596271898889775668628925616167969543587668995544744736227167546199297917537747792799381794245894832589316178454938434553932315513672944666469948648789487399456981388941466285746663426831647336838189738627864733331252979416646446887826525764493212115898117913699687895862879966789641962189411729412569345669734322929252777866723911144792269891421567652778632991813563596754554969716937265681356919626476442516977974639152451581525966381536354728493627119483957729112664962654671729613372932166387184159121657374816487996165246353967279922724453816249595985144495555337547485417596738366433849733263611147962826647269491955654995842114851687464953966368267684521939557618938598351218584269359853231968867794327113756678718834744539877425688628164286748967857576322193564256122193988955732119785785752544817524651483387995939511338372913757771412586889997517597755714151774395243665797882212181686633528117548499247168852987569469949192851589359499361158732795281546569399338138247693557711796767677133668774461785197299187383673181977771692732695355839888554419558426915188812245698762332529796779828738771429511961281839159212912952388399137297547529954447843952247515368595837641822134515928839519791436717518861457217883141581563681658689812614426223266457465587635448464845254125625422137219685841991754833316876635159436596562513342643385877217283898549941736388312125438336319176531451628123171385387593577419733798798427128395489346771418942879768242986641918226211539734857277687979618229544667397913674512933587427273946363279795442273672969372887239397634932753456597276429621763822713151129114367245537978216516467756385332261287711981179232738763593283118978152817255439831379485822255349936168819966959662982937553634485262391176673983386866618836247491183482986799535953234343541477426414683829369928177127714921851238373714378511712773748155432135395356654366797697323974657774168599156756594225363189275621519175944789881768497998592778982497743983366416885591411957785475859137969336928558417731176582916834412922417575358532848948748788279255844154377495643589657729686865734266973368361665951117699825555612793231387622814377167498616634661619947493122981175553165978264536414889363649653528449461668989834243559537683979365934569897555157761398397713988695388834111637781975822713631425282182857282684833397574587711583258888981172814868421268842464148641721269843893385472131279779579775831341989451881348888728798183278844516835769313489324837163731827928829199833958175738116188342212199293266568267651549187993198368761245369239465988141713912529784152397836658116366178698943257575823168699477665325794544222244911178873513111687258465182818965585912211263848277185461759341512754267155954297847881575942232571463481941334144381445767462917893679489915517738639318873535964414861899975684753675668918732881136862326492515552959471272138884167769788382545962252646193166746226388564768174933886856639883935758272349933353855142955987936885695838692858564845989756668365772411741744276645335368229597144923198181497281857625447447493726459679222155124285194293772348586839717815519778915988852637552889398721347398663375865113658378849319431849993433198367163797767996959568783369638475682837591626551579294844858992846996336948795732312699758746642622422674598333178312818645877196837845864198551524114785796226784469554919739785762417878142733864592694991715165486236576831498637291689375448541483412589185724425392346999495145488479688461385393897228757992398127488119879565171328443831916454764835713676219497121847822336169923737786232193568588375431871992488859676152749458754515314492228561737643669396283917416814264725129247796777289323774791264518563398695371976837317179757752411995758186961513679563441875773515744518284114291954548547185648114535117911239831524981751116311246564223347526947292112219634618673547952287771875426989438852993313316566173876481688144625225588828774783659899331462859254766135875274777295513828213128838366515115828917629189162893825965319147784781117723573663435884991916264257135549453128924744199226892873724572292693884774331197128212879183279851668145656544587451178941415935139696688659514563519241829715248942746213778439493798225925497832361565387997772992467295736837621118256938496974429313443275775542848655514798994327987657918218787463815964668236663897237961459144823644597391193677268586465854176213727319389855485628575437549729282548766547896718977222185526791565559593797556246116817225117183331125677791463143865137837924684674488374654924163876714131276657999911355131164676848635864185747965926233711782776879455124738977495165169752149741323477453795463924985546437823279283879355267942928677699633496751151135146844363778863521697775817743628546421394957336742634164795215482335723467331744382627833854652673134448299988976656223786611665385898719852611325415611699584915836328311727668568883687649657421734384313654726837188891176152423433657593139789458976416996778985951924493338518547654938894111752842581788138868999832343119919874446724145958928736249291271999349758881948913851763882889716454563246599473424135827845326791322117767825856124722271339316647842678987246441442488423148525475917889486473455866438326127971313366322547788652473465595283967266487861996941737828928488331641685959811524374995274356138852653712164552791132773526758154965451176836459399148438176158993748485643791551715868473455552264474952783845272854777848748978641981317646616361234938718859554499255428344767686461963468349588627371978434387894353678713631792158154434364521933357362725288136513536422796448259288213722472944627875351816654384688625542859977275373199341241741717126826294162944577822453769535848841541235851187293732421198313565795754541768542927462198826916814317156777634125991185916654292827699847755637276784228699731575635855556965799866227134365386581563651454834875153389758417858151879394468677296268114459554582615678751478187856282327332917772694624459357134542361283128982599877422989489721855997927419586268159986443882113355629387618424279184339199842848489437161746722628749985979522547346342537795716848688737693212176747631773499412747947867259463758264771214538345718412181471231358348551237741241176831197556658648541938332469339774373217161635963672989769633747664683569493797892311298744218583796963125737136412444744261362878975288797868271599656597965981387822281477235946928131367353691535437811818712472263588897114761881399778438528896878245799421785341156356811224715848331472394822341447841568574375284936883772771754654339569377783539332286443834864711957794987738466977939193325674657842865791136887974237569218829415257484868199688682933632513781599642675543667924893875213568888446818848627844673969764989979889198531334194125739547784891163913754253675584452675882443424234211217815647565259918455695751526797672369158533244787393599511979665577882677153275761847363182548251559789686565287891799625748279524329624897834797456312173673363229456772522687695234388235977329428962891548174212897276891729852536437119399569512343432275295385358551978814587212411693779841548378572248886899586666361367982519959619574633495151942364387246713187139998621527721326218199967323838312889339799651132935711386537224885528737298164697978118811472446389823562446191547678445787813557522988919862383823722653412776793821748321776596971525394486783819914825792164764137524254438934918984998337887487548377886565384926316912169551328327969879598315537224271132985732875826563752761944766376762568415929552198947826328821785894429189262788564372866415644768613443269329274274938235562425199333391359359631676141837878425318328345499892538481581281626957436826331254477552741558387336665669862167392728617266198352937293643643536326669689894148519741587194547976142597528225189293714227644634283368971392698665137762612746673589199595322541726569865636479523149496462136449121299359186389811177594923873533559673747782253651524655322719575497796176945747964443849579836147261977259511927446544492111871467363771455522951646994518173869218518222998834562335391839573366334779867993669142215746621823818759556362943839896322334286518992325671966251582819798878496383238685675372884681731592459246471794716457993814215778556563254634464993918826987654182187976669755539297982673335838171735416791389889888889876516449264359114229534598553925145851454397172756848877545657995572744398938495715776763918979777237174996529576352889859961655576719661838978724943974614574559813346441153324889771124784856248781614278658536353958649813419884541549443731992898935315442997239374157917918379282975913757439499232119888893953679961188115219343677911667953141983917544423372935425165747459283433116478989126997246986967396732565627345574515949384857694372897593779912334712932414394894145841386731377885522118944896558718845852688268819113585758738588291252545584926145935966484829827776118237453868896546113369356927225619782213815219535492463828668552272428576359639364596581623251594179535479421642219268639771814188261521774164519292695174734857176939428879786951716712766599626712886372248928371722663792929175869291117949393769212558143949685674356135494668134584447789395954618717748928481958994767835621371418236487547761378813734696729316719212755387745587989348313824126477147219937184775438439735858749535621525964717512661639174893646799816452925155767433584458128399246873423122442523174369838622942236425943587854331918839919782651177789888778441253153825499757462956257992192494348872562788152694623454417631915859331786186583599167488874515769181713398434113157495794474192897482948796634714816576796275561445489997961526517417383264617549162238888881244412341385712635121715715837298962851651542679679289817324717271818464545335349524682292852935362561778434396922364511368111582445781729756945495183286259272913953837727742956652423138536137164242325595675339979218637643593719389464761137124838346993384492248132157974431458459258456633558478378593241431268455498273687594885624879786988961955792337389738135145343785825883228989266891317321455434599831576323259712866865218656197952897768877171169484737978623882531373215717327298889932791319858563933142852759861157398132296614598833999399856326755347967232346692977773884681112691876268959989327291288885547283876258538664333258513266785735892416846633146766574852367624211363362283287927963796365431758516893847787893218226565798945716779444518139738856979949953822334586624148255189689898823681329584788513561689466262488218476496358111338165683841983252786373499278457682128122159537793646686927638189937997353362666399339598952824855187993212881832514571832454633869115359965535381117232288767868543887537773447771914397813867344396818835336334117655713573772773692799927346999863633893589322855743784694877957396583888818348568187668484896976177997416475848715587949451874525934685785895714963319394236248877636819928963998618948996652144173248743962637254532728238327327139157854855983245839576871175891423812738192385879159443728583616296156861372379435579283473319767777131646429165496964778328311858694162187658141399624389794454327244793795848651988763286175979698918523183654545169117687134322949345199467445751781278614839431478975498374595865766141626686482976654354298614886416922891313454233968319644368472965461197742292319457329465894874944883971373799461837885977768892246933184792941187439838729355543884715458961832961956881889782295233171729983868146531427854833639169457914537325785674694561672418751977783526537863511334284151279887844828992483596877368349594892833264153912733778234747846893886222518967848853959733975915684896998711422132282487428746962655137653758641892777782636394976518345393638114543592172184325539971191189761459439395914823862433851192527518199863781595275844838482179724234361864691734372622322316385779563147275578119579777474536894865868838562362915298533496232546574769878357492879513861161286766789184556761559172888498371353556344899722455583281448425441741663216142922917439355644313861232732799154345411877673461764778233338885693962587535876724863943165499537645675376416983977339115866818332574868932851788695174841524468146632284739337683131577847451776221384577915587196616638556214839555223619957667768747748838693639571524693954295387969483259751684323687113828721335164618155749635796495268666159891544771146181483425891648976461479556229525984688988987496386593127649335344618233929776216222252122553764645697722291624993218519321569661219925349899181479855663569177678867552396919515459269157475278229998349928189916892764672883926117761296846492272682545266279368793115689497152143975249996474641918541519577717824997412614877547588247247815933243257745596183695585615754867129554629957626481859461681174879522343797687672829712275289592794436852239698624587513587489319136391982182439849724857165871333792856695687398466677492659621889868722319796224691714965626917445566961535425672176596113589123726618864557165319262597242756353425482983738462288767925625787785978763881498193957541587288548355385292978282148842392275544496117841456286476973948786569592596993524375453669656889656813729825432419147721755236611991286114522178964797381975877896136532669857621672688998364948546495337892769957959159481413217387446237527993413392435468883817915155495556418511945519549825716143513598367579742963841769135913874671913889294496374859196252987676184321579814455432136962836615283694439425666181217388155881773496463311759438594928873961946956671831842462284191684427363797481238889726547994947826358583971968231876812986997696939398478549366946745991558914853275887427522366627214319616177199337347645282498199178371333454194926357168122828116692425633758844421755266339371169765617268382276598443816215993429926456689678249721211741325143315238772899225314964947122816182958964899723377688679374338746551646163547152857425384644778942984573341557761486954685864732453341892922292988935858129713879579137823913759518638423275355692475547721697485674382164747251125848979985571826236784837222448147627834739622292738922674311128842679498813699375881168667179318887646213323499959353788597468818954884931437128492499271243652492227164594456843683118692242527459176338654582771619451776576859721867741896829146459816223576356994711732545388399979825298115697996392175431613299446484744576415513173285223352897885671349785478836824517323849583657637781318264552181716475777887971445696842537717661591537893528653179458961272771795275553677291615528986118239484977495933317845545869594275896513995633894942714464826177857174429347191675548642454767893158864193284413144136821752995696397489129825148119516295442934381314312982512443795735765896769796837181763736354466913435581483937842416858143847174558894153332138433566678953832466491315842592336182446157129188394494644687622757927889836359345174246258719821527657355964925823938324731599859761198167689724435144482562483587462331315959299834473543551796323588228555795867488685611244862687688321661995384344297852359943924115537337429797315594758243763165898753398362635666892215955234769182485274775957357935982118245414534365165147111149835679316288216773845772296143116573165291794716329636677224685844628767462995462327855723745931619193378532439447173828279994764752817658359864622995571437125646463221837477612415925286363673352531878479816184461368317636798466964448636617616511263119721381689955431418893492531771647134744311488394341829177888665847854131517488556514867756266142221832132772518652144898969844188899914237612223885288625381846277622953252841257365616361419773869388787685273755747353933992481524347937916269425934529681954179377197193778239176675385544553987985978911243552465255374934836948838213795192562355444653858852622814383521567766791786894727815916792177438915965461799354317536983797387353977738212573134884244728783219388351784529148322835767389296676711962935185871282237227731497692329257554639331175663233318233142729454486649724519267519919338348699859171128547175837171492578924734745255788162434674555731232151356943384892363345827194948583542182275291515658116971137639387144743562839693789937723545775626937943537774241822817537669443787926921219557286281269399967698349149942523764816136428993348645561219117634382878366958899878496559845158518619421558691691261268639799788412145451642621555269122982162838739457778896595668887916958929817556159285161659779132951492275715763789353551399354561276188159852599176281442836658298437576527367334194693319886991898414515548885753484863576766356232966843715825927497625535431776215665711368196712296683454323155146534111847258179654256517848972544149679254714676221261548333283623978795798452554652669332511112444923977176454783419618486815576451361798737687756694786355329771787872338561653887973942879449489679824378419973749358951863692735483629492171353937446362164852627561258146162343645592543518113178221687694798515443437527454991866555732828935738547397117438496564315886141963535415492114994629465348755728983562838461888922763171578187459897621452222978189645634681857697682929539315399957763724753298811828231815496728457388546826379299111278689294473761297812564524694293282667147295122633224985795969573813346366971271392849389885475127272319846184249367847898823253182273124362762895667516559363165139163319947526239927699372342552513332176785658195633617971115971788435429639698288966259984564132369885423654857329733977532325139887949811652581991571489168872194428317923393547476488698764733661271876199314721716323243836412715667963887916861723283193351717793549791381846695437214961162617471422649629899217638994459221197969897454285986358415938382567913941292897749917596317852937741599484455741273463797481476462557743175247337854552948126253621867151845329228238869435985983811547863829992172329785171936977865243112263671753726173583795352751326661375465584953258513393167418267215769929685716816559734726725518265991243213599715999142841564891211445359417896689978464977783313889236519272282764346653674275322813751378546979458987576644243744752581873336313239383695458634167434897856871653258593611188796517194634955545215997298999496252626873255711283865518976261967277925678959328316124196824727775194121221142488892427115573589543656431844269798574944737636821881172593534366413599442272812698579724285113919979485554656247668615859232166532866763489373979327126873117318281346499116733784625967545118794378912111195478678818554266971133495133129978311656154171248312539182989577297729948369876566576631587967732467642123774987867848252926466861228127438717381186523589921336985989784999451394999362218273137129847333871835578131946158836781871698484281691162148475824139213188521554925759536276989155926879739156936419645669638918216826848575718496995863773876594578769244995185382289539788613586721828156672946598629684159151299199619825732778193464475734919127116453387476472554494232296265467751895312829642981165881172511683715798424145211395419959852153534344983258882365969746683517422947351337963884143892994327576688182465447669171514791569358763469787423975865342621733924838854867554248643586542619227572819587294239363367987721123163653156728143366285872559281941996463717189331582887213679283847795953732397135581567465899795179511225133185312941148243559512616766135558316944142838528478247264698365674645565856167829118971577759471753581347698284641611799796481174122999498658947489129745638765191845649599933487376738458675727229777799437379377234956373168939581828867799787413545435916969724777951291418991341595261254832641751886616593847592931292519517273483719733268342337868682621718899386289813229779152617145747487974657898691221857655776743416269557385718793698174176672173767198496868267557147115895853941578222158779571656769199417881337186168232517192399348788453835338431131556676749785173921329695226959693618573489183937253745216449173499548139494761369917256398759949991127335879582914978835339781454978543717873775155883839427398279457228547433619439275193752954383228521549816133588535472435747989372425391426415346674648864448338752868575247215689817787542539212679459129976854562389987819364343217431375386931988881699787334259256363951185293773486911191748862213911162436786576741693697779876344655354718399138243366299943752793565347887462561988845692951728378645857842942861618936165295497997863647296366154665635617773517991431349252594918157597816764748431867351452324537679552256864469847371164159478989644514998894865337344775276526597546272821846154837788435539599494246834994238332713176286537563935514621587472872582996622846422791617836462341462879465115456878689957173574293331734723978115484429456611179698926173915816287139342744655328139878969175625563299526877991837825873914338212269875488737489795736978547836366255542628938598526317675736566684719675522754918393491997132874411362887952876699957748487188954577743738898545833839871126249439687323247651458253925132425523172176569566122491675429155742312871591852395547654325767672751426588976746736731658143971775766134982397712679263955254997826594567224371449574653369494454995511664652694127711651762576282278525355537824456953881539716324773456611633514674792259767964759499755995816719597687627396597848155793256565434537382561735429125246614281781546848789852176233967572639785674318991896463651446988886753895216127916713542649776273348153867688679863717972778877968319528546836137288266885264437361129757782699548192767866198844275922718466685829516836812188945261437176131218666424646168239229384963449239658554145876255289961523317812432649646792231946514488818572238944964346979182921298717933554499547312671839711585596545193788634118655533914677285797758688782773623378882718397823785993782369453661537179312919433428134961837855324986398887898152861856856165478739633457974245191491379873527731518756755123697363232648533322463983467829566699495667485883224963294362456957631465515174794917464186287844646853435771292764421943891924748596885458574978591595895478259753891282366728421468618917167741961677394659456289958339877619184861485293428361759949672677552933457373216934495145855148178474865613593719342514958868749735229688989183591779719653396614528944686798298722511592415628557289733816881438878971978792193614691883767498949881736489788369847493779332497366628292564167138166738446295668447193914381218351997211919793439812784784744917176599669445466814861651991154186297653374464696718961943177873839438215253576999879653536383363187738459397817156497769587773699661331854653196588781867196159121744915879171795739824974696878595414622916919445577158348112519454184118925964153532567269591348612913345685481857793942246379261787278713591488824581822174666933756566124291684598984781512436716741782649537668778883723741962597831126574122894568552116137679197596696943232992579675984913761191253932547674281452551816848542288662966369895596568679541138577431364787765656438243738257319126781315237751862163757971419546354446651733316686935463686484984779774985161778891385948267741965684976886215872925438129968721317324858169613768447578733155332944888673844999147376564549721179955236918237389173952832423752815882528619866457318123681997442528189668835537171819921456827774762686294663266582465519956819351863158531414331363772793972245155175898514481566263199868795776759947324994599725581266182684356787856586337854267539619585558354996128723321359782836998474719126477227581912851798862657131999587654127138833654232315963839462834977661387461379353313943695867248571895627984288752987461858475938239893662686526434496145411789493289556918149427221598562198678885597337774917816581694185831592968422613461322985612932869228929553843428134928594972241937557692534544776242781171215989219568729942747961919496716628699448363525955795485671193522754876651338981592878193978242932897618934515196983774857774632938325399725815828382737819751718158346966971347116291793748499132873876491952872966723111276522412268423629751134433286984858771825169566972894989835832641831772669491884251473591145361923826115454516347271999416785557733254647299172155499722746486758887713752566437666926932824727947251787453184291223963713166625146672733936293522675389158621983319986833861991127941977676193619811685298674624642131367494851399423257712735655531783898355944555895766813515342857627351876637825575216395346933294643641387211211836282714743833867975897262724196792758987743381746181548688376965617983874561536855914979917919595265729989779137528457351756378791818687597965167199322728439428619621339691686469186323871542513769862699794477354858491957156817931577849227191275279594918368766636979338978423973285121271544544337989641417564851669467935373155942923757713553483626971277189122231899897931888189425327839666149385823935845414986857989992977672722352892632541659585133556391723885421892787319983432562273819936719875724884467716145879498147824569715482584988281161743228799397396639591397718399895367957637665249884676688974867994546458154159426476982883632498932437995533989289748998485731189911356397117935964631287539376964254438191217886424831121348582771931594659787563824741561378918158363641786152137668775255585771717428876648727313293674452644433557438743723967771277994333527277728834573488459291676378165314921565262951888777935988149315354618591884867282688887292455819861367396173387813911789218162189689667975361713565421488252188472897441921567531519598492866649789645628455165884466275196699141351177692385728847692446428691265779226433464117858994413844646381849117786798752365314926927911426462633688336328297615638298559275115494627928981483487737186541398564872892267486749369369181935233292768284633768767536693851156135198372828379628556918182447949153275796774195773311755621762441159966768194213747784228976868488366735323526246969979295169298955894795625636525259688319822845864971293822914275325267533733399293856492466371426613417216428146586683582615741537765347999358824754315943984433455959857552171888678439339899437679491584139438338415458971755715547249852627987439579155393729438391265866876247736256912396676695161434913464575246782552231826517527674193962622857172237977785411488835945786393527474592965162865398439121294822139444187659893623711588948949685536828873962454329148395894963554595867578578866256276999956913738556738858863442689935826663119714725339734517727249966969943651678884356727942554866566944475851781827951922653457343531894774278846427454961919581558465537819532172672388263562828338621517984528353149131869257698819847814464587391912881889991685982638348719979815482671994483782648914647637542164767548161291784761119883557966376138437647579439554953975234228498671628637972394676637654624654867233197943133973229839566132757666115113165968935217586753952969328638422947622846465395864424737778225477819315771976932665224577834334577814776146275543352643241839687647351372929386484655952621293614394985585836296839396695187966994256941537212842845273896694799645359425977771343482121498599821461562794339394913735765244316277141542163489945794594949298338974177731269965448337459513923812351594584593156382471552998517726366571828319652336697822648373583426116782162666923486755633169669316381341936831659814795785356816859176776677791396353859411337647898531132563271513754152127247652681179296287691531689558741242531126215895596641613442191398443331964571481229586114763299898334893146283684769795874479827229799111576536359725337725892923864799872769832414556619818947113163637545849653291661937591915489869349595253333479842776941759492633399995345895629264976841263316991682999667496264478198682438345371373611869322671186425831688456836445287676977717979997312696387861788623616378857844436545434189984959896963555372921759951327468344395593417687254678216544236239877681849735271967863426345943872979625975886728664783354189786666574158488561338464871675867497397963849997631331828548831855338464597914431738848857956741983618867846299115845728555276111848687613614665871644195262691297376578884738936196189185611654199286266982927435577511161496126255446832246914656277947647481992393663668624235782978794353896754665558538736753528591172366872194718945475452494746936185979887534842154887797376527957654723572586816531939915569658859247913964747751711718764335884122737775489164425798731772118964469977379583371879534935865698669614146258856576619254617168333565893597387671175281297645546272671172839731953555648887346995892532675917677158993274278888142281614684522811228827332726881943353393429678957189946216973567778349995181244843917649862684184112225323923912384744652469298165338148583247749932762657626681748269852942562129829586298721822699922326848889419613635248889135223133768172412189955225221589191959882594895962937393366578248265215455394282426362229777729748563148225325262525434166471967539389394974198829923912535712599561748768289338953381693153669169614322753687614611915828415271791228799998877987691669967719889298875867288632939268998973875117237696561875764828768874395419721378985955882612593879746789438926535848234269468664913966187978225359529889329749663621634857847784123741746748235988189958718586625947173243273358248627912125341625945862862478484442341724836965398712773575219817676255141164125699392724425882974788767967866697889632623876173479197296919643527319749253464868964472192288769639935153664388498732756199945391444811736235731624853383974179648867923216851612297992814192525834798512934963413619653113974186639775771867993977997881159122937764264969965266785127692181718777153387714752585857936231691179215329767391896585797798789957987193995998364997841412914969645821127332249692584845481171313619138271592221686555855563668578311674876818955175215475543631225412299958448841448447687874972885788686478458711217197363852398887273532867739522918416277795718291195138543264865655796593583122675693786266457965324418765999397992878916247454378995165885627848278481387188454585295855846221671757971696924454912251343115865289167563596948945968726212934569649159948918293333167377823692867941983152451239791673187994895716616287298921954656478976855965765429337387574817813195897926941779332897654765414777139325947279623297363253488948514335866563599692568855337188116654315524965127942634238953672692816161555836378196143545941271121751752797959583842415865541891916238346361999381897849413287579137294457322966678911781577135783435936313525969439289588544398685861765176545369535311133818849695926918968518281673777959258167134382877587532157296578185177364512681191911859184972438864935963595716118662214679852841133699916919333568498326938852791896582385158543175375872514135372875818777978718666181117784871535111653488185612423481854636373757725393346931649334866155219222897592138812727791758993827215173123311969798262389877539243235978994534953224611254693287681186498384674997472919754975173641932498799744417532115344971216351727638669515116517377437644924842285723979647394427491752657989782755717577561595381938326268722377996296117889162485546243614492495471846981142119255195645894493844592236283533794247785873978612186412747375936554527795843122976574843879858449267735859483117649632229276136823619748583653526534175411518817269712227742168984515283122966725926259996492538691883276834545469589317331595647364624941266785844161939944122614877277836651731891859882664679478896197236282469482391269228169837818537826678673652915267989378244543449531999953988933714236743214367264817591129223312844949453483312474793228358367696588475693559924779485997913251927757336269176577873786697727633315958336223663227198775382875218348877846786197699515724585415855947572614752342795437916166523871511481748358721474715475783886499258457736778314855576159929558553985995773568768323127116344584289531986153235651588198575346967766939632391873773437413487128733949461863553676566656168415265146724834258398828692271719658723595954196298725528196517426389953284948399116536984133633714492886561962674627992673333661472947637945223349787561389927781349212565676433978691121181438389237736977918855248594614737189458287665574711438736378948617182765993489355769165513286138833182824892343598987183758557996535748863796984893748348963831247637571721951998771347516758654265936661569994213252385487983435974987649489543634477719386552148696962264324631188957129318569538997686637271233495232699958699954969794243438543198725157976148916596996623329432754725411425245683921747548384359921465647784764349446286199486233922855428927793424679996488146846227323861273986135977348375279814267586493883937999656537769267826963548959879342468136116653719888764175389978913744133575257775859428341684244561599344763816899629686593147769157617932193257132344995514612351941448156927796199818535954265188277878744995773299831966949528414369668344637254624399853966288691788759773789821171238571814872964983287619356841291714156679689886399981886657589885978148147517334736494244121971196676995852334829897684254688635329652558913273965616216651627985889532179327373987485545359364397618534476136185266454686941239544798687425714958286623547391372836813321326292377959297844721771551333198976755893783773665616266614618594374836322132521632989431275447977296548569343585868988578864386731771199912287457415775962868629462341818253154297289511723865169767163871817413115872761971757158814319239738994312977161548473419984658128393962917821581296244347683799497694181834449541675269634775813315676196348736936881238556428599235673713998323753351499834974657876773352395368742172542782827768227791145916634354629924878962173931741222982446688418315623435457839339844614187956992352437386951689594451257842357376976886911166519782492782552764669579685546445718688468688934618971849932331918534261976341654372432849976189275624167196889813935726871973167439799167173438919527635811995181242571778464875798752893264328581798735444469454892887951579642598483289559944174952187568548599111542939946757414732838295885545382924867245788912355728645984514771595693418775138793719433279257519747128796587354976677477972679536313872479759521767452233421477491395783463446567668469262737424863938641291386891998227835814487676772976951424694388539584334246942331687242938524117185297395494198439548217189188743253396492367773485198869227829662331421393888291492588552466591451289286394362118689751637324746733349284247116218818349822165215772768477828113795384169824673556767973283899862155285155381887797192259111791549598439376569869137714236458973455693635794894685897784413485173683268446971538167917687859943247119894833917133789754318217133813213938264489646515421515188947283349942287512462141638668879625241755679486772695247539945666897776254898654757721929213187695675249464686111954199721783258946249992162783222986831646277797793823944172461934825451198295683157728656988691379767839689113977883879696548268386314581926723144938387831789814567795479462881951844134637779636757936154212331927539964887873921291233943466428467748956455724569175284859342864727495325251811495188579665464676775812481544125378172954223744778951668642662464415839998519688478729942831255162798649964839356758146875272748261818169711141472891467748469586684664128664839926467214964851328482266788669621847914637123317382528362928932827596592648155496684565388518583119782543788232265852546216281594977683998239877817544852712634745199995994782881497368817489469526569138683249625871789637396684843678893973832343897129599431671979583523844736965737347646637675465374933921163784522257492897953576388913323895958671816845145534774985229253196695354793155435651784271634697668129649443244837413198342132244981744215172543554833446653836662994718939984443389387419757883535981482947162797377889568159955343466565816366955788286631619933267446114956175215592652917873376915958718836576223528699216867996365178845753764454665785515789118489535585857923622121737736252552533874913947657647986645879679982823662277662182941414847533864949924668971277437512937382321993811129446459471395429472717155997887488512879611589327873816399448942916811497548775481792816615787267964625498376126168896934549763562517645282319679743597732218462797263663117292499745852325471367121235777927131529839437141858194158794467314172194746943767895999188864767165894793587128926974352282936455127363377567662933894147618919829892639681286931387272977786854918539887676728926867436885875357467577269752827514664983261626676579988635291199839471221445667425313186392671779829185925952417168373163344946464385246178511464891346717197948232479434111357347626767933644767153751375863433528983517893423113959328384659636274983636229974124947957324781434339816214123882715441992144614916896151721955139854183696897278952732846268393281889975295386627921732645754684345595999658466348439965967438864359246319888292838245399829565643493149397813197711119858425597488693514991368583227618762295741692782299661712872897949177982777865482985914915246723355583253229595316992783565973883937451995454626543734865317515724947868875262872766936994688142756972734613287865864942663962157927517448485877857339278641988478684994337777259819782779927991454993965958928472938444243275643386818342337196454146989771483982956872855698588796769866117441669124953754896698653298486143794449257889259758138295363865337693314512182386641711222394543563484748765992299892312321472796926891335361175268414514275595553955165537372533437785249342988521861232257278564572654858437628853764115952219668669394392347269925929483794893271279639593726297376797364545993142519931757895891325794968728421167869983645563199293564881217635846425239536956392876266466169767165189186527435256323773846442118968284327454648125453613782286216161789846436118472365368343877364313644254179167411677378865514769696949845513625395492559285393515915472829776818364714926999327992486316842761695299198389921363273128692633654132284377365428962985125726755583757774812611241249828344399672569418674199915266318465271145237749561783436459751216913398332745264839689967759986642996764367539849234725914582443283778261954568856424976878965813915646831329882928656734978625848686897663422465734489378346664377991211684283731186846845626886357596595893483288378393382443688733533263151725364957457438754879274828874962137917251759317784947273899516563334617215499741237161825637765162771149321183314563568755851178841316173818529889863397145959116198698211872473328188324667621283749248853738579325735685678866787598558279837188343389166913967337764681366688194447152173445393162791825379986843515981458485786485381327151249537773836422552174869248182811475352728587637529289871612142958796185158527223795872174292292591333179443265847419821569872798837798867311992139275298468236781185234845116455564347689846733874838799775794537843738758834911853674438524414296925626582816724455835869414677812457752936115539879147435922692578846116915979717651848117679331993622398177482399144118569554171721343436993897976423774566778495215251365623399255324956434482682918424876716219656549778913228988486423448755321534191197843388467593456669888399377848686823928822745832492684869297181919169325285991848583699859264778541242433535614647461415939199138452936813746923952392458456982472816892911727649222255837162233558538586355534466157842453677579768427526479143883991519694388264756198541896333999638153582825161492678799795418545971694649115621886348824649635378844211819976878182787776925164662878862372719269266372695894856422917557657845166854415639595247531794654824839753487492965722927484695314889968818695399378757473889358147521666299155185168372319144981282674342352831448236183971891781235837979438941933451597187693453791556685626678936987184575342761137192457981222845495248885419936666428289617976723268393988573994398813713966638862734532354611198848942722188592978515541974347816655675719126572645977669496647957518222387882596278611975341675947246341678924838811654518316258374487587479679282186577156933336628854689585654335864273848153883351766657691838584534371635976985463516521925316686479858587151674787486795779878222788352111789536875419367982314541669627824142151171759823885888242751794389689233188296827868754385449195824682795528365981334928831276699477284316995291184315821885681445248613463383549864833681814168115133422824973595317131358655868178413315965871628135219755869246175829269715971523249173485262652649117939867475525517653725768329746936272955915219223999127682459817911582542241536257666697783826575514574963278864513696588395886754175593127628867724553387388278812458583965793784229896574814738379357747792142224953448487616181764549957196477318872622576152583752397173622143471641122843375267189647597699115848964162674477773685363137276139951991534378485959548665819565797687819123667129154438619232557819754536645818246728455771911885944643627244592581545637856115848393347772267585544493461718693472972735598437128665673293654231892298732486967118185984617177869557924695158471549844817157858926844252953545888418376124754477424923285733332852833694861558918326229139258489415129268117691688339659792946752562249339875999943882716235159373688224794747532164596851584978152123327914674837539313633619419856871446235678273631425144472388635527379112756614743595389237918263562996973441619442931487147197946114444522556672168817956522935232556931514925366721549333191735943541466656549855953682786321952254726578839237737373772557817426932699375632987227741957512739789418275598664925826861982671416566891627867144432125897568762118129497999434366741296469194691959244826293714688787471439578262234218412181182792942727642924979962852123534669136631414927679662171815727788569643396891154378279766831816979695237551399663292375996635934168236891975382283522498417215947136696885944739784164814478525788914258479769763394389453815222793155492877343128352633517669938341792278697194576648557536843132371617112829332563967869288466396381281267412268391392645446157829194515448678816744612728637928754545762893964377558872792267718517481843359984735463895352475834312896918364421225155921211516291525512338813499758995619671136348737554256568594462856966765459513222836974197417149356159314119148961344819655261558219249693142397271931946248689351924948863299449938865683291826853534482791488475678348654916992379489628188298791878651877714181689897383963167644236469237278728986925633822438231169991781367961332568287832254619941253251545259543141916447167121899889241617515531799143585116381393917751839757679166755178675768655434285789838864848285985294311497282254451839796387358739682789742237362847999466444216288143199248253174648617542565684493999711659887124779688862281784787627811648588997957958839612898569376528154185581476969648171456925986774267235597796432676749653854627471381722432341686495541881868888277594313861491415674578145195413988594847389793873978199855465234572639528186166311834379395349272938465483771141943683243394114476657163917538734229745233148997146784348269719813889959137738289111764937786387898561728418591521811219159773228423935699841974437772748857813935766428884131534239517978217161219447177498973669168437537572186794798858649918293483971669336771684525823544967983628998752961155581878449139738478628976657273734651726586182638715427513675795581769575788756575577444555948124651328289217583217178489837297996762928977373511274326468793581186211148629123785999758512593988628985869127497969718929928139925792831175183954543549872374568421252765935478942987734921817486262483632429422894173993586929283447997733236457891513676626578332126782655159614129272445119821552612619841728643138872458655674711224956451514923292568883248551965249751958556258639816715239114464945549264772727793175145397953944851835849628694743215448757821249742727216241611626932236895517641584376365351555498687623483649686759885462739271553789568958274554429966749147519443369942753336797763939663855337428637876297199791942586228375278151851936177516174258122923922417879165172188668399436126678883833817865568155998375523319813417465766977878974186694136719534449865528363572398948436144185879893398596572535298653885929371773455373913144519647673212584633163289393981775838183456231836248799842759782251422626469377271161718331661968176336156269739634423411813653649251122423686219864444117284347912579321314751433971334598171449678941356876628918469915237472674769173467547622881733522218762349388379365156398842669979292597764356538387678242814413923774771236136811348819782399624959647342592322241787561793966963966744244993349649158154125396591624791939597712217971861464679481832125777934766888267739868494292881842584351576567855634126268963814773325515743281627654745346694365978258477975893774846485866918942539398225883555311683269553671795335679993171918968269478957529497382688684278387868917166447848914955787246747951371533949139939599872248286822162597985258875617294285393111955422456581866717821633949932621945825561712889481212699464618624472683175149548867343286511536993594332543288446618826793467512151569637666474968494292457878569221684161784461718756347458688648384363446948917178716843967189761168177692873117884968573555846676816692525725351627835911814775735958549658428371986898574133496774776961483897198551779672474369983471682218623354734141978117611364132198234355779717199263839169173747919473685522894349879387864566389935943827446452296649882334739483369922228122145763365896282917241426564713719734355513474936915267978931123362391454272681583942313636727428449173742699322546813976117466633385238551342724633611178593621617777555446486959439763913573896717748587683313892297328347741543962291371883698995447837381576651858963799429762947779378939754697187684752856312466755545948189779671486673482197214262137984772552664692812316771586584827257659771179358579936392414476122363594596394369291745753655934747441618325781865292135873781136285166665199126487323744967176122395282651776786441999295165531294987713122263367968192947899851272134566349667312295157343743766514898889691914349864134893629979322325826589454384665936126679779589559185995657752854616449576679817477992273649652595632878822182517413582345822255513165294239421583984832234351336682121811384771699734761424971382752256114638396477865349726193658677531495444826373652183372488957596128958733574259299452917899455325191927752846438323141136696871494513667199994656251193519216735531357738122234648379758145461161623151428672645341227766744983265323271796811293694695649482289777258886258774545692338114668868656715779856291825681986669878863389792642782622928274564187149358776666442556242794836313841666229945119278189828311879111885984195179489362926562345315491252845611892942397764584448653693946382414777868778948368579246248928421396452851999554858897268398662694371437142359649158398158926789432924226537368397784991895738419881458251172919966918929924723444159586673375741135553564255995177765441377756644398971555633494584313838257653475726716854725666151532513339783982175684466723798117283951784377727144711273345878545516985817475254357964396478359833332692856593614872483728455966788134229697566517416855644291693416991148743536137177726829486882465634149675943188753247144285713558642249259768479328853484781615393668685169339758365356881891786129788475666454851217878642969573198357228486147782918188982527397235172549579136735716978391876397361134524511552983971955952478416231345941562765483231248534847833793223145378576277865729737885346155782259244662531256573344193318643692194888793897439223352222294518529979492898582776979639498139489681472274327795464395281167459154363398333749275176236919481485621317976685972665395434953987546436537579374377837329165478173671247816985589539148451127798765569965825278822128458839691137452588691129838877573747717963498231759763845436426742729856969258187716249725348629878224918628713186717284639683545342678351257521859761127238515564867888874923319221159495917998343317399178833214863113932933782363164939819845933963737151754212778479673157754941555673417547772648597521161213853376673775324853535612326865692853719641894921262289221166868465869971562723342421778889477231775556524253741423287241256424577459689318681486989589836711928752374362842548971243895794729623642159853341746749159173858497434489399383965415863884777414978769158767373369997611128917177168279635594599956796941421514263422758937567694634712392437842348731777964471729891276364762419782653321944836894389778232786569322668425763845974585275674283276137578871573659419223287912641557324795697793549181751358818127753324545894714383769976836515892946858424734412785696963814653558226595786923488288199756512373296347559871529763234448143297969515988484569814172291191713165611457616486821629547445168857892491985123166373983536568127477638673237843946376993435895789983664867475116574791367547937623194245586219971483825938531784728645551166356272485917128576254385588414841945657485772656834156756572282732866564188381764886653952418157859994525382949134162915611398489663388265513452717893762292596748412829554663221995131458457387242839111641971438398983261751836467996816699143495712664484692588511471419873721759876887746216271444965781887148177922366294427979855434445555687965795747679746564455937896529775468967277134726879632678354413768767849792622663768217258522398347499167397756381882165161228127244833377738386121925226492814971446734848485249556747791667565265781862887531882991629225795779845384837685865331566976147581777859616163941582585365458667232452872439133845492299715664747873295532582936529749938353184993983715456713279916334674957578424757584535296157939518518914694589454961694562977735132879953622466837478687999362183332492766131516618918864973811136338851664242164189231981415352696572835953832998618569147237775417775583391352137742397864232576525419288888896645758733416762914125657889725645688671478939586928859215673849523758653685165392247598346662375166966824219388762846356158845859317878381441363892858879448887412762616879661548379216314781819447675168727453212946997592469549959154525826291556918714146862332774964724526237929223893183389261321462621257127995377242719771189969846114839916892771356568737869721766586622451642369382951454623978912657953573568685113677398222555344189497541574996999121757482949213488645953976928993978873134525156248859141162769473817887749941798946915518799696959412922733613557713662835796865576916818275817475556667117679888229531964654166463759813556952196524669746495574784114597662223562276366574212912831757919329512386992784611493636946945496756146835924665795373769762571591169476114329519864929169349325413694937866727149461882188126154961517365276813687282251125718336864719797472685274594738485692326754251279467545328425934566397933886624968832967454186584146693594899383751988515891853742865348327799823561481612342199818836289318573726763759442832752641532683385133482711281948567996337282645148683748633646894486767935463567784923332769641192149938169424613867294729971525448327634392861486578239674131983254662727369753348777626671421633977997338481499219327581962947584261697227971496175657397988194155658759354189162654579448288771153248571933262319694832864541588615986391732647873551792517536812541655532754724843753957511662299843431861976517714676265935257425681456856745979592859293599159663457827788682848612581254711455429124145346144937252341553389844525426335383757468895754927216593777733264876928288158656931219568751219673331764638641536823767218534628597191822955926476866854796982223377786527572551322685118536344732419535987516616994113734464364347498923841375673185747237148372579573563488438427514355267147778398742187752821756623166496481737892715922567184747929768546262755671728638826145736823165227353816547525267251278671949348385916767694837194386684231935612993746435536877944964616915288659613793826741118438752668223275797366552474945859745977683143777871246747787572635766668258586938651729679787596839831888955767929718779636688817588238335635221344665126378912724183787448861864759864966467568637116628883588521582918334756322569859833571893338164943229519662598115122815527899388947293821422563443441697515652625456766223685166898614651121385315651689834789633453922449777944317668735259467176227131245261739753796374515897112632178493548477756836343741123838837265116799575616741934752882829967849451453212255857814561315648352916691342866639698587474774585273394298834787137638931448698273554671322541728652778142682219543879732557579767854613649486876118982996565939592814641875459852171499733552849968933836913466966697868577316353897654816526637289313498224141814854959715552782947585152493489287728766636257288818799425869817289629937359538854593281561986246185416792117835989812131975691119576862656424689158998868537837375568959842872234692198149429868476212962466237282994939723313988242824286572947487716867447167333771327525197572226194674597883278324328594189611789973375387147326798978394773127199481482228653994657253156945448271727675711816954924361379319253428361325644849537957666545678689328685552487992821963449681131295499913271417154364587635575616791699681312118697199334891789246714738945598359246575832966778375351618674194395464397386166997678546735488956514376254823278755719616237543478729833428855723189251699782239456267438211298237233395969186685883258442576382914968848386257738296328584146613443497473153846879394123295454215284787338613891989181829578377867117874133715198556578644462594482379267234215548288768627381327153554597498665133483853797712647699171798141178444336968238221689281176783186716223499595477219136553578221195265873545415687482919485798927981114381342551269688386479961171577658197793391516547885768829377948891492921291759935457816839199596419964197395686199856769468386911816252895737499616478556359275699522646776868652411234564427887842899833828727239126413342826924681551761637441642835213499965347128921695349549556989669268623725672527514222222388831451398558623844838876873849353866191972128832724867565876948997119958527415749712529988341327725413655448859341772483376223287713496738585592873871426227361999769117566985887165739833267928265547254515122264727936678211824457463271863447552961829514276467466179522769977242394211145562663654771612328661738652119924994185879938919347752289397572655884976432858826574545987892645673283624948788667995494442878716635852328498791227688444218174887675195849347221886918421136998261366541986684581347921441174728725597713249878741912151433932326196385958862258134896687378481496539165115682447793982821567353967372498187186187429436212953671666488765927677724624297786958743736883457583629361944292569688771275253128751535738169462967883278447769115259848774367442264166782939489356656791389669842869359733371669987712466863584195435596332418974671496982883875763899323696945657561816878461212363798589831431913294334617899387667477746783817838674543765199224656962848371255233959135299544454297357629249846148765442885556627586289951927178532758643466215772142412653295439878755332881966956114281286777371845192184599941984242956128238926862889698916182578533444868392911129289974351387892283558513912431981829369919485941568868988567593829473828335598527695179977937734954931559869565783686896246977858684485225697912846951173869617934429435418683775197386524513446916456153754464978642864686994663381436453417868889165478497343398825582826798669529549981938352588958183464826312481162322791474982518128594428266134857878857669941158895272671667119344369857972424472384638723173172462754575774437499715148841724942659848693762818611254114644246869316399462224518297842338896146389275955859242964958171687661786737495847832353518831654783342344478459148866662891559776495395414853526377457728315932348967489615964683548478188312324495945143519732532216832856144235784973471395579722131563352513787841994717127337697274755641114668495112369664248999652637833921364648678233818387766353934364129877983483619532625799126636295679719175925467283646834662957382653867912237987917755258311731192477261465129356343211157922679115553997952234857571848477474985839262215392783285354728798669635461745788128689996168238152677397799911284282241483365917873954333715116433295768131588375364769535559617989678454192128689857546578543366378794258633939911961582426279478515746619437731517965772592773956324899645283953919645374659559181448486887889686551726926371334946476563727943925882436899738273762883571169226445278776647317276145381345356422963592383877841773897269667917199492799385583716788761696614253581752975577499245796399477852194523997649423294599685666236473199486166859714742796939178529643765916586956266912452622953514789226172519784213219544938133726964214438492754135635618861682425948938233111149898444646916859891879125338947129838781949962445879617555982496485461979272369892565746974929477337189395137342411377226812615291817474592769432358343159236667863575459695176142588657367567238514927564423613238121149355385511112187987588291873238568916345655168915618346576212117169511299485574281777332475993157934189888575727798365525342869144992169549227565659369357856769871595235973377683653958249416218824581638693551644431823543851899897259139922326921558658949763217922739942527858271789312537681866699344378124839177143251365835672614672556595542718222339572672372422748694845726672824721587798225583676686742477746731519394233444844436216462744441738861397158581238885716863882991765941148124999771342467984981381311645838261164261825591296444865355951536175642914485961421128642338919485758343959272641426971811112879373887881652815844938122522887746735468669473467576739116673166289531336878945726832389893713956647898879937895417968296615153328418126397415796171617919697274845234735975474847358411863724287352326892358432776744441428673183437784761859856859478354968621679221867219219881287811361574681768439519477174443421993638862155677527576965674833792789447119574372387553588215199863595282865878249271954398657976758392744297853234476581562222223196689757474777555379188322196876115957413444698265796486835763721235788978872867118121851874512872185817562285561763569257728697625629299127555157685268576338245211336526571257858238824294445419243437449581799722844878649756272947946375746132173913962236481318678941687536774438581236911869727421659491456282854728818249643629558269923594654647269693538541637899636471925933699792679832974729778698896255455912862165679412249972923122333211961915472825995489814421638945359324626884949363784488462796514644731791867943487268974658781457636556563699136719438741747876141978112442676132889517133588372866473753867917998836743387591684211638831779615651885464475641848692943349738243491535134467762594731777521544179164877938745886424435485434268374148959131249974559663377927547453817572856898495432348796388169796467522457782513278665862469616369844748217547371533676498181657164471955183954179995985995932918975474614988897228293654842997582293698891957879937946354945545827375514241116652821632726442576791179974563398198818813716231528221161738274714593284637145792337968215867867215427918955848357289731427571464279879377224494693144524877356957397483545315743736861259985683648489838788472272569924413222529445794823194996825299178948728934948371432164892311121579565831193797877581755765649148551516374649782593628916678746918267696933194779397135593172887984987968375735117168478443278879464592697786972434899941689853222856494295342114724847399166288716686843347654318255275126675344879857393465161566254387874782584492526683885574186738238397573762898537829183456488741122458514772716128738919813333519875933717811981848613499936729786374749498383292956684522565862619181671968119566584932998575943865196785299676396619816229713786821848173586334784188543842922493953574472963942963547553451764828139936911146157174243858976759513654462329347698353462487147367295639339943599111922936246697827314354197225818945748914688333392388814684938874419563722691855623422564224453223394968977691432429868286486576437427673478271558382927698765395619476473771421472299294294478214629455421355789841579818171278747676549531976358565865315926488963332153457582841758891833612187337915979655797421986936688457634179667215999136768175596958169829854876498383232797895727368822145318219554967439263634961456441591767734727782244458271621186359438896216944589968281512834766457192477154723666579476535532539282949216369366871977939546844141168318879886958854799591238287473696499581989188733368592148879476946542895485284346815871986867769641755368715875455856655954742852497843485541596675531866933181554456278353137795352488499954494574177195757511745977448777834197717534683372282473769631276628687529249969177199644728183326231794276938692542795277628792593939599741139592614886639912489631562443742525881826267834756538467815835244641511474676773693522545639348372627379867183275758841659194726256749779591841548781859631279551684735113479766865493223994532623486696564487191224414482452378444142449879921134367625465739513775749891419264131654899151181811351167671541445169672156318725533592242979222953149171959353351161189715312786373913931165627984513964185351627299714158476224987667945652811559487774754375687977871764886569827543251478813216576887118695941831589535735748719454179464281512838971113623234372657744555248195493388157281182921456432755364254956154248451856678969415272386965671748182893366519667545356126427426625647474617836246937988886339632246393159458992255316113949434734573381763869995433185872842716996664112577468829647669416321417577982138429683212912413166265738895241215761417176884269999999993416588436874347914189349587397858762133434133575826991777441886576715897787993489976215681558149777211832819558725835281312197727698895651182577298658919362414478724557127471985197944635321542353479365693681237193598892271474159594671853577473915951852712763836353972553575571328134381414862452297256911825795988322491419392657587284767841259928357126269236544623611181323298617633917672244176439591451863245295489429188682679351467124463188982574281987466337379376778479845315643846971479223751712522952953731351964767944939826671427842643638127864147135133478774586253418854676857174738592798442156453233693452249346257389352899657957595584259338769838399768914598994489115462447818478973591658778618461795929872524911638711612513737892485733382686174817995981149878975621855717917427898969875314329648665785291389422439842236313999637759122578258619569553588632565859721328818592847447735823238285948324112958487961468526237943417927658647567131547644756534581955774499718888228894385111785739574819135355867144865668953278661176466971996151753338739655355575866746431794559413447767513299199466749189371749754636531685873953872296918516199597579274385854245353299162115887362188559167492925184294252585527699122935428958129166135839818715857821551838951527112275322396919922875518124378257633852681865143838578684537525541315863915943234764495228616464984635684682784181747815674996421982811159449675898396833394513398529924799237357496715161514258544656792541656711268898399758241349336924185579161687762614923952397842517964693231857199115496441974984237662489541982284916213596916977416194114589959993714416986124127531127783293911493967755336865786892349921879283734656642534184363155311248318594332669396588726725697899449814242899174584938655887198594842334728283471693919894769979595359565156995348834352883113246674894241858143797823282867741715795682893956119566597238248451972997766533891722421413631446979875849972955268566559223915977624849381273673517558447742153832966474941225497694181951174679765157351539264563458969419523951951197663967785445557868642955914348949448683854783472578939417641253197844118238619721934369979686453673142669656258341694538475237677274473662421598737533543176817871673289674893415185766536847983276696585327817142128749718623742178778137985386784277994934279173584917439951244448444887263176153154914168289689342541693452172591477728312199576937252834641115696281315223962481917863955525863164712292796948798595289694554857237432667813169911165846193897719973774986396412687896959956384399429481635922916985143924811145925246243587823687215787632277123618288697511755771598194956285475697214535828424971728957116913278374592855232772525896351695918265595422884495267729942521478132165718177627688744359519693216494447499731639378582699778468871465157498268566387514127929825791119226293186556778774548772289238799663822773681768286362659434495514198453149493927688697865586426791466362316278458572226262962317737589618794769396544826658198576358791849884371172427987376529851241399985845252312637196819892156957786195375513165539964911355319272218323621529422937262548276418735326871352413544167953762313589757244978435596652181679864325628119728882951591224171415998248512222684286368658993758545796288145729235662193269955675881835357673444935555685258341867465856751193355382611451145961958793614857273977173625542669118566679869283623447593368241494698127482548749975784945572821798175367992199884341411516817914837693574289297969961957232746954785743662788793388986936631462464749125528124936815892214173926231239721692651694212423755623783487173353515122884217792963988616253917946944979149864854595321357769337749683754352447847621391162772745945482812772238684776787236895486685748137987128725223327795819981535375323561969918569425746496826845357435176328682181576666487656756967129248316999463548238887614264211561615278581947456786556549451292936459911989469786611415482481173923362883158586855648665119739289848358719938863173277355159417747545691494723523697539135967867499175784184226493295826257329288686692989489959586561516887454491425397847962469582827284568615948198494145933763974895616695419916565351629258462272852276872185893113573937889186555779154518298999288618556788294237558497258579494993334556536845528168788392146428382945958587354779928596965854775919413294818692185298267821598912159134645238514694661357469925532962271314569456387118633695624448971318452871882235945975358493268227491988424784629256846214281557458719539396942727159662261289986186565594292898151978885822667932784883549196971964584646271395623674846286196562497266189633318482916314447882773931131576526783164345937238661899747621838554382645719876397479989656593287732219362111735959546465646981544724718291538788665119759165731486965457138856268232712873847532932583376919782358891241974431876865218648892486429614687135113294597373423827968387479921396694871515377977986541326883267184297319173622688822969482199388475156916777227232715341417275145529771212438984844339747416674152394455129894652376816325239754919656816128224589579857717546851851874558893811531223462181791884877629456824196312226894343844183259671949321548869811753751857366575941148888294899526759622833353879891949537336883964841837489977465548197252112424951361319484885991819327745793372133454736387532895176761139795774961791652565498771378182827161826751685868443514427784729642746991934546389387195484464621428113748219773778116285311158585499525564571633655948459411238122265328792758936297723422653756259512497794471949396723614327874492332979799182765367958767917732311522953821581929446457197268769259555367772457283241922418151247925491784769664584186647238681488117473932945973522477819773739345564537833342361817923425721742484243966449216756946189277596349757711561779632847827387937977522451924168146754464528666393968918497996454814859368261896842243533784921399894849694569746591887762513854456188984682626212944296276855396957378554918918173594812283472584827665539918167587814196119812531713482665117337248928462814898493666876626693699747837473449494474431681512221381891657236879528825321322468615578479692219795273456772891545431133976564384959868719977361229673619249435889643898415173547396462775483171691755619878927798938637414544414461159179331873724452415213669626395854838679878549616222184817898516528187648197496715593688573718533579295317719941562591635367113782755136542469875717453293369449638758495186398717629442477715877374185651758451958463895291733945279834345758391117629748745184878163436977336849935544562768685195418355811926219514225693167138918265773884566754774321765919328632995628873386386617314688195353146791972758198244612255215899748564941919314598989477638611344268848688466119946589469467819915871689928528757578213778697755918913775126357612974238748696854435875322947817146995948631532511117399251119447338873254283693572845877869337367561253952124972583952326152657877978594235196286687998826561284296773521679811369998742573314286377764878935666824335534895125241348881823774314293459587229672118728974614864948528497252864417797645686617875121757759326977736855114799461159367584781662446544537549463561881582684623957416161744177432394135893713868936118878374799825615249429312171118782794168458732237116992639992252145592537975533294373834359453473569225977525498175678147988659866447521895564452848436172427854639817415455635298276393277548933432341968865111663598439871575199267157975649962999733196871621235918191328667282546943294636534143956897314524685747433157531822984896312253963416737331698591993818721945142431842349766598423755957862158574962277969763731117195153835558572872962111857592272685714811172458824498961187697983235435369943527596436922653366972939945248636246891126555353318596748911719784398473762956379469645961911515261196861255148182443235794829991247897677276469576372465441191168672967474843963335713962343446363256812324839164376592144758566687918738561456831845751145565146667215716847667766731564726987782847174171486312896331147577188689743768383158682471334767325852141898435787812597813739282732864943437371422591878596739645989625421762278983329362771695497131369983464957217876516213444559968967281195315867233683484832463165272657747425578381816189229875243679776978255561277119254534862835719356795599669731547228555356115333538579559257125958798788156276493542999645289314511323584429681161886288453133933847136122175561132985473737149811918149274648568863319923595968813467289891732342988754951751659447467569378899449288994564933617285483722887915998398588597885631179729693272895697332173583959835364824923217616894126146276266492832323193938684239335667287974164358449796912337847813542118624595731314179746639294265781578717573858821468558599833991382699531537435866276754714956497834684887348432145939946655589472512762263988366232582967166584192134818196788558289288795178126826425823127392283745448224694443776817769998299716658489859773167459153563775896569513663965135666536285222211199632284353391483842728999916924289727331747174791591761215582781334128468923322839719788331746397745424453844585235973669887868958398521854173917124449288747236481688638891483779465849185947689826869456597598659668738816344253649219529942274442446364755328287586629997624999237845123778888823374956866312919637181993458515497325821696112399215797673841792147494963726261833264636939662294339994182491749412781814846217216676897896658562433839141325357721969515137233595128648898983456921168229496367519928952466972597591349288861612997252523121979819297632348988669795484156229413115179887357994768944756566867392388391955481927659363182344788198697791771898985699677743866281278285931332537657961358883891577259493766198478944484869916125766258428232746542297564969366594119618236839811618693572857219173376772456339944979712393377692614637791496729335696791638117168514465165265326647353156683999817579937381762845633222853247665346685428728764476243264583764183611451528323686144417951395412838183949213237412289178599171438819475351782492944841199239294588532813616198763637996442494869317245234537558242489936328977626398521388547184828488518751146186677542251927159677329469368285229137148674961493831177536393558176325332617241588613781655291698491264652114695413944626283637126384675173397692633449225735534565838578645169832834148454783763111999729275622176329848839339482633843529214947474413183347339315678681595454531199282425147854761885486785694564924599965988954699572836766768787712218927215889444624652257374495974838272269967374994899492489497517832389946936475894854933193337277297251527961564444336747336655211152996719668218814987535786994896943683139113629932757116448311681523169167143674685622886154116775964244686718599712128588156597389346165744899487468253496921811319631447665421771563591431891231794693851761871714777945695279624972571497918236349219875128934969532897364943618449759911989971644624224439443181853259538442939276551175393246519317537844173426285438742731415873858161277753367297963313181837589498598339724736536561679316589947248359472581869897897817231963786658144463863569734856249883326879759286986921838698572632975241815569388281684787192834247288667626586287886573838869311857414176794458923866212939385667857293494761666263784912986672585444127767187589428948362713356177125253181989412182834176791887897961373764857373831641789566441345654313282817333194774689368333629181978363894477129822115467379596553983672582191327527619891724317556895943874911175281855982547311686492752767612976415261879116954986669261993583169856784538691786655983585896765613268241336578762992518249936394343918321722384688227694767966388883731547298678782753247341143768568331492656296479712973578536918878337268557953358165742813936469435244395661616298523879449793545867495451941123241589568878356232447376675861794497235752996734699783221488259768545295295598699725244999864761914945878884817152785237191781893528352936498511653848673547181256162482553773866157151222554335585513169886368897555962758194965525784386289228465345583827693484928878817541527157295151431719477793475734729786855999464211888473656786866651952634434938846214216193487599494877962515335593437894269513465882381526873842313943524746671221667952814579155352488428166745525776526375418292969275395633574991822298261658293541255276658852555311762997351829882142847776971274111359528164987798888718466734333894612583328667375718281475855271558559153573433953248724696332991796686675972491275616969145585969165913968977826229637531949588775569495758133159128484737578248796757147124257653523687584287323671261687387162365273444699133166897381268177444541293761754159518163259143594782829759216162727588394393177782754431664323972836579875474276185428332773462151398468681799195186922568158647394139993944879638219886544865454952466321182517951699359257249271978752965367671592776961376619787823271797793661867523883419695915919496562162417827156657899887949416829884311982124638773925229168357698973648293287393537387825667978535985135968571152962559962367861512491355466495132738833699347351582251442829686314743951266798912956727695434669247969667174625914991923236626951996433638221665512665238367617676991278735936496832188719458385799641865886873674231897397777495796838854852861163846867336491584196967843726567758315267134958914176171391433857469878262615245379425757848593767282619468369792996199786959635539999653144327876898366935219138277911938953481662634971916446927636865597768965347141217643849292188388368511362271193943334192471454814288478667114532433589696219867756992419389589998982943863872489357584897552756838956689921344889348487734682453248914863478358762676191487487759632658756333416272944964294564786756378949813459289376356584472548328379111333359485351783262342932536643423568659133847773469736473359361186288918576613529977265497311638452172753688579717511654965586672656681591447795791635794941476945168195242997673487462543299935556926569477625854453876672864547875727967855618436618124539982956998529367656239991193951932712436178726386827232257687319568691893393551354296854215878788364455752172413932182165854355357719655498748168583617399852739439682551895571119446661555178257798418417539373714518579415149999879879989731511675521866362342183574547418659338798238591579139146869977714457257316558988277826677556222671873123733327169744865225986817524656386657695881597533966829478974856717837416715643262589535385426527227816841336214938644446948817238343828261463312977546233768963996889991982198226788874872886775763119931585948518853263697573696477488618452298463233337573362588321559276819115256581666234639812843996748267872585878669497625478566764658672944489628232853622866388996891225879562548851492534768897699341169847384349231915342357567787419232757369414458967474146211664286713562162783529663742951968316816221665243431674257965424443574527694934849912232663425253696649976629536722899275137776868841888714669292569691114483891716162176444978249695451374749445677819948539541177634994313848317756687798895919553617916479817389734869593839245796861613465541577596827562623228813291775446141494937396547183939878211128987945932919634866377173711583236367871592239252118336947386392663616837323371314711277319492464637923157175311494126613634332684898727196681789684496316757985257232687611666267444692366633376877899865519644458697737537777114338983261656752953823541385498258945886489362163145945428495447754281853189349994992518343431647744863376114877693516278878353217794395312864525933348335839461931247243887279565389189789656918947395336421793587814661684937639712728189437311861432412166689814481525411411194831252439324489381212678168436498418988672354814726728831115688414548431113112478819874476126221975274349469152517348389862839756538784278781317652543937821276784674692891996428389494331191847149828659144957489875965999878637784679858194852481159113186285779227192334871846363544733771714211343723271492966418417575387229972636946314678242639688775198244443314974114599154377923278932915279319423681598566723437139345258264719944919731573728361877593631732422129865625981233211278273466378889523977297376859216883481221479362245793673264656195868925617847228434542889152174977636896585231596379938457253148672772867871673648178946927176185326756887331489914367574158421481891458794653584158786875532744646843618892735145657657847712824873596483712758695425561958396868176227214711778498788178564248853672292422643465588559299764119874259594892723529711892398578378796451777148635524997859844268354137493912931646477794997684791934149593587993929771394499916816264611589689781381573745427547751715778298314742639714699389729632483245264575666726948737394161676557693579296531153296841364285276257865172948713129445293937551359522899952538451564729253652389587362286561456286125997788663215959393816847676244948789648848371752898993235954389257967673842391562559546986213979972597647872686767639251731453188665184436661797725811291384259345367558448559968541339199926768333972683957875745162886456791649345847121914154687429692889396321424374984369598889776688934225253467729925415756775663749473738797834731425361214162262465579171122655646524857179691468478254964587284152516973534618769262628227176919856316688566453274665834568397785688257954715761214214676268945617153634158248325237554269193866852572542378246276537182316622493986213431614527835773539589625169557643571128432738454295158764988151214724688198834273328792147216256994439496312687117658141346498182174798788777529411536967514878211868453314244387416855625768649387216623496965574559757796297686589989953669898334898627885865572592686259127732682466447495962587931674282584965511612949443915132318869627931738972711254588685624336629826727757684868688635775324565483291164879139697212419158993634629889742287147512532595585676839355998281746138171291747795795717673719116137258993792896638787413136616558861929176772152691325325469686955666859379998665345837284375659853811365919117692296791232467245937222598931647788366797479533945963933557796942773136335817188993188865727724724896538485651732589587323865888853687353873377218185145863346679952473299447453593267889832279383853933775125947991544538366557969496481985215992776667221746461528335824656424924438576727277931859666853485771127227614254613626793674845327848146553998388873649162763869971678712199119747796779991773887786629726778519822572141114311338996175348719969467764996375895777157851635977316346878438372597463491811756952328618585644264595839987224561561631967893831577899257766994836818956637619474886174416479783678837532995298788827924413995549143682296149581734392272597324737772898282552194247443857135954677658544747333727945388955395443199519621589273381778117957835898728681792788276829246737478246435754342471617471853164544362518988734916797264119897146265296531919472941784855817795348417922823955587611714642392564621445857455948751813985749741882869818468342343929865794329828238334132744233367545872869752197731578364944315612221678663657698537524465253951344171271938579538589698997125283661199959818475392966526347795717437197643839442682247696465398991676399871963239827943278595652597148153359522794168339488186191335282442775522599137111784324761955688943134379323266254238966239563762523831983958297224842857721765217516643967139166924626243245978926462338811424981546822423287171796651895366547241527632336125614248148337121943672931762587792546634475799977833756868465494352382247679756869478892256677576854811318282841283983573148499246654282774394396859842823541332115317468683772468919618712744973715664726466221993744489417998698826655738262633469814738373274593374346356173697559338633714799556638935686882679976914122713448739119875677316383761876419455712982432672115676681275963644446637356355974797956721454493226285952157377378865392819289953942149574125361696667833168486566299891634168336761524878836553213935874657859736139897137574772848568482817862735836684845819684237449661779891614561456341317695626238863898643416511974947629668218167539782925368298318734815576856162661428898354184442477476443956169941198974975678323533379684788435987656986449333437396581897911919752523376295657339832173499565845848587937264763123756112196994977264719735527987223576473146728731435847514277852158893295258937697676963496595858124556716235262575281926338591297997727894548668924291631236789573285328416269683387935689371782553253139151592797291995177865369916631298763458699479362795651672635253672551767555669866634136657291768974373879341678281811864779188871325369582844144413151612624813964491533652955564316527487959771575365216733387783429895598325325967789153551982146146659716268756953564659412129887767678664528822681457737675121528689873446289597899335399718998453355821155829446145845228255144291449321198425673364442998295315833714184753939537443431156266343355471859597566695361116164889177432991675877361738832879332332972541526997922577657433456552858976136152549818348247238523867972826724657876959426699399794816747866893244697852216851479192738734778234226211346538736882546652378179414489372852662887656941778879232366567273578268844315788293686711445518888221719956258361499277725315993952297729396719566891297871961599388334653396379373428319767988483176867238736329142383226856292798349499918267374518557925818374675732826844716759668957795214475183638263895855786687379182498885186399794575699754351169997826723197199372816218835781141998375253576183688293779376221778834725942972194166682526918247571221356919454289258171467983523266286951896459926157586186636575397625513896148657892649656583275433677311319141989931945376958346866413146772134723823696761712675798456149766669871132689462748399891529194681377886849534454196816622167945748983986232998242438778825967918585551949981559782184483755218614397563714245218997392248373935966319444463238277392175163368583193133857889838389249161715232114919671135336339433829959316599894729213274797328493532923847451952337937466146199192872293746971873218897126778114371437648872562318388347428141899869258492819559459771748339486423337685453123879986377732687858256747865677127175387534199297918173923672499751696479563643925451848682798592182196891751137879145861517445879444751584636643591791774839725131863599915126971694899695718158175916171995997343125744318676212978823726866986357186484843487123679721528127368932467768853378479298962386138481995566438754939321265489883174382213585893853434991231344644969861727284754621837428152363878544995296933685179751233577599636646676367612571769928774373797579687365129265548274365223549187639486318216749558684467177219379198158548684722467298685962168731889666363186173213725283956264889851633779963516646918661799869988161124642424449186787372338346788775956667479873119857874865623233817664911132977832188818791618669289512342363243968769165289223928788259928295443196219187184439483553687142683665439816612836268399568851882855858591357518111125193467492364493919868339282398967741565722988469936271399228793254887982646728147453796649835791259462995565641458664724823231762929884996523327999523286543952446787889644411179138681317837859933219266341531668917613836731747468495537673352548938736439662284899475313128695777562952117768471621723685117584522977444592186239737424865348714659176186797547566679447317748736119949666265922996286741813743262258332612943376587852929748253269596515942837131262962755737552674661955792671848587768994969618361293733817658873459915938695749137586864156383666228373597221128135282854281732456944735469772151929422588395165692494349983853178949387422637543366454955698372768122599353842787876294978828639647256984613556859144375968547577584664194595158219149382384914994813858485635879616584569854296375964377236958783447563445916925782127318914175317626676395582191236292382519187158164456487817565793871273749928319687898424924583712312682399133548391941416725236841524919818246888411417785373381243299861958959968882189529736893664988135121629494622126664813956595146956246693141338366281835386842577686651545953342256752999794887184515746929738919466859995881776229273824836147388945351229835522655853129929656635868823275249433879342381938299157473286319784387771449138785819389437349998228865331347546837871854272339924157478972719625888986497442782436455547169986942228422846555119172633343325491397434394136529954527729687365232913896611524973272322339969964876155831155778176243816123721265279359614835538972361642188289217761278269365824161943258657561241533813519288575721962374287678463482616139496663923286853397465563473217763141175579437982373961943236859228945883132841941781127981341271561879118198652488964822547733631354378843961779661158196923974879718747466464964531752652547173732922955754999128787262692533612588679876183319859523528668575878956813879985531324819593459371638541613431694135665714276678948296537951228282351459188715494684323447453435139351467355675445162564682995548672552442465174188436359986613652353794658678513485931391549186341843155158124653928886748697529462223314146819451146964127963578625786985689935336179432138784284273746683325938932452968811843162284393595811488658193755799256719442584583356547759369273784816944178952628998842694894566891861741288391993134491897859422997893288788412843891452384334891413662984991679623689384528855782633467295619384421672364224615889779481931325884963278994621931233935175462373562764399669344144212463313813687775998319648562382635178121338133962892529914279381982949343487961985613742563988853939354487585389586386768317556751491795564278589493557336791141768517863382682829168121196999899126585752785467435379215721856895532793266636591244565334434163132136268364228894792194578839743825266663365877574888632957889899218544758714637866678413914913742515953617891764739638138586961845145982394117245888676799191565815832787799222256925119478483242484696597853931813744947527391134137582411748643365215115197358868138967973713727639775155934827373176374989926451615273382736924572794964774847771614723134121473194265387589648622718296765542986537783363394881576284317781227155596443575917579239557576647616291468882436398572458166626711374918723913528421453389686716254783133687332753529953561517556991914752722852656365942415441786953183628886882197492129468292446536896395327714626242462627767364882261737664651699458763766416399988618195691718186912546368728927187718289784987539797478383314778293618554555254944288387846785391395651339337659868664638686172356391569723918925786786177877274199745416362666898899133879996554443552794882666855599947389852948131419653485568782834595162476717819713358284892567515228272384146682852128512896519755914115782492968133837477748267641665162376756717372882642323724661746917687792634894923566594514631876211537938462669155681296595898799998334764992387262138778236542651725782692443295313795337671883485416964935388475786412343217629124489935992576333739242986816613667327246537255437823884276386755193256859631435136151494685535537479462717626862283682281177971678127691125583948612171184747186342152925369572288484742965816746175551894438824119748514673748297939536547925778796366393756862779453636856452194818194442791879664455617967298384157534239298937332458571294479964278655441946643371637999877583811973981345424426255444188293797434691833286659195885288727536699615549635187328899889371878714895315687486118837393969297757165888653571463123224975147624498337162741675581613267196822939158998322613568892876271468489676479489281838132398799739724846313676949535517275932295924128553429811742433694881639366539248143734982269754775947466484532141586717788267927939662352164142973245373867885376386852956526261995288568553464244298944668556184765947238865393495145684463794989856821552539964933837839372165916751867375472256695617731498558689289455354644395117366338528836784863557576753667559661953392877939558659312271726135981687883265548411121498959597887776432661929548311275672726322669147668354266788755618638291642988687581772489184726468164733912952774445298136886626681729612482293576316552764461477543611348495618146425748288649687992361965396718744539224866688811882493554123189917641165885285153288793467124631252594928142819341314217397491271933656733751639438628988825632482346182878824957232731349693542666125991815929568257789336646459157796818941826234749594933168722296662599774837864236641862437437193984997581935894887419779883435251531848381785724184259257783994848622213299147766371199495847756285251228369838931899977337796987459316484681743682496788946688138578998451798216986181518397815986168857466694136953386455592978469685944889498498396286937699627521837867353166333661389997192176951566971157776939319669361929737178895463582556177688649298551416191649225583355934896864958992639364591145213294991695461587695316346971361361295597811988466496798794165868381419924617278737447525137464256633936619515515114985424652368556169134187948524811899675284217794558714426879167149497921143738893953333482547888986997968726523799135748416662972192669193852114276856125133333216281896243352123796855667846757551542975284889784851199561867636858517723724288272763855246976562745682928698586975845579729128547397962383413657992469573494911988255464337249418177544766425387344528985377596653865258395958667379962915739653146987722597476829388448845575979874537559173814996768189766469921713681231725253373585815742756967853178158793668656577799518576342695358166948499118769997854277662422871488757369752886472212197464382331856364778543957842588162652148194888471387199339962351523342585827139945583831831777966415536612647831666748943548837918614262455532615834542737725596733631561234421178982692879512465999469379934653676393954752699342844329153981812462111729753498448421163651127537378478593963746154666514953432237342726917666345852714636653299776776977857744763956979867716824144683777234932988336175524356125398541154415468144163424336756555631724648939513281893788622885616396512266337698375465956173381866273254373187733791922251951681168578566898745881321793977618681588861433662146825316678392919778721576592367669741824677776326115686699969687278246371756788562579514252477252349435413979632373229171339184917847472993341634694287952158382776452283476463753261769255738755895385259769169982819276869442196287547814667494647879989498222399542381874776154899787413549865554934377591224441893727611993733586211263866698213938334331142547314722945487411611575786424848713175186755552875636555246453578773492683876669786843338256795177944227932335762669624972513354352725366778533626829945267881125338476824859419412113684783654139669997642364999565981556691493546188787613161241932366845268521366852158969423293729766941674333868366278456886956285876113781338282799537329811188511732735319166396774522321541267716669978961263675453285893294162327879536699562745564938244994678812326372349599487531339995845376226918389347454335122622416325425134373799689476455298971676969742934749355168417699714198574784125949147223799591278386385917574431251437725569131968231765323978731865677375668889646878557857418931355671538299345637114194165589534982571544552899466586113378621479226329794247996224552859312379594283995295134144633816621458818279816569988325581578818455461557961967545265265496927683379415675957428678636746559981111988124546172436614888524911656185649675755143796466876936379496425884265451786985269276182937864839525574379416289548747793921392175829343276933844636219811889493571264168397119636823332238578545431174714892615926448932751756156268795247244611852693888191879437889136847536326341755429216249912445574972583376959632482751733673471395996915967617278518153841786213842288569188644869856178244794975327541154591527684757995948735135391986654636498765146855819819344497162982336327457793845741176713595686556678797277232543136356915645571719943597978599691717971878415572861476223593964747187382739876856899595659379683943794926339956516349521926833848971199184341796544348693254288669931278977747637426722587637117945229541359415874138872489286662275753864548344295985679888467124295695726753131462949638745769857458337375624931652469288139678489396311633753291593478188825385279372237929693319663327834889188144724597661558955943712397767341192467136797481439454715192193454345149877637315616187836163567921514894882959649548999953764731794688882262936595423886783885997652752112888298733637379646429982342296134769859725932879494321267341327611371584837958613271216926746318847367539917829584193963592259916139453268355214754662888775334219298954253998875896761384458883844311221518642413922717829385863634916662121153624989462984965861551997714823251347661866166865868382484946756274994874146446924993814398137345742363145657622767954597919147167479358951293999235418742412259123671445695294711892271375975419646238158172281177677993366739149297957694856783816388233924871196663812391953993672686982758376945398767794888397995723967733949935558189293844242474796182427573943757783722219998873137911963717534374453764598693514383184754277817644694779899432576456874557364887632242643724124417529767554712481823897384335464526795652166684749962921815228753934777427536151455132752814216614758886835597398761718383495914647565784255223139592435844253467218431775617546838281337751174119277427758873797321788982886862269293927639263184187337347116663922731241439839169186786925513725895376992228144215338266617197147749615682883471735633758234222766276618563326528933725728587391114379375781698935871523295179719631622856155863445989824385631142525276351632334233979224389192315497222893345391557445523994733194727435683637734688167413619878517824994125628914479896262464691493541228396695849988919782385316193677869865783455197484685951692515746299241474217253751381251368362483914145963662296548561435673424141437729755887282641694288831697362299857718694727991742746773694264491163176686883349778591472691451194877896613583996239115971658944192791256699947837576167666745821258774876587311363626948496887541714979516174571116241748492989618433494676863577473596991767721237758912924447942971371567235848199528441659964264711647268458719529173278992852199928693975625126896926117284848493919355997629558559784225486675535373155278781798119883298731192749748288434534954714478375952889818569178933886142464732169974612335298393581933942166677199732746933388767486929352149923614443453235544818792946732979268358299515212595717365759333834682197526116785323512647272627782995927235983174796395662973894369116722732361837451661855499452398951879868329627497258593813996859453532847848763975474394946316648478516736662665949441814461721662272878528573928638173186249613663142519525546639798686951495956675754922571671951813374534382319914386432695529561656337529311144449387638884487113913773959913697488183143297989585688414645789733872774893476777494946357115662271442814666881486189623941912959915116285963676319589288677863179422814925189482866485984379854711719398276621823968219288793336837295368826499178565152558574543225189565455855153413152995276817832469921143224548833719696548211294592157719373831525439327987836981256243461371894418796413912837224798567589247498259755389964822756287379976961789468266564166945934763495672848728749688161943465821641518398829785922519613317216886564978562446831736131297832685723961131276619516241523614814555314558858465335581983269753648899818484467923982499613869153486419845461676379269631656695256479242147746549114461133548585235968466316152244687476514711537659286966393632337954838835667441671743525458875869489532957243191478936753837651568165254937815812419344443644645567941697171323471477253188659844989324754461469492732828814371919583346831494654136927815153743388458933785288782556583277994489629517748571156666627683515652689374718799827476292321945754256458293147117756785663965922889521498121592915763356879891157565534559133912883332554425783167529833979956242477443338876543657978113736834697525844449867975751582789657772283671813266398891423665147597925351443414248653411312783345869585731953675577879398976737174657915628983316244948754677493494896696176691187589188569885983935831599334514877231121389714572718823398844782565595595446827596258256674845968989718348912628865844624481828725228413891737836268291814428164717198736417344877532887568769569625998233364462481979743164555257269768747268427883748787483133638186324289149127361616197588621621423438648445999667385966119685855992175727762356697187131962249295372555769421593134122564311558414691155917745727287832894929559569258749581679535576587482447788517458234619564476586232935844815442554783779346548458352877582148929631381179956888135279677498441645453629977412519219395778737511523118846693284619449846893135856584276935167551614455981981889227475838446188575165338243597271165915555642379234544951873983129397353795842544762238785997251934878768845114596656451857899762366577688632745939866591233142674344188419269525584194155652896599486494245423165546543736366222192457694898476244371341913137784399447278462983913947297384816966371411619992981467149793839596611943383737893985632781857479696798478452522166659822389434186271313456946837546253488517999694268619792299882478951735358887684311961599911366962545466837551796771675646452675146283424888331996526249677717865193994489357834463779678616316999664955371282347514549127837153471788955633796659951845455843631173684343769838983319537953989156291769217257333476699543482889374717158677435917944329839721541791848375117977596826655567737565415842498835489467794676738959398972247839384647168189438416549788314277497259998584645887284169817245716477414645147883664591764613427664438164283147269538285875792486637672276871988393992427649171791855278664978466328767848757837172881179888911763721554798431624199756997246298683167387777876187136255721687942996482139971827578815146196748299514172167749234218482388579956471185354545437791999279764227414345777168843245928383232684673177395448114493227926177536287899317782447183738849149427337796759263941799429919654422931842419695475462735292517596447419877154981153679477469292746283278562335459794854189788562399178787948816248442941119344629676691362957741488179557289644418356741684511897979586367665145486812878833754126729191334984147421961695435188895329475837324561398992535634447149568782831569143396422155789264627828423635111354861967728482541375491843282243428414754375637341512943147874899935943867754935278711768813619761578268616599176112528144738629172772488946159165362979324444191817669568652139529539247823873984885664944691588624833137775239472229649154548124199167381471952195768623836713915339226124474811763195251195829888619769685465634662456475764496427454697647877487983839386456278891718648763443112949814589881173318555338359157151288734663953668589851729628758776777889228834454134787319696197258483871167515764189581568779826713969265696283722188364592374333965123192817121954816868167513585998993659931721429445621782418265653727393989438131275443315829
