82776072310741792053092713456639777397504053311264786946422152602305602373041744664231040237929019138216100691487137968773833413970097615914240898927191752845887320193974954150017840175759427030744701445544893283999711728926806342198926810669681575699842866091423194450607781600327898839116351308549561518981341715632947967330796207633174159292185561828552712522160791391782671158430073837417225269885852788126512312814654314247073357296166177353962704517992067480895716046469149029001936462210716326337763017097665811739099990173266074187381940660736228106275773417401305408527204480124843748041403730699037422984606753310982998009165505575789035468862814495918868432479586389868548088994658929384757159344171476703927177386266842541121685449957542841248889778766119722781406116598955083474147858745647077928153097283633471804052833200611623759305900571056244013770443766004100968512724792201479176428998538934644081722052001543000385818489921704999285399447967914712428422525988335950939700367470017265549469861255489785444661094175585567459835876042878097584842776121727292090693065154257373280554804251338932313897211103030597983097035008825451186818020838273632850123713994892565718898064809178288331275635169915468741854537447078867113646067923336582751373369329327368008671262941010696226306585272373709971960669583004297928242550110651636897781785972822710123633148885671812183602370364320866238282533621770663641835261316193904228685787728428098604102632298394992897054260130504133987666082255378750944562442125321168114493100506641468868208770791123892196912289484950584593140956940963682564850215928603253352468220523735560980911331605569370386623913325987930812652730536746880667600135988913234941069159320338576949699252856171982846721228071346229106823700164963073719673878296346226578965560739274413031164415968348081990371813128745705305335796092631381085613622905256588478571589404977146969542086721391092982728243400271543054988578451702475214251270965244988307231340255824180177071224587119553511152477910449024805993549527904783620974502390400318819163810703071948079341623004019993461992571764471435062998136777357335513940552008906501267570914020267223427057252493882791920381312727621682101753409504013779369940528187915959013468439694973955254140310742907133279097621548956527817762194490052435553159345608552280959247274996148407031671683422339113049434209448914700722508427618056507423610605193140664496419325374151959662101048614740888058386387798946268368599663112448386442937876161970232842625071503633941529093518145529257941895240854411106547890183664760712022544022368573341471558850851754110846060042579462524013208482895822608144211083230581704446678562672907556180199452059404057974866990442458193439862503231487036419134454225221380606670247536222374747669250401368392921972493211863832922616958899850121161990984804495243394463088788037511615653389514631458026051458574180228431983471010890942330400436798003896341598057837643645210453409116324075016744375009639640583364422795549675416196080973875458121753832420643999865888779638627120993620158402946966692591697475169404084358200310982334867772560029372976119877161657132619127635901503437377450386506025300157166766799213915561821559892203906848824411667471033606617156206037579880859809480530719900880780217499682392826797785239502939244933932937960714240048962748980477086620739987602007526559797565533583838026497488805416222117747833601420094032860020400183270410270742998343633401765249874798656829888102353603528978289746448014644215371355930198611005266808690085120354549431343791975175615464663269234209596831621330404104081317652024870155344115274138165735712373891202820258452809223893176136082946628866991310563886146115218211531234669007618111142132436557103189980938815541012004330660417897270240247993385620117431935368325906719762012967022565182760981276418523511401005828852566181377363847189188612324784984420140175557859994573727050018984232795300742634663601364875238433031270919749391603063308656239885434445431920541546110175263544947650373953686876210118980579786033577791055715948946941319994393316770679047288507818447173914611752987251807509280521922161617414367694755839624935482961396726560704960449259629492273344060724449519993382332739484265150730331152653043566768090965055103441881379787155228114061347072868411407879769574645005092838967347588295497272592971933160337333833375529224473294554441854256951611131767165275483183788981271911171074656426386013223855462983073954454098586543813420346659239501730818255880616518929269342182608406047023915466116211231625308432067564307813585785400377736339425630745140715340257413014682147030486158843482609839366805742336573720807185082565787680260707439183548231113799763409164591543682256008438289513922486973318280892880631983095825265186561510794680028687343333881650856009501323623056102263600329025928998654215593838850356578885570769851344677304915700243090803717497875109942767899332534135018561342245204342641522092496501070870419068531810116552964576826118372660211134176420470547683973401105632327241703925294955456906573910650406705467978937696744260643238464199166459431679440540298198517358871528036198130066587262219825266139724076527141271106000987283270020971666625051165944542672101665721593484002310621491705222106388184689353677984069197201902675151990958077246658332248758820680968545329539967903434168252168509432673736003838004031089167995889423832294513510359250225604822911428760018699259717241010766782694817271395581368474637213874498826620258007210499816663927713167344013930802609088032285201288747184793640378635104714477261658619210607196782067172479818122173706519503487470109007860584493299748454548155778940988602763466425601702980615970935571824028409064158453348080912205889106282549457294398113503980902936613487228264114750703574857643177970020932946547328194605482757223545222556831999927604121994798936547883837661784382830132924951008274459431200100664327798931227834066135660058314505343676441222226343143983728836715560068384205290473327753131522834097420672291812881714558904010708880085970134980223661751325107275648940100986008710951354171221092893798654486577587525295912065680646616374101945789302801295308032886775195441476012724863069688185162184001462143774995829890955003939358703814864905958631675602782960898568535462712358417575397962316702133294927644100815967273891210069177361398665030145579384740624582782242827177968454477278580703813679468730440357304935531817380770169377778865601829980302402779123091075081380094466052109459971449244557911660143069386754502824485373737854744532394272218091476606039719370805618043569665264385198657925526664393020239762854926386758110047161802353925803533537316761542296207130264427506312411020461658660437550022494258889388679332341507656696697465506334599621443297390503548701832461848239666359832921702418144374864580064952569141654966724112221357435433993663894200613995911859537431576401766665439085466781362008615360630289490415241974118586619141179151789717100022946295194540725598423789233383418838323563549332110139732359305561596951726172919053817026307832844892198997244156661821425054616536067567827894764831805952804218967015405444002634687556277411230832959675613387947517820551578660133864879434010369843546840401496437890875656645817238537866519395815512355891205226543686406934404201328368404540808189860150375870380565462164098800343636905479556447253868139921745007897694636820622876389372854782844606399864217171078661542372985749319531912556310176245321954486089097629392357786998649931738165675134662571849861283785669655969017620137570215885435922779587979888256557987847517213412804585605277116403403599297659481939543291264081224748899671732522931624079813599263876110753810704228977466383526132664216622796722605054235131498462687823318970667396213031201373494790710641828681385830648008893294215763817645715851315835603725988274213829816783461469629992251921477738797765442907571400028249324773469760293464867463698265956590698852506764995892871525884960839009086084794202253374327016173639562010390601962297939481865841767662319424508815582880047394535668626142325041558455493963213141449083273673251585131836184553218987868153811985302815836582998843317534406688191281076611723818013117546840053039640417353754551548241232118367971278647155243094325548333395807797724422075439579984857681005605991925630296634349104079791437842581677786763597766965336148350704431645446449299126544551778803481190577417899287040144037228891008190420544443446752456596455052782704185181116766757753185795036024067359904526614663077999367975096683366412415312584158179853748441194413556832191486603854903472841086053175254734866589854455288200714413927194584656948220907656924320775613947807404316347096025317114283800981646047244164197542136749364455082099475841517262140392996600116565198763926209287166012353606161488180038890637406828874672756460743341741422455918580671089215913380769958532729249284226576254229487382895131607377830686061224906488399395176429988000218092651012862923642420728357996241525743607983521292156147908103609907954588514233400490455400417703386690750295396243369397632670207009493833056824282723415366347022119914789458215339400565080430310171735026330164979993906199418925879526158529956501559693902283839407387514055604167639184932863019734742305325485113261976102078840709809544302123449682601990957484853285924616529991932256794826137495631172373385907670983527881652678682015210209686893992831683224083818990440401128475834601286061963212924697817095753524863115805128359162469306493717304815826355370753967344183947725693995144413297844318692173607699373313645189434043813937699007779223418032927269420476005290266686102360232041773078768157842801376007241417429208729837156627942353373854333600816145608111969952907653701927433565354405314428821826583030175540385314012417923712314379289908608132182255146095868240724355386950206675286542804622979913674679551848704915767710094322301511465167651445276363703724468538050862255080830371562863302645791471731993460184645306098065749401636844588573552759346175457802383863703562194436722047038200348542214735119719217591185444569454204052741691581380566140544271566733341450874351081288736435830226704278866724862699810962017546610378899393830990147402799868301283734314633475634120148539867812442244435005352456551321759691968689553417669445019521281355667393851280249985900529437420774651887289429392621877161438458622063659069641788136548494715749235247487269741664276107359893952289195600846025687865460485448184116282721335154817526527266098443015284665149280523056846039786022292712171691986279112176452136710476819331595430323943681302393830469905450015782195612376387510197968940879494512430350769924648073777237592450687795838798416427036757596533179227998575627284308468418089791158185403251539491206346912310823941007896964691004100047635610195129086801869931304324264713515069369163808529954409469567658327009972627516092558917894820072941275241154637967083077169881825150499991679146201216702001005995811365534139124502722320864567834318271418059938362542530528545072319719867886981417692860487352669984123768931008746335749101453444713390400562357700553157781112286763746340196051609822993608923068975573343701697003438444269701505159871691122931971866827952084946945620062265993090903629235118733554874477818859859993607216703000383580559901581789137988750093294394744385144801998403419004452715992399793362042607999329372141579404615544148388281334903784153875233261106522172882255778875384557524135064077801104730155037731097508760555836015534447819146834516087769587420359907421934720360454682653398807655365246165487979711397999430344918630250055641062367274486069683566634324544483168001450215763067839500969222067513885123839404777439695034811799120619995146970360712806524897821373221642572885601873422548287024324578292216460678070019010184707483732540386779311393976839189449488003257006995921636312515731074155236414184974153481239870620063143213922977121698492049710930156792084941457920095277810833742488098343243316485188543257131617638298122296870494355905829834653444552828245620220149984225265204317830786373173895782479493451793748282948662262222597623162293647972510718767079736172332426713618825931368960003623893274048552010979809519025664559223824757955873239452461780623102758013561375169645952368444135794686321728181237604051816040262184909906668887584843174161154444120862043218008205404792916087092488756224838108355364197267833834087279322106249340963727868449836460472907818281015936607609333971562219196949072498079782674761281446678285741654912731768969410404576127892820849444985289156777521391422131181595385136032648344575621233253013312540477685382311829445146612709167157958497487803954903238738533966514137520632516421423655375338676736257462991798459022778130599477309755516848315623344913382833240521059262277817827588067698099696261708278745235898695335242955966813047182817327227876355651282544422378815519042168645044002440452918744999309590333635238207218932136873072578389723951727055014132327026119536642187017054361974442153539534445045309392713480649668307781071365441121337923532717475168547480868169160889677245611499776856888758162193051146936479101185329590434679038332596272259255777281323324047348689307383850039925297666833615885427444427097507597964549215643673697962210374819339518487207144973611513764995992643628384870569398999859112127466889049372305180730461815428381723566526382427107856702163849762048437076396821527774007003311206942954981183496641531155243386205754131882734532268431004487251064403241150092801081651566842670821560416346925718075576231526626062236535554279363365830596483285270117447752038643554691921132796506312947233163984729320173555789614309155610303252944319377507151659004777667525786977805550940119120319889340311188357479762415608688378453045021722455241131755876158425487704037109176397671681174597127626369456856930740399787313709255252883208267861143009398680866008487598983729956057471549535099185220009071702832841194992599238926982773700633454913874093026837630327508018715743255120696004882868262311087228978950926199609313897122131604374065390804337104196201816218108028897719133843331358278995846771953084424657055803194664518029596705167634814882576582467316716246955655043051483285913887790644462637818076087083527213938032746130495295511938517094799066347925841101083692868729152695191909662956690745274715618843813819206544107501783805952276102075454599419291510286740669895787568448915881440766921701114466336884631579156041566939164056640897851691643745901423386458611843999468560732248789589652833864821446628746764547693118384658103153402615652236872461826984972019870382471620131148176472016735124605203573017129543580933575434084163371308883200973155830001875431953469937057191019866416981747077529973034326440977186898219432342152192081507835082973443609544334925961542026077163879406577935760709479348883731933630629464440658829638645055491239173203846835102813899711357354815376308212290947259884980985601589269725046816719032709335317845050355619494323131858862746453532486234878633626931732349972849745897927114162928201380136457737582493706694744921991521013638134461029311453561508260121225502740259075467372193032728916830384452691522744010994658371755277917520156356846111209275280546163882480768753261627785189255247563198378173494751317310047649225017333181707400802659413100499883450781378928527096088766914756832871787703161047522261442902675705320816644821642841460767701685230278912271397181539385128428928179253448110181541851302216548155708067987926282294025427565306504762560363193046689995085069971115004598855324378287672760290739546727089895789804558007644902934523713086963369608645667913990624712928441493555827626647722287477804931428092942875463452328117601380041742994304686275009832920716958498791071069520940194139111181279053919307623684297726682288143766652117539091199784170970258838459840105187580080770803096786769292842900374560017028895186761889185840524081545853300422032197219686765199441399971637562150035457191480147030732965746539776333790517940537974609424015645497388784283588171198711489013372112950614740622042952274073147823933233855616341394258421353507880105942720817944849848944513761828124513937303814221989460541119688876400446366249870366169279216661289668530621213926478578838991373009030627670559577458271218433534117120190112898274764319528360796849516687744174033120542520441923161164977040506164114923308399931005097425502421327621296238204266295510955391873565032394351216611663397136720156469927335842102116026414704586347660806471070495939329027375804788650485193830702204785937298406300882297975892023038648338764970218689373206519606739427170120116109871015658680159104121676769237013656748834665895798876233159902097781801338272872224600957042934546347970114993262277978113539451481924503317247180564089766790352588012768195096640320904706262633474372299896793042552646185284897391655769423430128693934298914145430660063502368683597440810285262856957796893998235145525634635836253534497316303758381677741805667250847215322043703355739459559155837160236790067581902504612025765177248525273311572397721898697656811110711422992626948252232981523905305693709816694723684008867408602239620880326518052738632565961832849264059840412200413900740100465151429313645576290736347640365798830335245073501495522113957867490586856993344225510127634102368619304191593774000159635510157563389618408030810146122714709131860698570929452615943595822256323385267201944717697189767482442409483953569905207270253445771627634372181182579830398978553333598842591763646021385793803774425132026396543483712694687292177368288541174480020995324765920056623009819826569681325023838309965370890083668218853130713504620602782056465653968665020569082678392910948242871216566917530458990259772148911497994302389433986816309525901121282809352354815495615184673443675000625842218414811791208037163282751167239205498947085184194302780349521101432639042308488202407254003612663647466356563309453601950386561403526721621607048270503469169352454190994246898937605173382882161483255456984749104997516258664273123103330906265288611466692816446851475670450550295737631030760872289652043214432412527065206904861382692839635705459181506520229394596737355930633845097198635587095433004450512264400545012056506712125816683544753747985542294325994614990245265034945029499992813356228875000532692604234953407210574471502233376140014809096363351162218825381654292957828433680875396350147989625996469940974547469196216468439886515698808797973838482499810113935445297120678913398580243459979371660841940259149323258084249451963679839351195412180371546912689665104174483622545486891428859234088994712770893099610320969415795980015685036954633100989422583259353673354308503412552710034444794996396009955819320153553768883431105384242563395348069372822528882633412816020904624127272836775235314185253133812011902008576761380116852570130819444613120610521984180914292846852636304210828699096461057957510350924957333488863631916117555006766135306531990797123600857211124456098415807865404905999964746224507213823922429991260223777677757548225484243619625984193796353207976107187328076292046860345573176023739015703331866259576308347639398271881629622633240996767365980175956828960903090353281113366818017986312082640719152738708845128882686691527102029896041690882070062223623466350653353452527751786849685756176650308624031020254432663991258275120582870339462122446365003688984183934686383500354300181473800541870199598717087501587490158952064772277405131410983794924439846160354869857135777625276815529438239703885487997874880963916301952290843626985830235394602425411354189020450527175875971917551230627436162454335779422836953377002096268490355371964011179475498877669538920032390491449006393364620138659493549598268212374777292735069579048126585936307939379460164186542168272944721674474796308589756355341272563264465083619868892996116171598680460523754657113462023466061930652123744130963984301056020363449196307911118585828271647193210304538867596924016160272437412191112263985251222977163060435344523723142681875624457670693329988832182402391776089253996761375788064676363800594790380102678073353808501459795087662350680475619373706257184187559940501454483388720839196717470545636327805550603859560116400195122992159760654627233133784179352906001652425365173445413111816121865860279786441395834603934446919010000691422214420160518969992913561325233620451472148803413563393995146221857029054202755964934472144714408005290896141259305261429206391710043148775014672289562781319427719539964137875662211381369039976102090828020679620740908450269329114448138782706319286221362161919265397851054005013867636705165533064061294762973906211975105744997378251603686995365865641673826394415450113759580858991311005926755951497569702937343633512220665506384635294093259188260583940121813590742803805418001764624152014891554990368627433417634331262713501480041230817258069438483843905942356527753848212927037840505828338879879142148115677544621945730622681829669122725062013418958920326442161043895326889942099640236884527654369825103976489085381332721984281467269708256653779525008291874157178463742852292166741441904760638140334515489149863783595029411051278828990727993125984304376850874489464202936693746910910403878656308975226885592410488387893835972600043916845364180648462824911335318199615491076903900484184719739147433670504311723438601405288979806663905849116100360770913689096259150317968950245653313930313636265092905446308998123884395479204340612896425627649542098976707808203393231337733662252237970333255403031356531826458865070423631030796457174679601052876647634385431576953076945424650699257453660824782618271102128984364041330563772953775322345029215802246693226999607330951208180202320166678517664093042299705018829871229608452241813749846555333216054078683196504210793519151704130590178498238008925387448498128254212404515708718865432369255609679116262226489280699399355572120008963060184267867420800602065708435653084656834970746434227486102678389021529092891650599930904405222146309486759253122696702601136064055197921725696835113808121070797610942483405988627063502905602468117622466242537498880664626222303605978051047404135611649144121458233043668835543061401455796844075982121910749281695161469292130350913256295765869798617584855654196936524293310874093868415132618478649365184825967728450982693511703765155200323694330107910780362837012470721107827942644240742942339233455322356246486968088940164233734533409951301612550518477446505988108954573942376576652879021165518667229007189825688879237826753204955485941973311454874243993743666227266064663786144187204159602691272966091356034484850782375003014124317834897306920233282648683775626317758080550242379155922540652501462745585574801766758893490581420917824462924230701214066700307448684900303666751869655182329692668843604661960621729311520370561645410121917799609920847352455961300102293882415078314146942036356075132057233716584957091559436469573384319278270928345206361149825055962813630993747774786497675861636660477258938873167517938384637836703135431260885896153153167118338016531206701100544792113212820702494945705862734755916519819141145357996315540977428789687129301903922445142218599869935015635116921975580596953843913183831546330118605180377029963729489788578780628915219997963388591060078483190621276113457389554749564329938176622884444212300249538592825620769350402637989600075560540508124136099476588340248876597346764674033439130533627001888919019160466514912847591243361852164977495766374213743313200301182015115586642640684660096531628077984014687734766052790433941988095496572504713764546869172654367137759230509440221422649945727750283471878910080719688831968818848152975915211026553503723635787652661005620003053103878545916261040734019564381992400115254705991405721387814009690167426887401994027264862791378629753609168875547541841421413573355897788390341467858193781826765557856398547326324215229369892899455673003066516737536393855504798350653356609043327310021473974756338370692017162092926084311335070361882076326973690238473145080794445142636003898794435028712131369062508683088560224958198311038331248785935913907639088602841176672964309584418724558150401345768150705085269883749628287752905910820896412287762855645007306583520910659424770854202417794214146724481396774867907049725894417917619392426362430076837124818638437521587827991153952668356132097345902400460342687346862115410785636760731165014942683625260323386414486522506616256753323251790114648411573531207955022152906496464323715549951760183997793243490975139985001793455004557701903101934656720640074544744405098594638798440269901918894211224151265227826956445303959042438442334324104554454495322100257643290690067546130785042298563226746935542117672836036474679903104480788305919446774128762908395642861793115484718989239020186772828745841197008675694255768169532971676930938211372155212677514990774501993381887358290013048267955242262093843685795373584141918145310436557149614229312935037314465243134591775323614718061306131544655642914165543620612439705799223774852724976823274117552508826000035918425726764764363648465409340497578310798255048299459002829156049473454276625386022267509140857121763798821616771224384116852895438516862527397674605893183632232501569748939698942451286616731150467408330343381796217313759585696845759388137796205746115977366076169431783552097868700645086649767840276596368714217592544779793057351299023248209667332417689537059990373536332257417551269573135585251908684914325556096037548240253199488506788711747212265997621425226182998958029735715624099934878234128694718876333734776118199950887976072049861013643394131448678147206427640446000211854621811204688660170328821081507727865065421221650561257812707181336242309727346932260578153632740329162140710376280070612172239815975085018691079940403156191941365583434916611320841061095231252959502435448172266664256358566986321952259950225513842127783644186652526600628908903140145833829905000209338234202062204626496530587688686849947704216903640841801131755964530398956366040788473141841322323145245691531076102108221718252915348562694011140779665658980627128062744714740624724184962093147792224898911045214559186893865462691530478611745160292496675515301737222165808018119055357072991626791961787026381195280209310830179428791867944180637673180462130255956135074654465689953306475843094428925935774962391849986205756873416520631442229627201240837004379454913044522722177409262529222674243185404369995694185475623554705976468015897157200314237749702821823227223838030841738211457993171083900398260295886473080445729105457504964702561384246630401719471363012985910101755624458083347313801571720850885320035427472378896713957527868946639877134702786605237995425301664185467097592023468566323827765116468176221607258178955872703709830743636167957778126478987740747966984907134678523522887692364809987567384395754611674877939832614523865807137523653040620248895679751251036777091380011049859465766791512660472223867016990167466767704420222778570253923509466360296188891963196740401448141093051534812672747356557769421760750927749130207222537053566786631275292731621517766576850820219176738713927042855512751491179834571367979536045076003249758085204594966526820113206892397814666594521778604816812395694516239845163583268116269124224174372088867595523159388301301799012949110479253270447463158738585402688949767828296112278268499365261831488904659392017038839804831899412481212720059465051367135427832122433903685506081653467668202179847331105041310805316807885912700487644698674152155432225666326857882224482073685249028374940953565927834089109148663242175609587809675989020955408819316060643807947569265553491214030363594309450029169907297650982461649495021243337278958480497893648584403040474451741213860493587021933447515698485745730664064303200761573566227055623081652049502661843742773454099372986345569802301892900502772323295546114390182763218629612105378453829432299902779535741394289521750877731313829242888993695302644922329712247761022366636115910494646956796368841258650982441006133284511974683183243352576410067035846608385747590633728357049094757179026322939719743940673899056807679237097138199810036793731824804046678127140827002293099436772554229797134008633034693540236639905693872143558227621962042042932619046875055716168668967979161562123475716150935069135827596047355351085376363136560654569116506701065079205158512387753699479995279046876376212760109042285536959385028086748948656204746964807350236259001485542961652030558674449649329056153252536517072242561096202537600726463794860060871253051287992964482568469736959214138990527428775226860570316777845136583065164790832140621505953528562216359110990459141935914141747995704423509077127665269367249710984089886594511654285454017038527195563850155753027335230238769329330283749106333535126533874817375312376615309670140726997985174957582819115512109694647980279302051994454756844069092521030491553266826562362172800949297815633286569774146865606803015425636079813502292806708562112381753055671451912060625572894951122227500330354626804626176025535426814126408622759710633526087094469066607656321351047966902002624905524808980770225982099179459035816979245763991156200971923399382425816045700004023204987056740273904309117281811528536939256849424443138079472304353946273944946476802824315321870979593911829080278748888039898194672545235043685694847768157533057990831541071537534741077677871034323760049043289357004042757854830084546481871000946300873954453299120575514259128035284989089708031418492470031923895013647131327691773670067542181578083961619428768794619971725653554029492793311330659675390169312019982607641223924662496685294064215366383302830864281823124754319566383141810742327048282201737933759374344193301418508187697362012555955521807755606588870833483636163745158190758469641640857171486338902348564691780750006107489311587758728166795747318637145614919860706269402825452976040021121310200451641030136352030352609534640492736650043750751531077209436123664280476951527333949409420047994127587889095705237001421530702641917405266942118950666415071512123554274871235778039899062481898375072930213900409368183062763174874391347900919959253265357021951762481253623177569979657980640781948277963654372218826521183752656168424160043058482342504826498780358117563994070347300556396219763790924951714541990101474747098831988235283599085704443483636098896590209491140812055467441627487453891705941075300426584713412179203455312847884094759744765821772595605949660287393647515786586641571078559820292023969369400752808199157148645725887253388170514275675223762084166904819830420569428803473261297614261692636954808416471224909621698974169653365589346193843443572530984415599758929383905425590753904141062329583970429156011529105501459389079562190113343669872257870940944684617368168008506856943243139508683328923842313547003863094297348425306451447322463559041068383984771248584208348700152116721051929674952767386410373175425759437415382082124842913114031037755578445281682993728040808582327956189801812279068583778714638591051837267810794100925570238799357256743117384750601568398298639556326636995144423222414002898526721799493471640236289104569819026014861581609677301878751055633755662896200947513582956703297136720307400206012444907515574599263975775670073342090962212991999140792543782372718397803204996939006312131124361593421202824197036647938416653492959609979049383737708117093206385442426220711569453314848527797331615453039959128816286721975670067771459056204084512234311071928782798866339075742407284966173229521378797750020471694268066412371862103776379160615758031529482035766246742299703790903771274107399444581231804959124899288588746257949599941863319009755897560982611708603338809449624343457399907676302794041024574554865309996669776616430296839392312433204154465220379447793419375885059038417119724219399499027428477027791376578921929005269778622249158685727908107677488828448267050416876315221366578281066299350088425768355164495256860102695233260240367398530734443378850944629752388026764662326346629742771126031478807177153850524754908436152282765396070146016584254295668044661032217106288994866625469170569180285405054901851514936683569623562582912375474872914897854974141855331673302446860102524085513318413968794743811179601606162831305178674505281932097230441407570767331552969779149148303779859746032193136217612968237851415337146493407180938507383490926413751797136224787066996369464766160563465719852255203012123095039758595932573359783015869868770640027602133318297516822984019268882314408077367409189571433262424391569126559201757792643811519074310341869877801917034245286498442993497653119640046423542844198749930301722185531789375671828886129090481566091261603356899888412786794169455535289934357540679938107913260035633269475995639551714138509813078353630284798824671923083515870628874889183008045234842557488120416764492536397779383363942822817230754771366225600049303339329035741601103204762276637874738290538398374820038084064616246034132124707957235330206332375895955338472635985109275571411335201299966676189074883643723624873109096728906140456389812156039029798391899708604465740681715273513029862715974255707670584237958975367655602667956880481678874159617474663864120162437431159037747871557338195285455533765244320283009057222111491596822717080729295833252417892823082932873498798019638672286624798921067787939931010497173404215623139735359166655906713027056565222346562847263201294457741479242482584187961997930620092796086255179830341691023419837598361990786202716701379698408831294215550280697231353802073276348155636362023835776594263686858255778238025477404769130387402952153713290424669923935197759502558362978563474236714152419262899361488824750279973922939886291893244678513497159636706332084369449514284523753731596326243812399058474488471570440035182316971579794488699686842647317647813965169001636140127944402626774950611897714570615719998674447804211060335373179134922122561720256054233793415981609326623913928962994173369374126405019201407622581922473594768826204710855381420521730682825053578836392363946825782908532825460809354106365588908032574756682585903368614633604451917255924512283032917257826277296783548572609612459566916535491734636789514344395324427771774219479636740779018800586614486048676526534822891544833420641721217480145516764246203724250955134443563001512708660742948516784678068224197562312545952818794700357108715674233931883611740055769647860799546256648597886820900896344400746637738212827884715278757437918865275953477890354656470201290124890332443507478659891911928554724224106250837457329884694480568830227064835914739694773530362543305334726246401511134213698401982656748437140605770302429851548408428527339290108911739942555233419563603631313751760754788786024470301232555630212601125762496653123331828568804036994803448647164787915689212678451798803601383506864868042788985790585969802554749838350126280019062133474419330329152254286184340756635040292476759179446376353844904599076113508122902649249543629131658651263368883542537933244929417984444581900230429007358403589355128837357539835296004504827373191141178664866493295614558246972500934343532591898683288193577061479321380226529435697940956299177056588110102973940454851618626777701018956449720072574388397735050545112701656263693014877169753623729867538326318542373458803294808533742079786170470130735427223728889024882117831492072372739721062515633672440734573547028421671922211743561624486355678468327464836884017189994288098117788360171609066167108793827982232544479062655548954326660608775778970350002202320246497591984475732013130608665725549872346316959448404127886849362474502634247049726767769854871926969599356858116620107598229010946497150175346360771311730790875859650356229848605559308940894614745024362144613575776160708990636503644241939294660691895300086292626622552995571813109357074783087517922546205037437188226935626652219527558957952275889022270973654711543459920422463359201187044286728583657204175925774280232771964529199112634498730624978940564761890839782532344468964487729956247129173662158876441168771817940483984229550134653163917014457627288938016542957206270232375407115197792475107523491388094002155644243435097213580437738021991870344982744123227636441012613455910608172890871325086846411596592364696695237496274773816115386642883787355425779952664855362565975734812520980472873264271704898100663577186175800478957122520666164105296013642948383563499211188290527049640065926087186183890434903962221948468692762939019612728141337904136542481737007672761185766635836593136908614062020704390801112107742181082295189369744960912706218048206055495200548757498796195926841080892674000533624380167049847214798768716176549231342205166629864591291417608469929075699467695287552561232353447823830295754463803042321679164278450700289094681264244690313483874037395009567949057307142768137141844099851444368497132769789452644190927820589266779647161788515312875600176928679405515249606333603183895459052234055515987397277602453133804724465684307275446470977383244796629970959698686628472920328467590849516457843849851086850667486161931204951400564317105913151051979985385699990616723150002099673640543036844383130462782589648709918215557138808274219050496645287034821587408209393267805413997938344760015637144418768565856553089837645975764259685917291207641631843358348427765858855813819652279112427877733222076843546942690295865240944184593080207774189274545949251850560765578871856736146311179405007118835334348737746512038554033304869990089726808601349989275108955666192116929392121609987396557954387117118884596012349380128838820572258321351078016007698005451052302260459787619619588311717520363224716703095055828040905516438290549216236742183523622301919837982567609351784519754526234540132921692873808595822064475344112489633485094186821662576432869967725468136066862858899475957983215136926125386158605388652842711063705730049699492029142525810179864256142598923761642406686812855279169500664958339642646598229009145260043965331088435507383066359105566292709419254114631438048345565804704827354552725794948962658815026177489039905637495754724527678445162256295064188123065599513453027260576679128014865126867889738435987555935083527179598767439255332892607830523279670463680407959644481610705910624878739993779294670110766465038242556311491822626931449858405063606167838042801796747986723846030127921522146723450532636822357925120169888802484103033688787582117866743888735566589235922070503415644482387752188004445151926136873459064372454484000114293775724220406781244124789596113027438763039113147748244605558825400071635894478092428819247631968854742409602637093437439451991434579768080545783429147644205221619751688840008004974385785306194291033074811934188630625480105113134176678066147818719042197581263343578682813275688725739563081064818323132649626080013575118892687486509909215120241396706545891686697479126460230295242274509145551938577365929510837867351134569384864399366059610431969032820383267796531685692262047356169310197574092655126309855964009861810305791478333934317092822317418281910995752188840970308229579025042483425601341616996600668047005710037190028434565910727180267667876568694804901150516247876276005246474291595720226858183275600003197386500471908913657311480028924593638105543605495083428237315671321884659118442909303577138703655468345988521297428135801463254102510789978453807647228737641134685471484706600547841641605850496028355522289278159244735148860869374106972051835726974101730504678792715248693545698582161185144625684729643319052238938779602488681169293141064600078076224729941718040674095184335250377275520761630809403338904183262557106979307485965186872421562628768273967668910581272758009880102484644886003897059205997422253894002920915132266807273780220407660607378952639425521243517090680043487489283760087065191730927384978710224412265980404929113692589210704487712894266382226260414041900154188709519071368806553086447440303509380430439174641468449242461110437975814880648511716025310576197660902995692340610910859229893360459300265270069954525137911133833621436732010825110609854337712184354147076722443591186517736573106046534858161571388449769329095080408483319374424373428407641556734742281951350105864022415256331203094807402917210118361613851144022709816325598976059023628230244058691130480450889969834248170091523565786700885101854915368398996084750968432211694679455051668035921317978021613485950612875685527196212151156707180159154536954185656505862182828370436093568215061313619890108073495328552604469902082441761570874508082112542279645221228256481364721445810655801631526324996765564340257678482447681820433992416429496996840362187513763090895353903895031752447101209179525991390945219940188816401688411884233903977711375241033457433294410960510148500070495474869283720577039923776783672843845696814502399647282250993225828789253309850893009543838591170915272593781861652886396065942390129006057774049571928211352098987581416944340110760310365935176054881341884369063568591374738101958908175331647615906644242863917377903269788264380364958777126555386135959743975448653100507697549366571785886492934325289255575823325622631251263516000104333539542313104315176399933085532380091553325728538629145287285194524213904520671817748299508870407506096920195001135131378665827990157100306241530242471930774947464195139318998263493873341203312940602197394946795724210802937920307359632145979478760014454287618379155863123535865524247285842543128716516571179684878452324755314055629089948800577945276648890819836554025888774053187799739834359705211453544936486817122193074299262843120170769061438014837038955561296540493125625371701231219101057826537254032085306986449349058467885633799151729354469997086628356515890087078745824309569906422716155784990976671721031516713807910616244648396789111718877010634038219057168496903211856774136880360309024210472114710114301105019927292169966490588687140848710565342333004486312143013034293639163972828762564355670892483072464136363290922425740987068404477125331411245160159784253332039746537889466477113523097211259752193830368003540240570942993405380076321145812960022247847776330943257698657709871928813387996027674250829814241763056742946712432810067651788806735250276657070418682532753901865200982747225427113441219748918979055936708749302898743034127419978468973895346769705975173334167508853746283619506467199776155240197890177085217450526341722145595642252250818690757635226748198706680040151158787645548600179246719686441139050034714289523129121644928719042915492054968788753497721237202880451496951584902501094917226461181273033962026883464779568085666997711149747174333185064782301305728900398990522660587565492813103319981021252229155636211182544367789383030915481426027736076213221200738865985897153321689784631056740490294192787233006668842912099680450218369661610974710407875182138384452114446337707349222519008922742538328510376970314794389764811731850640185363815879684035331335713165777783657363763056184918714763450972386758823250851739948407192649799163751085100192911498747335462478261703975728340100705868348006400920699499913132341171132775856640559198132533734541724539947704443149459521311547713710083053191092384723849961732395834350940067264883043454292724713364201445119415625881404937037810059801443757868912980902741018311316831061140174663072831622110862701464893950412659539241457188035452690008001935882408106021082040493320715125517889132396641681321127751951422655796848659740553236209556039255152968569234019821644235208746257375090952823268849470583320634247210076734306469625447844160562979014712839129071776977057779139168101472615018186272925090656952990018231902693757633753930379622282838287194764065476973318585419434219177817139910624176880091208421652078431518490742727135644853225399899530040371563633095134555613004584044854732552856588331129521566107616616972322277754021854058282655387285168968299426768918226744852698787161031531303183297436061325761742901351941978756736464585801310143395840592623053845615789239539522757740576904180622383116207312243347209400901403280956599094721734904275067760777568103485902785950275572572455826950876731582555032697142837397785904503652305505560239610348506400232400296328031001931531197488570622392085382213651149079716642437035287573940853806643907174957253178621828552117003424263120897874241811955433594581940098797451590030780086371674056373883382472404970350018645208494922079321859031720356416590796658633471189597404556564898255446879763159430592297869758445244132842198900855912863990807551294780047440610096183923419808055814621367343463724873756852058898840564841924786802248253988181806706244037006706127578261065590707083167979086592342263449202074566050842571398706952052026541607488710616641657835904400160504436736058343076704721060595625292404839636038012992059683528937538826907500296245680605289694841940786805900024293734534223096252823145111899116881371791618107552850203922811576622867184259136394665212752451328326564139633908713553915740804344547657301479392794393456742454562343815402708802152075112728084209548178204612026044812685645272105433663410157192644467223437381967573093682643749271641380073024105921844220168039607614582732968990823089040087879771665245217046094570492127579117712363337923672209668937486591171723715428822090088167198715158949391143653377873497062772682803771014403407521903264235254722182142585177105342612949463889147623835391206129604213237911436036818041487284309068976881168169898549987509060014056061895416993850257753354017157608624983374608881906153542019487258865876708463586551895299461925055062684133527357263952900609191643056480635264289652587227570638174933387738800809537670826937932839799527639316105868493188260343570411631571414546327997012533982620597136327438068831548055268797060840901115213089934419520019030443858185788308329928594588594040571883564979655365044782916842618663820612799460208082351908986806948819414708864245559169716901169625920847381369110642067368809102371349684823545057243054495417784430121006796263178086837713517016684213439509225700478619094692880060195413065013165307912456092570871823580829746927025935964798903953397277013948190410999826892884594730251334894140698485073466335947304101248099845984524200687933306204945017987462110506282051630645976084228074568049866070644846112375685517153350278347401466099000081556088940803343865875919163008972614886779728845700741413212692144061393842278697542069343933000645329495562078538561265697847360616822652200778722677261854557649107767029356892904346238926258515261132317067312189988703918580350301411270159871575891864260315857181222155609392764852633706938310296826846256370950403979541576591771311704963176536671538475750872699472052888400205700196647513272026136084932934780741345540875190479806276880605519330386847673664865563494218791710947923265089413366535807934401685819512816858718335597838341043056433713662306700497731727465707721086430837008429502110739979270713424118648750537571127033680827228763932966638108899484739215785921169576788367556281274604879541932508697567195358590212608602996590275505705931997885376083845359368694833074988899625541691778048008085521807167296466635889655201631377280536145521209312179824618956289782875260632587823544761269990488037105440967959380520635236743570939686764441832143601015225003724364998983146480149313970637821023860663307800168797969554603252273802999355223579941092233354184852304424152692690414983780279950640601027859092801275909063343566535393702780556630030920404884160418264138802522396489288175616936461094464343831683354157845680319352227495392462634522782030490590825657439277107219556741837607899107373494856925251804515950170707253036050592009672990535523321320270666045326287807909056984814515809987687654943980839350049280970747492513402535790307514698537303384056436944422874123046022803882122308065387621432122447338761601087994230551072456686950945412734204129241772649736685854688428336160064955288720405828222130645355188447476984412104164624567535582116756112495149597207767265228753877093778178408027555375104614171632208536128029861360656093833767485024116108159239927530504961056282803887589096273361097271659318929594371288104586255213367996409217164448930331498683587305732493122286156483632189759770659740782047686529590344906328810475267364653600450707832616730364423598028132105854650111575210170747404167623037056679817601858038776718941370804346628210649733227456657593172133873560372923686262487682154999596561352717884953937038179967515668780961547881985673928558565101079514923472608020501470100180918515670509787792258477717951321332752891679688642203293993718316071086280223669139349633128848294073648832047410443070901182509171197974561476028966593156042435124800641884601832675771094727415391579567380159119270259940170226495928017419561402631918200439121135665347053805827006839813459534753861692113759504782981700984059658266762562873869920319770664162794680800790178401590752376587918322610758699624286493632731681357821918969717732596583836787821376916454268034417013249216498931409078750708597035491619294419861221010032434339920737299063627726627793516647240183582119564101643672695943638510729057165344589681905639457336519035317059104686214708466406733875044426147855723577751648254482502428284836647407825297086565189703718948507459181478568638264779390344838113048236595442106207983091914761053719610561995514421898946756180853665044687839275138755432103855477191552241227361184331570534367734587583028049697566112945116366228847169303496349828738363329961900040058776729025333835994569499872533087686319909296707460751234185729810143794406080377395498582774624113799468331782975635342182839386621538719924871321522784552496640895595752741043823447147014513219213651743085931754874266828047012625703348868210456592841937526838703108497172865811721064762615777151117676200218254523412519605604638702321346247185231109765037239287022972177991494666600578332868070129304926616406713662148373366392089310595985214271249439854613279018017152339761995081403007458975134243527488540677921205871204590582425121655220248554932736380544912131567037981533820464987442539007762016778048948372021885260701451647047770959298403611710000063755320643476921823572439214545374263878127444770805415313645216531791148118608059415191161094075553700417661198724127289673118415688527035080308131627693079298621789299736219211715876991574430148303066154933838150809336260359322748385332845235361216843166858357516133471833131560667068067940030376969504935643805997980766534648245903445796636222642939833198800013046874343008715408822554303763384760017165297175227325285636619357970656531903240674406791752618920192129544225907777727214039026134969720424730447694978989565344443754286944890405067454506612776184920649480899546504626708603529836123027985282729545080648147757772669014929921451494969028759974756860936126084214695793179300970036787919244904064162635666818045217111281274854601496158625672445090681914123256648342494475963461052789363925696939748521249193958008921320296737159986228346929490466681259305186421727437310078884630874736248986605636837377102233235604716458431192850366857325724907977325828443053328083499234221934431404929268185622092050038738935824490721971265729162558475304320095904970813731460952055429157180689572930551005485000755117073242772241006556739035823475730654018058930507248477717895938419314138390095819287479290048980726505436794024830037494071750231928707832105759490627849609773509375921950073105666950229185230071993381940564195450827856964074422085040936706538125876770856367000607680335572959311057390978288596676336106749268971679141005969451182775771033011062878019665158959331338512631930544441128654859005279046791201651196289062990160018796497930981055718387722075083025318609750535715125952235197860697853163141859859348841827603981674004575311653853541012229293013253671090905511470065973832721348529663298822734306784653379078057386783256094465231036535526785118250822505038482966155144888033229986157567154211266499016891257079524327764359187416199129910999683773955054427234836060152990182840777682135254952909779418076727559190501371694732740967685056722350921821659108234338024279035373826970018412278456153236750590958097648014934323294987291037138112330548960128999030090076789996543808108773609383055773859053194510019741606051440527875869323319228011746602496546949926288906252404895847629684524251871425624143619730725639342051295745810507406710958431715415249478921091469541691347046386183951259871822443037656404373408132572932423867804814924456191135242790208189448110349859516677279761143633599363956213560595966575615755044528548455428057719540816054142206185507172675455420840779413856339385743130360306737148145263890082165864154795390172325264545598417126828823637334575528553301039885344220433860873812888017106178628057392749989603310919854940392910479930806717117720567142259832020834369797015574110272386045141162170605312870101261322579943808750991065212029276167825194060592714193035503392887307991195314682684532368546747724193167837383305960226340804134441585747121536372084589946949835776829931826381458433211450929279847694394087663679306301849520131433639066397262831168542142801809724301779594046178898440609469893365082133591882190357265507394417725581841414421536839103641959948790246985413154247228311116839020239424028918502891045545530152611403430846361219354922750121383569366552669652263875103304336807217880889680276126676563062345694938244187560461258400962154407420450452315844521325797150141783867940634012511193846053311738468570592976501277021576257226870666971587206484520282958735597494984772870492910105432323807734060406238430928540222425068451020390057863437521263993199562391035902737441608133246207678238864218680895791564574789718520919984466377757847152956154632020796766512391537933279246030460695038708036259600537383216025279886638556787994696608838080858481787265704887585695426556580877970191548657705523323919371408769446038816400107389027032605467669797853082274570580430423906822244892793903531132541747728534117731646000974082451113131223317875524998990952739501119107849181309729575654509641766859071302127019980662964271488124834861056008611998370642491072679689685006342650026123942557576879772306764824396606251666663040386481272971489814739513218156052276345306063894417316023294846146035561593307792638284933500407220460114586605500743920152449675912920817170170160746448712264124039032737865083026208953401521853120472041304834095463906289166254015414049925798439910584783190252149305693303822793515857766282667543514923523206892384861090937101403214302310843945853187691817781374359966834138752286964657180052141865131932402757687268257039520872989779975911231823800873811137173935030797273071880945047227622488193601626600344706024620418543216458409740631412267173063004792222533712068176051163902044405157579011022814020428511751771454222595670546274731314114713046632197854308051260978740955983156212915468799020865048967857213116922065792165468241769774520902319942848362504011235905637440325785000767118824566254969144835727022566249893983952755878007907140462355156106293394283257537301559748540671295349523656363488839399438806436806889955743061888006961199740370368636155609222405875978690185357371018326625290472698994873179500704290599449074209529393757090034564097747652646101314331815851652015137957967062497239494786282699930533569510801997014271362172113042535981352681760292091741632117356870811138455384860300365753890889795644372629720221445363762924766265565588103095494784220276616083332536257366163504673255404565210975376571480641513709931428301286164928875880185457908012593367719889241655223066756178854047717553762511955383948487558948672272224666118274392470714487560950731573817619881290077499261238068991261817685966732109568024725321852323919883599152186131844019960083884712126083003820801442550183613338381463372741258914658175522514236166465997421899429847468627137351426512442169392534152314840845212378055521574401068347724066013375495078018403982427457922071254903809119059654863452475875058798959935835034113853183522990911329796601065566096336014546180685843245735846480259485178384386092829814978323400527160168529152880095961278879601117164136498096940460722241829246404428249775505196070892693222119881934730853698320729941330100979321654803449968754173353617698423023999273349057812884854590270958684833650709879182631187363741597477996739689123935752898385521370992194926987623475104111186101582023923761851585921800837984900383325676810591694354334737500193504806087629389143572876533779000082789853411190158535289170017226176505878008073236458624411419556832807196050854973856232731503826902327521110925799237544154500538429326745369678955125303023322644549075554244194355547515916474081940540333115616338791453173914918348542330053171586892567919053686567487691485127382678634635372058847036931709172628293513442088110366118640950175529551697454430926244085132221469686099085255576850591726214208404031238968849473410274808796878742150464593835887676922110263375463771871151034341285369462573078429103843151402404077392432257550954549813298655575987498064738905801845518940901063394593872593573524132131210412760787502998802874490701682727487454344883872252898297964453439178971251535535060355226209067470389382876793142793052834841774187739181495859690199642728861828347121071332013568940960474133132350394449916945064985025294225461522202011251795776107426589337648580025808248315261316910644993523417600666594994341128692643287019455002915616811181946463778866464938346327295128342793734481121290639923623146909048683902066638443771296563588441485328043344584349655819929915917686746294186179258777589335723487073919284679669872617079005441827358075283522930549163542976952476990805730956187844491704347243247566304865175710114681932521845533239540687758725698459288288297544850235444604004701821106398127507672188563932113025744058833291511764745170652101797991671031374853948524407893472267804324073167746071850897349929042074985724942136860835196085851696557729311416399712746475426316789141037353873047334654842664585906698121609171901142413982832206864687921748444866115993686744440515976165071242001396262955559619998732180502422841192263881791334256948915045991468655443433767860528159402152355126056648155992504962418729069923564109653439827459793881289041835678067087277467740620709248871802520090504880028403726185177334204829346709801875577413071723385258423511398878051616610315653475563595944909898808440285737318810562432396890123328039024822393444339046916523564078971173886477535421507078577373887022374973786119152770164448520675376923445754556947520598631186881855005878062238164577409430498717624665848469375982280719586571559569801923295700342557758382677499226975669214902247936248063449455452014630998648047592340705224081692181720912519752473001605643286637230989727264445313644975851924558129945622034632228550512556386947878332481675506210009575350574202373290597864772832341102359910573628678507669548621345976079281290161536477975113329115634830735389990991405799508580771997298711857424658911361316886402930714450270819644596842645005795088003583851085043791385797896511786698890562976299844134226079927192963784426160217856341345842474315986934246186218064637349831973091743013200314605177129920882179566816039638758347147043721219315205166990693936339081178067832897788673740700682261416304606103029076765499664618100418069165629376895344708578302078160095274437750671969773771210514828363808265399356654748984953190607986539985498189737919004071679347993060522826514112995826451433834787522370086514899062211779059608752115898662979685864021415289009260858360301723936531296230199175955622116787881123396607077645081953227648582591810685549265147050516283785507882056909222278952681436370919086802815282250588798739072640987457471277290242080267413473313335400411451247654867932713923873479044144284965578777418747653414660496328842956401764299778863860297641977226053794945120779387473149507991595592870046787246559194685243967793772954032517442129783963833690895511686373534924694094949970098130524889745486501506150137496755682356665642547457348713636068919790034123345573173844648553164039508381771395068401458111011124902241196484696491193555348279743727268630182050087166730380455110046232168772334421302448366768608263403611820783284161088559721886802718532665250141613581279400568278602742146489893045484929482337587024503390611087501381694156049688793265877096590830732568760319000940694755582380881723673890356949908619900864028587285101336521935914575808790789952494263675091271908232589730593033806409293942990081056036217688854366543086711493528609733288191983269167051076035336998275611309707585324848713165440502946422573216409308461114473122739881311705066651877780027708222009859500022637507953514434496536133140878745755105541822207305218142357729701265176009471987360435990259477788011780103571348785324401339163647079506535006980733324268111989027716082027668329666116154340245312072251173382729201092246252094694640007608394698721103662970561448913469156197032577953828911245291111765833825779566489564566593613454470338367860508867076241731082590359872899038521168096472608479789562659009819000268966134270553527128506766482764984993469110108776358246785235488397023212702792727088968102683390305695733632484196793186467312880882347422858545247097602163436675433154489607018976620071348330721486899034782809835281337617536032571526650463993223284504504351782669242775755328990510066351303526346044275897901085940584436733803094408356551997215206567782818667382023776306500050928345475919600518247655080249357667983827395179033163890498417967465669705601366668226580640798586652378500990278373139538063564649093278694817783581089781385361736731130521532397168206824455526498919365418000958959535328767215022034772905060200038109720518903388112247006778824490547916759602486119322384294090512812553824646789541640435587651247816608053659985165079656280882037513873602618333269884540097619684007607755791812493582708667263941107270813429375320648007352340480464742714548138558359578072850207463788348626115717520719524261536941005655581268363047227025838085479792385667589679041392017548833690581269329029337068492350697070660831093590994742081065761938317145187030059894855995399617345134144950410614410597781642701466341983109600612241642412716199558928279067656713526897379484742302049152873303506606510673249352141566559134300146314641458787402185631532346609855077105545973734730419968926554371968666058740125338332165233498509433887506925165546706673155357408764399951125545284900065325133179158737241718931782534870155331354241699086460761430535652849158620561415905914782125641289059523944402190588430407101089853622114643944052979609906624892180223933586870730517615101234187847197432880818772330641507741785980024025791875025471154977429227545213527933335173469123919083808107311934187823694290925245087560039234805938310376213908658805257698418028106834179938444259029120185212753870291253295926377178054253610473285563503746652796697505805542182860350354307485172104670903339862874865671749860251318422048402022267132468394033805281301549393225465786231723387037513311370968412858596391904826947851504259198101159382776841970372223527775985963114464051201291706018560161114981464197271042497648040040960003940838068971240123515347475098726526412657359518403904102743629372433669382830027299708527364908787724692760962178196072791412072807738039820911142347533281347801913478959778480315553615925097869556292699400849877379978333810638924563877257170790327568916586963957983357104754992688454567737479336631862530460307010615125632698308598446670405773795690211770227874180576761747203309453577319959480639659818392295567613758209502109907390211754021724886306327448079645466142125361329851378036309009689690395236395905096770735139592296663396737125041949352752005423751890082617388195198286946923716874685997069084208357983931577270047927086213061173815480244307375773124843838735243805983287451547644044725220583138456330574435205674571136480062932407818826243963317152638292211408915767111505738645967034031651566228421818703994679846100762208359313296151476003420968299096853537696310481178145263443881964401009965177811694948096389773123886328572201025869046597030694901921856796518675397953205336280222147838096220533625606581745296047775565236106039823490525153027011763393162027391202340043070315492316199477749123414202050501550283531706349705629282126972909444926275086520807832149161716672164951824868018653323942672197817292154888480947903508746545648440096453062371229333451014424751534278182804213458036926381185675617383597067217311736834499072254792808711010152425047515829374441930416409171103787381191727380810829398517573470725056807710770644212334732487236846238195951896870972133282127114695933472864393849036107857599337460223311932648198658242516636940632092418087479600326095618532989132238480343209520270685866102786041275251424600037981893363551163937325401907161091741833587687881718903953657607692793338127375188325616720266649274508351088622532488712198851622108187849651796544105809821219161300518545748590538729353868142357118306856830197832526893626448251381652055397261746518704749828716270906272352448804285936440679369163197340593969615962435407399570879956283014642998923718475000469764016456424310270860931774985666080739413469980404326164730211180288073450327145831843738853282284027787797547348381954539897024072299355798691266938711603619965014190468146069361221868907829624292183261802102973434000926272785261873940526583907386842087396628772190210470833431419836101981520100756136102159232806098789780002201747366068159039914224515753629095017804597112908767148005038874877490020470824900097176743403629739904393983556282654055425077327451939349915223179813220934858635909753544800569706111849089248603214057391112356628953770750605329431921595906532147045926884483362634387269620429393779109481019651888287751831573462783768083783213142784924895832147478703013234609940030297018036893192790833738693222401429566272133734486519681191541723722569182799492022315780926942177337267170115489611521696713881067388499226699441880386117593703629368804782085943012550897427435851032039627815339252380887667656696610933918574825553982349001614518550871664178248851164775136400386964456692009272306025838692893331834461790795750998610916145826684394145224992977919066395948430614445008877303272344455890193022277135801486569184680663641081083371170215543258334979321965216522407824445311447297596665599982980938636156407463480313120309236047951658232903035328525785517536717326073082373617454631620908801551531205465175956579163132334146708716092195524561322023673771512208502725167513929205083506938069167935639515519308942429018948760755837702969904601588521787419181752312243773016424117379167028663329526882833465484949353604827663820392912928762549793919237720683108256105433862483706128963632878330740203935569271334869775085319201963905894082014838930305399344767629302016716838821796067949197062346490083705067061000200594198841017290475721238187118520641215580481545807159545006216927189993279358063274581500972883912094510878581473941149014641150433501562678295125422442424242156862933817999004007205027923411708929388111948134847852769614247776421817619352026455844742645970012079744344300626604220607124713787101051242100153117075813210272574495560267189800369433639703088853489310884429825307347488244092433958674988442878363102585745422434838615883780907074801306170792314206062865217328537702275236986783335032236017875560884239490199873966923929149111874170325459496379860849773710354085024108646235925833316385999734727369608361195961782039468135327535788690383248594957595098643616685283652682127021290423852697316532807765238367293381562391723371765700087658400130578442120755131131746477967350273539150255519921772237232185485595336545192965002945300476798433516204955380171910786638499167016637436550822912533213049311798917024399160129257072597047928587268532014413656141994188512074181647240725117932017828975239567112000250032407060914052735912678744743577150265634036518307188131390584573678705482758214017877692916635408961770094765748611078891347203117580025858298344935364618656185462252977917466017671146014779865142213962353527947914704670474481855517726313542181520393842763759486942126258041052062734805696603085030226256165787337645968027727564058282289659820070593409359335398499454218637136466135170484491174219471308346241315781532670491566937968283238647328299520008188663760751393923549389534495339984201859359621148082683400247890173594471595632571564847836011211774550391771573369430990358561784769298637483651230188716373053583144671805720395061771316773538866264802780174075817519350537847744745816043446226420056493715835032951802992873648979921713422292179374166245344430908921802280506414233339710194953417818086542759703553915926688101451101960410790484098939677670306409504792180429005629948736643052995104731312430890531513464003433522276880843901025348609732145691147643141721232518303428019055857196323923646867811805445770765521969793303522022216246964421674156763592360441745994539253627998818752838658522887088013015681732596239490717470847589201104588479423983690986284415750594502101900089970664028030248001769507668882140262982718631677985294597604480136486923216499629095987443123018418987430706410877746477549226303123345507977052899896394049971367579824828443322122877579862522564642754655881323318385238623619659624001400273744335681676791132651434409242339651072570347027689558230276148162404603962040456444609437358058700937036794384074646063465238653241843787096604602434192911143330877054635545032284714938721905812655165198630867066752178451752988723073007769155599713659848673786376256893263390375643509290403423293368886160857474785001184641138670812119961010913382959237571010401177681964128003919869639301203251979581054423627552000602423213601964203095574755170115862425739568446995138579110209052893855601983284304193535113863426837832110397841467677298543375415527073203348934994662292738982168377884323014847796865906285331414993688472078267281727876282900926498941609931851107599063570314783052730910431302434142500363542395368968311356468908355378165613844493041252709231065827876348838589928024176573727659428186212323157953678393144883510470676817525554948106880952465316588322713365493594817297906681358725267678409799107053810793560437319838049647945396989057647284293719106913856449835565705709195402458287771862239645152680826784174075314580735542119317367969009806487261434507930701165438136400799672993738459249400695075834910164468520878991011975522859541974318438002699614365387714134298664085021138134276490912397511316739856718032973601424865629776600155573295318733039073947683700091164378081986778697478774434317000363913022536434587526809922467691234345699679143178632625372529180286329921335529057717491225585550608526482493757375491300716283793702559413243793103836036704986407025769724950071495517724124149286350693842846399302363505661148911855568859823631722194820225813185268144384561811274877843323716988567908637530734436437761915567604900499690133520057716744321407090975451151167247465481138742803575565771074758001280244243958310435918938878773868522941176989939571228328101971213200603065074671309941769599160964462108493652714660794951562225801270806335453315130764721009481425911612449992997322040035414570589139475495703661749973637907062388879834380253244468345412997903242750854017767509938545762851302788314624466001900761944870107453347336645076076674197080683084173238185286449501573541165559371224289998730696101301678034279500955146269964842012081368563820800993817259487727177548429298812815827792753712729892624691077984240677327635063326301337131062866630105522942938910792830539598240466957074517649073859181208530425809177900631350889738705989384142733423651306287473488668248743067516157844357175405162930477119814313390020171958730337821736022507867450574334231841966926293097692624785487783412173211336033128838761647796787140533187999966549069638769743184957004036472626271216573332680242890280858642535885913858475037945449593316045798357836338457482302547914809266804483622863573529530282905761208751847630281074556745643623826944780448900069821680926049388944414690691723878951170984942831566339439895298512188753405613210583352079284199398305052675491973758153228594098476990504256852243667240839124488799762033134058516341431403711195278530430532212719090436968659324626892622984876035679525459579380353559449789517763973981875702144472769545233347596377741496769650824771650437126469267077850874158717175334105862736921579117368215776004298537063964343003422624860184904540593887206757577656499628928063728793666640983858428717762635099853663077612207276837508822378877812089500621648055174360207271688216892915921819074406777499646296072697088281814053713899369378290228503908811334674224895894102542256729555788259323461948591772359724141737676574444052915713213826548159440956698093022250968988599219399289438113513710032312085054471664018062416275801223112774891894987253695297264974043234642922087215323806033197355009562695485394435513035010339286344554776549147786638518421419547538435419137120175910844127638324272443158700399203590244079057833229495362031529176461117975042980417397903505433868312476263814609415439258472636285002418325102616907293166838283241936856169184593246440791119966417634712485690112888401919916430255714862068528021353070340185060434975682693250369001708888837048463513594038062247192899417033028049436910156583845516406072853389654641381060063361666585528965732619273355254621989708242353477606320698052035451741794815530893342399761397455100912786336658721785321485220967160822629408878173515880483969992157096484403204216993681334712464181904964654425733462350602912320415731496547256713017776862698960937507094532073519320378007402705110949559307474121729100694465835217908947692157840204155019547813155831309568461980389009354033576658835086811383348580919908941844323207153493869772708811783659503572132732011359716574946793327245485211370846525932271858462889161848588783295439319504952351433243558684437042470335793259585993986604846317607995312374338432393145419155307906402591087245899645081218926921821101099649848703966354699798132431936485205196528918688373861220878310119699090458050195157927030485789639704600109474374824859165639374140324626293302965766268443704658745872489942183286589268432225579054859647444970835703656823706179032062103101445215822679648587378971503011689521587015019313626186811990619461358763040266332784973782278874200760405681250563265831078758331956090135815794422552411817933070980713977069916472175855373481470123778274478004463317222097469588841919465950480641190671780800588007801301289803834826081374850479508398928695852024604231403050511478844830653844631618110105213811798177694933359703741958399062616589982071571824999615238857475727812082593203308228490940497992583273382023246585070825689492623004557646595533833901210584281107484550576489444184506255023159388925958227374297377521788667904971932693907913119564402054552602497347904683488576101941004457429412493670183081425513586716371112813758342843397087513408214264444673943757265336719227879832371707366084124001906616259321895669047146956169331458553961589170168046284836020489055383412133332941094209667303705563316201768281678530700631817988114072519743956171589379530212981958289530548158226010944729877964611385435602540170030694109145726473836195113954495060970700425226854209599462032633659296881253260855824652057337423867101434435920792253459415466751892841890916911795890215817621744705916788445432051297031449019314583260276264911862851773197691057275373011507722193729822208172805309693990197496031513685615385632551516401379398566768296487796628506930988340396712664628650729209217247900690933603870916409562452744169086944461541172870984776922967207977394646878440110757484052386376755458120602320486617262102457235589335350719886840301891054444038493787128926971629853052969174435345935678436706423277319879848049509359360880695041667295761808953035087472501017440375424378348784632193934927490273682918623059498403499697882314804292829919418561393691664454627648922881985347581951581216502572810150268745723364541901230120684217213909478818995759680131281927085706293985782045827834077586248757323560045728626801842199343623145788716875851706431101835306202445805692257098151915629289608872072225946266457339862773761129613519575442896729291254642922220354538032352036068893832169431307265382867089081646883320538894566563563269137604995218277778962884562622009519737822049462529424495576681563909373864769627364054434699003925964313192626556841504863902291538819409962100856404636089945964078132082971074603336922575461281253366403055846521385378359334422317854023435363277660068668826416907588714116170057499523630377359057641770745703731427539236712865631632221581213371082831607478079562854014416758840881578800041902987124577965970215268899217744913415454231363351891343740192792395792750590890721701491080721101528684044802938027011257351696899126229898384768884054568410390167102322677096058777553281676603784803070198959202364700382977163478463110078834152689719754103419862153221369418648634258394981718378398186001691070972653966115719675959129045715655653100230181126086032267518658632622645391329595757719168013825392837626784984925030086502306731120016759240261163917671692274911144792142815462073453128039617308884278012218735247537207582314667206661411688949791728240111721403985492233170254355999547127201999777027775842989688759567957739678375913257508524351492119102577992149328883904659698210973058601163357687981863815151472553314181432911078066753699804062285338084149038932594867572725095853778977809814300968223749018315140761072739555837965879808562041842657528249264845802772371547986291034694412802987538613029520637617865316941261000240312217639280589852340104407586782009178386533253436646800974160198895946840594895388180904618805260280791342093623948481132859185230879972278855083375416754810913643590307896658950888433906647354897621752049457870926298499787599582194202295121551257759393978342925148489440588212230735412588946736474584123067286643476898548523857760088733367834872969004919180064826913257669600106213135293741005210845095241608029048526410247185299777761045559478277814692884518777984561788616421588314889081887428574398098762780552556276404033069649111043751465285832792667814875396894837813215773472885680489543098433030018063954964572464468373253605388456486003584222171815365790581862184476800743017131093606769481566979850411525445227547523993065852129967039243199516214906137049420773493242275363940303621078575208268659287113046126097306706739170419511258811577435280958719693678887111334731883558963703228930446718629197111596922426332641887618982797011634302093664916937442992661266922721384329698461643763403726008605254725060476183654707580062885288870857740819847805340875820707104467784235823962245128074481712295513922114651235609158073404648452726937677243514065262508694877808106823871909256354182987100627482847092218591215133411827437420577375379135200381243084314478447240012881473397498265958511222522766854587123188449312256306056352611538636167027932768487472041338959931539595308475695724924149328699264694001508699968977604533126005186995416378107577936802820033448084332708251304268899959994096895846779508733468141069478134757320507353440564513380830417818655491288873886119119752214938797451849414846912303748918852480082748096924231747461277089639254555721660574044007873324732965270306290591496012037769347227027457868198769792234522092234686779143317014269443159320435053349143463400311164597110626666771409308403596931170814812415281663293861594734617604895709382593961063430994275773479397343307585832802703350789668055330452356736133815749582310454505598497308609720770792940241971877282636663421689780482858397563266829733015184082432113016618224855880450044676891354989445830085800898525131382863390730892145368564179821816493568659677081968709489825939172267870691344806421549076625551000080212119411397998919636193030478072268459237972883536410626282280376202189558352561014633101901015881857689233710542832583022660053250740678636505686232913129716826371598370516295326628321440551847658023680523165331089582538620249794083110583125606847690438502593837268094487043513949659205921796410291040548070109326974127338190807941330740996908482250248289746140955108637214839121303275157185740419691047083652651801048788380850548224644113613637490084801287097357732412661172233016561206543369456113125162700750318207405043857881133657167510029463992751353095577415721463235434758786110208665460825683933767784096677302927625454461732709506405797407647759570715019405885143989103503604817913860217215084460235964772241906111492785712722269541695656063855386759053789926123844297749849015373675064262179948305595812206257235337447991876639904897394349172415618187328035841599641140723951592251278701924760798122254675809785342166428263614272240609435413334461315919963081994142826232484485382344710756756493549649443333302937830585787292115929984341990879330603187677461071183535263290627779376344850077101464211480860698647348392430202493541072504185265986882564602348425708208131895978655090629341315883942824724095814222922366554987751513902594772641859800850218618585484394937002829491301649187312205197255521744685053305380420049076559467431509002695176575913125391892989321218232799459213766119498687598944934304886259090533410166602834952074158866982607582522310910581308225387988957868191049340132087343723335485047467526455729925706961083322266697410635447113085451290736975151996020724644038045632344704412552471206668729128515623064271329964797390745541181839313158052790886885639288291345312311408430587153701840898173767335770266618737836913962747580136717222239744613384233262147184929874078410333182083763614703830018612367350959098482316716880481112469899244596572531553700257926329143008302164875118286188400078815645907604871023341377207902744701758749940632315107927745931750832948598818966451902315547613732406278007273494505952006138562167098757151665787571044479792793633130588208552006594683429272938010730464118084187244587696063695077676599876665919289202026234248860436407734362153623861921730953027864497949274422000144223090170814112868984215986599363192138509621681427672269294556969857133337899153710471957923508954948118765487670959271516035572191934801703563973802499828855204714920721871323022792144817630663012607748202657212749554100281571084987014563747590401546888440915722852448920481081830999936910761923160747622033732960547454950003204813532963241273631625706052841601891153719891404687429811872936239860273818768901023982632160106900448886339120027033733441260015202999482917306921899060176533076980887135169224175799182841985607176139011038617129059221419674921449262194199835750736426728623131595785158319872209115433927637936780360165779798058985368824718988152046901106018268385329678427734589807607243091153842108390472452645914093650497177675958772554040699912603455786481234673494541675009184121369185209427456994071907139719773218757234975075459908989025670435404165503253867165693633893330783819421460718182184195536564875062441355383815092652101581867942040950313538843289662921593611110899716152933958638858716966372644016050343336353494591016118736349095231163177863930396234687454283283523399486760940884088118617636860576043018898075552128195711569814774385780103032517829782629443881110787404358582751819452763415632286138800153572613764116717970526617678302992225514224581732995850945860009770391405272374342033398299596468762529867871244793841388983019002574395136013904438557988606816319998294726468631870867538700022743395454424446457595847194629025470571579692427038618086068038967360061588139299207780713017147673132437574870311326140728994830894183567878442803370217836922136081143233329418824250228387587036748586518133526388786111062216289180688625917676449441799569488801533608131567133394438194757125135105474170524438484303890484216756649737326363081522134900184578839558421158387029925104338177316996985190173116412379834068000584303346460237719030680340284671345942205966880148223219176654243534936910073051071507224687303359967850671625979464899571840276602609937619395230211847564260584231622521465469798594393379387200686333628234287882899150806723343878820394417079295578697124727045685144044335523349498366239424021390798685144355351944668706729517623933597358825205319670713498793178719337637633106378660470509028241379459886546736389999732813732916131244090178029181776548693501537749691839547169406973509861700761123236693743250386648388635881823274300526577168774295086294347842145950097569362913430866248093892736605618374021659017404232791589680327664352713273123052370000137953672426503899774363002272286842282438335834325330566884255756502204233918393794368840409552044676012370075864305738700916093017186627193988956094085462775332148120652104473286211323543442583826420877103787563129710523147672390380383163404308685418105437977631838695594360726900208379371923220398222659971651575424718981245300127287743038339741831268165682088789679574239400270549782131802161570389112758232104288793465052275326067055910801941421487339018279398234934865883772127333746640911632044703604261333198721893500182183721910590260497107270008639011980993998254824203112225509846861125230757667943114480722010107874967453006115274441548535728885984968481994731018828247500220181535072537863448837850448034529079053596643135264272733686375386254717972671598731725928527262742487029430075770238921537096421642400205159658639034913324203706530527146135717090736145638227899233439502884719449504254798979861521606893800046289740034615934607601074280543974911139118037927109332531281440397922141343520071591043947020419480612416137252677856525047668453375012529786065592208003621908824774419819362483415037094837348356010500224001752122284259805728646030467227340021652664935199267963352092112418483539765861523434204327915079258751083757180734590488382527931090052854144219920423211937610750432395854751053847205908509868459934305818255389075186116236443569782490021359463022775933817891245981297116610962903549379145019090609719027916297738919725218563495429642515631007822305409935639031085374352448009417776698728682131205334134941507013241389516587564160019045851609424251696214852579340361400669269145704918578575031733388134649544566975690950147508273953262356571161038454008351191646397849367911595991924668226328072498472181423353927742002269018432149386627016557015271748077713421097846343543506342655830596686726443386571894802000368636979838107475563148181237766632673727198538775419653869512302121677395408050062000055914178444742296497616486528679152359256979098276944394806190695052118131450787690084904430145055914556858452295173701796958483503521761575204187026780464487363835014255511936493900077202302011563595787189312560473574471730429832359816293871132139212007879980222850156114391660309994722266622467744322920790390951325823875350163970158119722221122731610767876415098644953955117017570202868822165737123877961917231077359977779687572216419598956128187194971437907554725453285092732454764862121177039729303695508034485356947591488593590406485025076512222277909410782616123779653265773653003561673379168051193971364632377155539331763437846556457411742410295689707838396035891574225897079416660171594881345244967873234821857874920168728098374623057046794229594630900744147570420736770013556688552750911209649951801667558543316884661027086699121290320965460103981536410310921201019409159755585101766070270263326935997389959183927374268906691024827210740360790453147841965144328463746586350796459221624913253059869257257358678211306895362619427600486492992117000641293593671777135469341921655306615578434561314646576973530941360471412709164292550461107354617999193428251366048599966157984026485189392305833587869282397825724572876109819962015915169756781870391343783479111345981475700079652603345438519333657937201933423000841386545031898983086448431201395468530685007563554057398630764325929532780756248178694800947504096486474195864027760670530145907895109403839212861916098708881628507194458673090375318496384354865280826105176896109624016639377012500048067026382178100097325607325784982210539189354941009893340768880380274847805826406186885962693501699281201649227977861970906615220836014486905068289744904073488023692481322940335425584837409449293047722769719782018064865629168033178113688519694126272281088761625787246740551117571178909311466160977637103600317798643675772629127369389382556038747585957192142283945936970632448788653433217720090423113346928115844499003850909908270021342352081044419705261798244021535377353715376384451992627974993260585796148534605809596014588147568683103597686938305682486812509635715659153089205648331450636508357780059352609394119562982048656231122825205418809472531211455595678469472949484553459360136449589868117706274121808653665025018115678907275739095200797255937344806991484011423334061683833895430842442034649380781859432584461619901200454142761681367932297825410930630218877015320586068166436007342504350022511653489628597250884528902346770534461378725957380042612121279516565140416598956687611508951801534751270322954457986128641877341139495929999766328384296928475329468020827012819191173062510741705843732767160146319467609784387053613695801613755086125240977150910395225954693459869363287128178259542758971312444596783903117642146179649479449612332420694264359789158370316821398792334045045833044800240793962986378081063117715183995887579322072161212589546881450987319097653741809516973905567112516144867450404740537556288684071862277940709732373509684203000463781284402237456328022285017062638455140203023225264574501933738981545353650506716744533317049628792914275308035435831382915001406671536131322529961300938390467761778299436516519683340343031330321875303502029360890516372532970043887151749925046275168721589921988077135260468095582703474253949746131543039860471590074996843989226544092340908910262506458912662524782561206029031626736134819175440417337196259057402240027965426509048716386287014351624506630826773071044740402043290746559085588009578253504305021833570534823006611402578783904513234568844167317155994044117087903325763471599619403974046566966718293716850835551068911850850996559043917111805025590865627406913250160853329340136716470966517721464476173278843876710981223425722478949754251772148420537051540905627882198886480621470575604829742844595481946008229512503052867244572273725719897579841435558960161160310684341742420678820618679239393615004314611828034080940266766554472408475026028485454087177962907804352114207951310000015143303948245612395846099671413901740184353082464259578460336958967154186796186486540120948484193000750133213452813426304855772129031553213153551152096915290059597113508347171659207047233215039811478183032030525287842791901647443582377520382892567105067163348900359190132360918636888097856590218883113044524401487609258180930645113879856218450164489976615740713955152922545109123884750002195840055149609075789374927737757361561421365876091607051991240352179375757353958566503235351533665829358769455733093804264669920324542763933503396087013609943023039854228252921987575868718526469105776796429100897894545313485177563142309315307503347194463004777552166831472304425176217693710264718518861487114570756046065088277787693118584294844276120659980665889675561022435737044514720471340631407583156636267999162998462740236372595497226061716677050791505268842501980479847173884958078789114237979813893871796497380050380473341167726233679507459710593029017385040276761476055044707620515398234224671168332447643751615271295838334737084792812022668811285380531512679516499595845425874085503761321289193750711642430069614709420549868491798337029482451242205790579887356411818540134388400681619323550252006385365191210860475287897165019018444553875341521877005688595520959033430362364496345825830941632741862442349774107005589405969903864154565805577496947935029467667320204390634954848896334307277259604247478051195515530090466498456968830881332697654431207142224597338911497272746943671365649911973904788976001625291129396305570621444141571859783872076044354536389006584685879463106761265846595879580098887183356236016540853280441546970395738600162726209613770662768250468094360405284884357098757691884997697720789325719384079314924416753708903228379198394742058980732673847607635380975001155304368715319446085860265905427202438787868956272232717835486106901279591307867853114180554979330029637296253749554606174034354871130812278515432585578233492661664611816385530449073481551036213277151548439286649253006995640951479082543555691554596162764216739637967592835995331150471439699526103120485207890151221065959431108293425475058061211768893938444395177655049487431042076836574365882705230331243603032616541553819458035639020054348975772674231549777693354710865618293718469815004293828070951401420955131703475707862247373258635451894393823393299023720896712868729101041833163476507967520929078243768102927767874775438305846350491850558221506426869004717001666516008860693817197988498463779329381480331207257545174326400530599906904303971276574921177695728457160448793421471048506314393230273379909083640392609300877872960066691501724048445041974874298153216456210620540836158588224857151979138543007799299994254814368988331286802933530038790283712754825434810349224393057863139779504136019996436008703393705220887627563656886182542855428631628959408606019248387846507158947642145581631236253448920963284618834864896831750564576501169297711406964629437959381141958573963909315848392934279093421983030994302770155815429656142474368144250133345874911908271581513448313557914072074877460307357163111600968216124166125853702659533906306384077800981279245304172141991201062601389536944082724714625262224349467268869577065658645613071805219242581155411744326218991834932816783248447814702622611820252552169849208733285647988846463122276392262428708372645890589961768283082702485750426288765618573043772849594626118926115999030985832956066097155509909544391121092230458077585822981713635355616071216134250247118599723703966569080832472854802795973466192324603971489568900139755353728739048019778941111773106004192209313074399619973270927884013029149175757987689939167322359885118042456874696764275867466224373308629422265395896339003355539493967472907914201765026813016201920188096373619513888110856983384603114641561776391791546067892304044224499651318521375374076388132767418899035274537447940664676644116001830802288121450698832290529881951837473460053795988016394973909599216819569347974820772294203146044178805134673501619263554892790136558647016278211240643832440692933801363022119889230451783568118282007038640111890320864684554056628349404992461551431655025519730797096395576663583849158739315451625740328847367681250761507839335777868860002426789760087898361785096205770560082427671246651547112778471858585401686108986171237497998822471984301145165954021944551983871668801648323329700649444952621016144237507153037573216942717395629880331952297092164942532786717848759358348998399860500682052893818745073557572186689064445253055515244703243495412889074475451680321771426217851165124908715974258888585828936712838222156690071177236104216304552225371061343093169288356524845829926448812275226019460243595052831648847420658481355727263976663094162170359761287246312745593701397432517343727915350901386582823842990141665924740376041602965962484983682307638781452710023770635624815287331639094514570522751278443910956299891299295016616649229658885753327988072108895256246315279176968681723633842188691247877335424415408603909319482014360893790191407607297766331360440083513885491212687568366538452671825553727505374670775347631779076271652272793030758548551178532277921435658588129854603403027182233857822564581936286840509485687857406746009749217785423464979020370241649021850629812221368360243831078398434949301193712463527939369798569659402467153485187271584605215053452356645953087116233661579646451077169407546211327937741141522180587430081430502303229598784844675002492254849557369335142446196636268404557697871700049799773727127262327657896130299965880524152524638450417252308767907008336120444076305026209564153227144152370022745950326665971855774933178129743828294696239192139227905874871770579867855872487692968438030606419572735721884041524527656226727543495591178799383264606168811860648812572627370569936968282845506167287102522348431037726988695526902469961624633495575580058155448970352638128277606873289446829700214079781095579733766609632082393321664686614218216064281774371349664232155022678236595191984752748074485165946579506050801399479743360095201662926426731578256393595332148873727608782861334280598825813552829739983518281264161846072789240677307898037520027794495907103592823644445639208035404472869941754845171402539231877589238840809454543388711055124764357403068155084556372736370068326730237548715615984073602274062077678470912626467556040296679697596235064684586141427297899628799151060597061661769696011315713171836330576308471623140913035558608375919865540865752076797747754034053715301804168148919426154581775640189977125979741101591269928047176494317682844436547742709592580535783486912781516127556792815519915032934665795106977931411666389809551435692525412602188191025431649309144142616712522754456580125210846230225935175147787737080480798645580305092008499833543376443448790145055828594898533073086963282480541424865021789420296445734568004798292363910032630808823996839469786321423636783130864466864173747639540381673989125707091266492910455818121896250846388400726888009292015239506195199839508244778622997745352451159504171710201697885440430697571580261243582619200486993876082612582581271898437446034599237534539540692014600611355955681795186321248921009509206205420810059315569238199429716219035402510617398343908763216044699200122069336602921006899550412499838084612860280940701270430322256753108979110243477064472571352117627833393858735342211121338949194324744622665625289933774058302184061933095779087026887456081875207439587712790078502396522948902975510119395150319350920929705840436222971366906636062684538716409867276648210284451296805976527078933417869613116441898127787941172143674562558259628146898489157397605139226012828615097528604938207416527192246922449614457951400553977692174326212650559435723107514632280238223692686408982699018024421035127517653892093188078248351320071781252650278396456137451142358810984952498378599153346729615607288488470110084675118839400088420261790265100075214761833987947315633253294358889216637915385189247066622953710586719996446632985214217270252608923068961155148127680858999550654712660171158814466253952810343760252505357210060568357097130116486930933870837781464509437364584440270137351843688044080281328765308549272972342124932619752401635795300518880823380817390092093958184890662032565966359141235246399505408802462705939672186090156591910286177592609762908442402717150451159177882657292869261477258581127847719337140940750070260184716860680594199457716255764048080882129543987083532552176284034023271061573008489949382928827804305335632297677239181443712446707573953544970801019747288175379856428536506943661999681785742931013937642109729063707198142984379343887627356552251714006278447380515214700898673534016703263726175612172425766948094660112743620341542665173408420338414692763920050113523932511773194765942157796887116019795405672079143068527999777823976744880953821495808581311565301568145316519773520669986503640738580503924443964652330628051676841116205293815166045950971984073317725112387379763332000130911437748816946210804393836286474212520592310751276527338548777463654136050602029304963359107752952476889059970317103978159439936866906458782824525961423242765359531222622116036393087576943930241995260169937610409157371961428692143586204647764678292845071058664000029368721943793178547816122278736991445603358750487262495381157352380171495111881381044095432992958626971439607885997359555109129644367467497762941290300765795954411308296116866323604912759789161322138293330910922486837328968251347740250706865969383951257469259046478732493441137463542862031703256463333905241552511815424733087862263118442486218432351783393064820429044539333936050276966933588365784121622504878733017526846015674025883577505810636609548974800012907300549126001778976234573966849274946971647116582181102046432369668101270591038012754465866217409053688729980121322016975050393364463130685366374568966095491465771655199148616292936704500809257122058678779360522469857757436487112267849257311324452355901051778715376843642797572780021321926431817105867502271221532781750231396463528187331351302286528126111379703911336400423358460596646535519683669610183508764475519541613555245318769790933451005981081410912487983608064778528577921602993272749736280582287787780480244366716416276344979831755666281161332538907613925145510264824363721502796745819153666056537192834287313974139139506902842414863888010745431888007787797058658845979564815196390289604560608590471255752902212548843438023153737008031427073917567921096277724641486913354708423763608862734396368595920923561581834930427586125597969973661402515267646439302398979807740256647139661715240300370265042810750657011142194565924811516312360699062004040314829005416425950795348817339610270692865934202917040238329503765945433032577898996210868959908794174045811957312888304989956556216850370104058786481317115863082651444404717956425783224200134967309774332213174609394727373240889522037934320201541957525761274932615989541003018254861938503857055111863573087703810758103801135227531352761362290634729565622609520361559602633652309265681910898788446169116799791749182779602929043961479714443843427983900529910997393534272231183126852542780089133673956994513520299567301651499090960929708146745810887337861777075140890416279917667694856677078617800983216968091077054752684797657873705832081170718309777298799215913750566811072716804691483041672823601305966667879390232071925970286545663878171526587093907877382617801661980048776457304561510033428819051562433883438454270776314266267628052099112022491523571217321412471510364201017328755642788032335113930107309571264399062950099653056233398595457529664231766873345388281880660876668645089694284596143004959194058893521656993563682193383363855901862930842620397312770652712313431894759083613795224255097052820002303509730898847356727703872726633472411442427712251264452491633274439444545993447098776052496470330202975078004679552915003983196516257873943321700459779028909472325201012876541709686956412168729704480411897826954686781926845528536922936245951864719845359335263849074287968873542568705648763299443068340042903240020339120576383409543336135380152983426016554179070115630650301191390427212892841740400887547893308983214032091313963206110396723496998563921065613521644434441161699820265528044127372701746149250718815382097999338607546975078071418961919499782556571487683077162159775954396012088821872480389187209520955089310371740857225840999412438777489149254380679116769928327281855159551956136672865641337108724079517362159031087059511205644093794087423819566429823178905438074522110074593901023035105737086308169286925929190958095726039232689076812664985941618799687958954471565967497022680298419097142912627954795225717813006394205602868651447044622961036430626534113038961258096339695555066697375256347846515914984648668492334100181773076137700786098011991384819076959859691385270717351820345265949077914909829887947789856762752331520243205787077599977701698859921609586477769055100649769238221174705272653999147880767553773248065748954478873360390977779368972620221599397741031521525668340615036965690420647245197913260177237370676218532592591112853412203716781159635190672814250694480450984289955905085813267279153871234824475593771719100905481243126792810892318248189552575479309484800180930915765618740219148849011623802373314274273921024861677055134147048151079759994228264734977233785621238447151606327529854051718232821731172134059976129285482804564041209806992039286406745803917140665174612110447698559141613882582811690311379886129080982480914314263949254607513271892929862490548862164030375922616713260162480387773140189519888273871337899835607496984155179737299828512020359956983420549029513891094525914337189840748711274576713455910556686469777918383232255393888863183152405984672046293911503388094963889231210631219992246874467613794606515907625800206721052659789067981810415540477295474965302981224518691097453722815460391836619745791509811619855250596337966021317872526837948247517793664549580134476661726789626583554366344895914283414949781241287175211505879886092754180740039771717023890845859959990754113927687440913792916405920690724876087503092911813042927745271902481900685871825265312577449531769730261433708709650346317691587777317973171876014237800891912274311301966606535939092205159195495911200324336055445233222414759557053855257863575275860226147209980140793750193203597963468638369250705375444590333949199979510315009100587921244076661353722239375639921427805330130880555091791095599880952468850719575986044557202966764697341320036983516506518879658829350483197254515284723248286000812839438308710773062373054120448703302345658981511082889124462900823959164592369022227311889683852659795519224602317564291351419640728569117668080527831137736092582411892555291368230764901230850081173125672965002582770491639772593398934028737792591245698553768190485609085523315205878122045368920593700301718752096570218454895730607020844153236837084514776897869828538502864941663144224788740505818301011309515126938194601356075660430650343934050845344171191409979117843240510341353108761354679277071738533829543637814754899878407907706763043963170834797519637479910868956933014382117345921044003890390406883436630484959845419420225482868503476643505556553031556677734423606028028851470618694636512509700963967558794658333217427920018425848585630795417654796127702415639598706073677781434005272550411467014920224742216568643657810571920393605142989871558284573060267756404778727663092185583106345524927808466332535247057987235063988880368567482905162606497292245315717139028200421475243199149983900780045922607946820021848011996865583618885807940081439914104527271616848037267435592012011208375187506806401346229940844322468899060143358248807863764353625639297604549514005903590056283330049572519823998967146433880066684139639084300481361957862559992864106527499584440206384313014698603059828141937368468787922241334711322643523826676903260698321570590733212548620411023028893407117255257761081140548368680495592976901908068396013439483395766645032919992794812324775677160350261462684656584825272816623346199950485506054530079191063720387053674550594056502683890901974801219028267436292223814279142238934157821187155603894793037238824224083420911044819713366520490599454327419729225887153728982427506182952405092262762413002956779971746549404862578232910550354850069994103230676782342931343747091318952164144980567465430629010105263556985551627519380727023186831755962127258214750898207220935929165904610170577838337546527234385333429101497753372461664450279621542221196484972805168479471392260223216618292226908270181177007973364309184279223370741421696565577733833602986105414856956863438827998427248531696730737256193409812525169988136532735438807759524676198510298758197920348083257655169141039211268411034801920160074448569105803152581274301674668171326056829363087480246044581841154483337416681911200620768079986070764299610896589941685923824239596112512154322616251185302143773971742202187891221973522419980251733628836576986735445087007815341364019746452372561545542478205232659751514494162469929147638524699539465850430269319171815768627519039760024041241288768827873165105605669189742362963991949661630198229686221073492757244838950603309767807081016508857215377882772590671835384575403698606803019445790638329354910544983630293391177148578891758338783439692782584733652867760769712168779186043025811126633107125562567744586108128588383223732626018375747443896654097170680082864647828669216485689430961160348383454508709324997050150280245975280975464801626097045548584650527822253310991863442049383989725637783397599345976634062624921408688944478799700204502980264763849126807281377447416689284469042040331434280872383983675887860122476382741919217795891034578141500847797879668018695037279928232694178293293622613364167307509230928042738231887900913294132057366979565297316840590792622891298221352478332797795282677317165513835517950225702227606439826586197891861467824644453194226573998669342252151024372274480789747890112031275558631765932886210360531253531638985249570551090330300925319411817293323901302252364932041256222300674680068847569054170476909390525252534326544332530629972820612460802144653795510715844561759450948848967650490174622838800222973528373918017539676534932026512309921446695530651248850448111728243412014404968656697745955718728380732181986089443447547810712724783110462955050150775596043631005321796231969982113143954930981229076664827669434632119823649441969444241428722908931109859842341864059102711078057090681678288461708607708921583117561086179682595823453697503833897582320812101006127978655267744469921639685187444338640942136453322194126429764698114029796002685287965076907405889134254167989399596533358363514035462828068855524353180155621396076827858400575976436651624623572899579441860520218448959473782924691671919027932698197474646414220949043112300690826912783379540450754948811209172173708340770399499190945976805092034041168574386786152110872087046671562103556516493994405660898528318459062359213108351586965512664313660519622694765173817350730327247810653338474353045847853825798882332334556777303995289981111937978007363871505719550835709743084779251400763495241264413560505393417237316785576313748280145746596737549631673760756991058490863115549763392920990149276763787097984471894577314436914938940130053829342440153723429392919417535871654397645343771287979150448924553096532975069402874660353202402254501482758757601754206379719801736606324373092722776865129929504292283784068428001913565103672883612600106522656101592305949850015361175140774442721979597607126319976559933334397837690109696235256546628937197431634445847048470213715461054833029370891187661295933363312077610925726769544931891651573618882831035478657396782192341868084044927024049494515055908451564824407460817775194755529426348046369084489070246294272691562733711486454131631801247239732216543187389143468207201978783057291663211092282077903053516636886634130174175477079969459768511461523458303681403833916738337890654968472136284040530620491917549460157111805928827754275238795832547379647144410030455685890413717920423802433242701351882439054797796231131816509635288534148102829004755191028418737702448978400241272280381211916641397161442532438622216307107624014368805973500088347058539318683976857760693517583224692255462130405536698551494965663141187205560721908759124053425342430201271365944535358993415574104679537339586487729559165778670763353553826801006945461219421715461485280911535821513203564483093337043412237810990438245714749039904313004771330680202658971972098447439243716718434532953755988074051450227807488594754364196215807593423189637222625388123620662090892029164392180013338793724328152448550189356193670837740063069501079574239861185139595860407131943852263677384981915112294797462953191334987711419956515957342142295848246488750707297297132295331446959921797283657238822861677308112313708807331203543230632754147773204091554310687997489628671999025054283958764987419292899289510371550337986345390619810742457809807439442394983101576921778948893444306693846107483743808707746947038230728832288010499193942632461295326873286583350510489306320910759371158704544571640603686508400606465389880186192844518066736330238772375113353403902539026652913548135328920341727269025134242710079712171131846082107333038091391443830334946444125263631673656663728015284999659678840110772904584684618187831278592462815965545178084069479427405839734372079535009580984860810524491548551706748066265494855335079125462367152747594477920018441649427006929129424119090911118229842329792269864882366714979337128522972629249684624291462599039844025154178838149196815425092848713199359861231467234775952415298479830842011744725605897040100897998940315081598433970707653047185277686919334289413329208687147736278307600948817905759878709455214093853641721162905285999161820666352671659037733209051145162449220539292772415948082675262605632552680569318303513164358358530529801376802753391875478052153492863073461063728284805905562534114527911775323958197302379747780179051164292986973490919945872699420148255875582400771896284713514767161190596168117012070214887014444581478693670201444874516769496813162044388321630054934508137496528388083207667996795377861199679425014903370300055805213818987485518082757019744945234304619542808767840714140287005110570147777574981659955113077141569553207859458525937600101815477024376780872318731906561410142311301875002379666195656737399122141731786259901971671339362779042449919012565116923927993103660489908380508994669444635227617855160634076000926733931226062089770520034931166525599253867732798692245479279184789784636081222741109612537355011441214930883838276872022361262948453567941190456465264315854661995500108032731865205622134407111542993450123488006934849741153439961462927387989596754697269516817136343212912746727559866353300745294392968800898302181295367011052618514656833610138722360307044939181373576953404073238116424028762290483362363815599117055702320608703002948611984444272348627084011927549601635007872487946145463650088147456533915581434309589140744010563821884130572662888403242326136430477115513414640822504136815177915699822889816667139734798239598535018357632989225925024828422107074111729108280953512681939753219399294972622236585836484620607809988086296376663500773330441576438089051910246135132065028839247614095411099956878476426160431618148648841747981047547534692979569367790679661164440739365782539717106706111024500768965264723710500196297357792078384479086651844729460886988725814327019424346310157716378834033218176788431852582525784430498278050390695459292914374960245748616295611009553260204537653921487708227983295034572689452948301052289485381439823890252480964832268070647579396943575739948436637995365498003600222679594553507593319970375659831012437767465407282701309296849216725732391128600769996382673716722891145377403678246767230224872183004642537870745764545118871853193858038400520232943078018260480999657209049904020982149086765043639351890047946925440909375759683885452123297744323801403683959534546707013044698420585076874182831213322443296187073924450325223050563004917533904422238725182199782400253526483566258021503178085753468924641712263441763188132513538086402309837851091423414140858416032805275064284916591991937812937887825999358916946177640007790543221712848997410265071383396088208246652517718914705838904615659378525963683735223032009889690218459875162786666054739339548704131750341021503572973780097969104405324135868946687290192453476416994436094592082526621246679019479892124042193625299121330881093256211926709377069232419933300708344947101988328489054427488633575565635782015863592588333703980113297879309854293851268308098199416446559717882241577474529431602712630523400191814781695922557072824237852702464087724935996092004683490974808001954655280583127037218482936257141216635703560855014276438515247054462930438488256100866152569749671904164010544791204333900009969309202391874829850373847558142200342414892402463777271393287932728747885582875839202209165746711117245451800118171937102630208571514697952581691348293591120745209607981396023652420851689079436732204268910708023439718335728482916945186949805579207064403078954013384163449913768375858782323861889915480717389778359275476947992746349365999831996663763993383399623656105675061295941609239937701880406173250321243854218589473904400142159308365173372912880608467122156761446675563173127758639596593892800033636978113414962315836977056117060121678593107938754449215692923445243896502447525695420066393347683752582486645955983307836395393410029487733423016246556113572398748775569757234152220845536854479908138794462912741334801667523422223639977074405319692630519040596679587271101697596938790924724239190529662415269467764534429925338669348592600019900752011846885511604182324015813295702646016675502931451368704612075690860772132358704769651736422610060110866328902174492497638414917565123341296902993958336038538806154485347078949248012395095839088821286429000596287035764771869474516444683489321108434539890183738179157277784761326169612928912743837155099782266108606452066380351342150744109941617124832803495089652801766422012012671376372857666906846404328196846365791489774774297698297542457430068351699904325150320792402725616864329401316217613888979442122680263402154046219956298869641250472067311673615489416313100800218616209632373632472298652696329604638977608674389083141835092195544509325198686474116849921610576151476270764625165462730913103456715709746865933556853647580661626792617150076996052872469101003180423810944807040762851400408410137212992731144924325137388817308630386905444616996965882484523084472980387361233256185722749895254047356708177978230042895340532158972354928838562104368914699796360943656789856476224308140723907327700054978518701826503277327940415661210660234450464584930263035752239709210819045462251398469595172943701009973307594739554257671279125536634457871909672880309892263978414649872901231302322774482414233216721212433881218641813361761684834690291757638056977124439964948126973871895710103994942226671164199501439348701894022976618005441610404809860970265708027722832042411947149136293150280841712570541339549223480912816273357582230050306809065046743327744249583251818957925677360544062142101097721426774287973757690042386009762867012411405991394695590830737158227566731158604325009879802524838587528704330804593322044605305667936232179958705826874284168352387119007069366759464336929475425100485495700100475058571672563279284117306164142234045082795607822602204375337128527589365081368485610089247643719383551744573063829421626722937925269725818684339840459145618150454210921050095498368551211616261147693205748892872095362859556665143367973839805387402620917908590591593031874609091502808491940764615009428518081843013458735060758425275824249362173167230226957619502802798033598833391386347716853025868744716897652139361012424921948543669849067188995852117058063203326717852015131499910141798503073369614948957167401593294755965724393699770376344011387043080204125085499623776150988644259592406062157984724786765656295088554875716911302443673171763513568522266070945542972734348567812305697060317173314714107941371531653956853340534879672805259222842201368296249948877057726657735852958935576355950268823508943284781724647937144002033042988122598717782985768162462446638471110517156870527316590053520445674395652691934700789644910317398557338771003893665991605690697988903390482148065938027483263080402857963477950754931109201837896593693859680278851978388945598597047359191916980263824448381421007920724266033119704117112484228693624494423742542328562229420243277627603261604090183017667714454029385836043375161370855361776733272571598668926753594232774415833475361972559963221702246354204709165797126533116637939493343133252782097218562240434340156550345627739830954442919814337583154829480065442136599108461115235335920123313003709827102335638044307574002766327703779760177727712654720671693611795128655867610821192375025514938875825199421958352854597405024132486785983828578981249896801691522828810465731351401684141889413974947913032546065839496161308171003696841696492803862920889556362942937925370041192143077820268115324495495156092465950789268646660072057219512230400826264454906056856295309631491871915540071475711507549355953158789212556515869394816793220833013566915588024133942332423667911157422048412017950375775182406006698175306676301998902400148922857574786290161996891908387146089080114908893920677795835349496056026543953604587099171083282363781100003155363949550476227852473525283097325462195565510745681730885617169111610881284184216555223227331106002365798866513290084483644665549956618689245838705051358242454373390355595640061611037371505424005580501910522653693519296840774509462082230181559072118134746532424665329978768073418733047244664216518509794663218595125806784818494276730084804827059530270812581737516060542043886351606690132461906904611382009080995623352738623654324064714752064970221719523903288458791400253320755841797613265043985189719663881583098214901779710130935662166176029967867716056257949410982408962471553228285200659781459349147318279385618449356506601840699039612433275942700574119684400861544428205425791028789572330117795568152942392564113227742528820894810697014578830273696179960699894637887502549861739527803494903808215664600123100231916261399653764383953891037339031542941658244725417400541014106114782023586554381997266493098631679617515488848239922137969604720180382759517854104598005666557095127867971394000692834730593663995618041734272141011644292832375014358254014102720840056016906058403401542906443268971013607378588772765363915251071608699953592019644703569376933434166967859765841969345682719990447214792215002607522134792723353927993499615733331313084247240314776598217708695228720176236169905847248589362209236395837021906764802218210395697046656665250098371136586754948519972016929614281594085081405448636668322455605688404118501809204360944741903233458245708627367869397467861050405861457570201185989209016196568658564928126485382607737593891207421824596302242417593125270298006584966873288718491546345652777114814114539190274826198975806938312948070976962629473741183665280527000410205506181188155005567227456702045669833281319783630488135302944229668684158331047569562046856906388058646200940369109782158426005732567484038617347813490215407085976918570684794535416384665402953138842639359142305742915740742083482810490338309319335000131633613570437432046138100043950773577734212745179832270996993308336109584319380276055696569904511608095208292446038923431263673742418559061859220851995752262310954660780905434678956004847852915982367037439442721381879446942658126086229522362294358367743829142799736594309215541439836723173472596996932201918870866760016648802431146051571093878505801792380601144438352195042727248647858830458344217349351411121065854404318281521385132164804568386133826907031163639430377099447133398234260062749033769208035987157093313164295620386713906089696015779340322167881916733479490498419548890572287445757444795957102905967872829185908482315887038190827875007947859115027511374373864272789429799413009117447703721258238421640268219781512567324690582821842807615418642833372035298532278879819239202792071009366123409823342106932388333240144585693536049583077015289707331662248968511040103635648474461571046383436790257757114269754394813795117927259245524167685432527521002326493249598114414804241187642134923066644638634284134403563757698618973439305552421605776854976623067639176943023385360333518820713638256546803806896942602129336213786305607812446036857024376513377989689976345631604249483538241358937539755227201195559568602033589793700206507298617575408539920048634400962147741137951420579851026284310947922217880611736697674605879107120231182140823738717924604741585770181211425643501258818895096662879891639650650953611678015049557525613978857989736129377517575047923666466911955801307211838468258252825243498377662248776534450916104076838623242289521474317191951822226978567932564772109605770897579346451784077324529063774184220075734402219005414568800891619524582669322082764387131123970604707899422384981663568114081595472637496775158567304291018334326259397671313844603351902689100082423617281072629567940848909536076035186231438121137468333359873298692510334382131355282983349033973254185283566742282952077039277051954436743229859999042417584218083540709209435518130551584308382705785014140373450265176931408464746917586830788657524554305809526400166053792363053061517687424312877634541446552868882063848812974900205806960671648821549966246814908696295730322625466357131900344974332718857720115939457002677311829670653459082267264414906605998798761960750471542395116047642183069337121756610927485477150182005384391343336715798861292282476005614855528319008623843135582669954132452508947241875441490466839469140990424700017006313010758083332027167131733238509135743693696361670037198965518595229035286158427161180509952107372632958822130803200804098164795503637131060264954763507704804735487102029278567888488815338294407224093767537566344522475952474698305427104115382112237330048218473364580836557982659071791658033013451538789705069088906474518326286082071120585411603480391096833871268839239749584034311827831049630982733243249499592329815172722315078506520095795952413136941382984030151769872290038494793391719494058068264813778632471612737684966603892436279349353381026962634969256436339538727393162953261758842911819390417066055998288745403566885470203663228604862712135567437500884759059205402488308572542631909621409092056556804433580466527912358161246510502163391845035721489142520414706873740111099569212483920454311706882956501625402404877939380467916209701662868437159454968058089509595686799536374220844665996081609693514921116193469104501172682137378963182388319607575747941193379293674659301435923433122425093715328744719256381290227894833129710113921329515056073651521059722621613789628550073003849616742753897384655018238140772726527743526215527398980841901937409690270306767427930485977957587813627642767686644542431968143268552713270650878289118143266308616499379012265588333252954116059950747187295786270647971028411388889297423816434918484740314656621201889001317568249419347161733962410553223119882998047126277028863615310812247195603777937470487111130049246802312976380328067594185202665441811979645638141308863865653484955256687825952840770278049776881767046667521641191488085459278005122693109788045939904223477064173371055503215362304561131246516936042223587857214379930538512953557853328138505607637904323697162631040548234942604633188217010048601496411828889311027945108036212174946305615189191854139462699304960416358890525223154572359338667221776291458877313309724796100001005383543953147149586697288569340300979501696877566093672169760563233349305591402921094820838339126700461591226179533181231514327893292895923450332854264199495434782175936441322987435570656561157256611064832220732364427110975004011217585789302885197073302224421584908959702405847783999974072681675043943358940895814755946942424010499763481710593441793668901183514949325836846653322571416835511480037287451624608432861632350974065093651885439465757931925191568141714986523748910928488808577423759616436370712287827233827663669208526040549026344285575557396047912564489814971184142062243947492095114948305239133394743063584147663144775099302379110303660580011399560483929974378768378946077197727241491538443836697254955730656041663650034577311570264294833136544499475109138612893177831082202418352067721175271601805074556871248083755777882705579511707726381944144944600376596317631825903715966040203900867355404529611016485431743813239019456355094446927031045076637662550045356610701051843695022853736908798054797930298860526909711817447266166461403436912632734822064874229204305126192514530728205237763279383067225255752919057972526706402543772253650144841156202055347585797806114209885573162976417280167401504606703907540399478583077547614488741779016670661083284866304350063321382122225175352905721628300761230694121896075465343869487727150424628079745942048401069017543959605266642080728099260364807904592388628280139212219159125270188238971862937101238007244563585079291438625669151360905336375425479818017306713649158724851649773952185913488687130186306016469052147455466054397354106902353063845827269599577262690417854840320659413443010001280882200017203080637873107244046549079070536767851611087538652177228740906970201972559478098576557945950340868959572431481365892348036196492492429946844516152674350617841887805136344110465853241583791782142125015848147116107262491396151494247677532680933519377315373864953300756895051481229088631255461510885605616264866480983316312984300689915527074803910600185244067302531402946311447844043821224315118279670063970787541426923053346678099118417759733783135025390911926691989446889818638369541516516820686599069761309055624558873085192375490263341823923587409930947163568526974380438398319648154879164265567802291647095240010322246939146020072481812019860198992251157658480682702452978969143430872602702103041980105961668023620205588302757312165084094068990015720177727836178401610196729584539954717426402490394406559674163580141289435601214482244828453956452298904150445610086173285101661882916246715487515967949657578691019167503287829098202372769693631696126672788245452780308006068752597288944869437283408540333097402634793936285744642395983547002598713222437633157964669222642016133861253134493824454819959387682660885737038786297211203871632605051377369853107422518164988132413614948648351555502973298779111481228664770354172273764285646687228311247296158498685399777416961468150895585743139586462698102658155879929312270172842074942195884721435433275289751457261244838016103552101606485491525966191817455457162830596767669654920784932200288411284935999909012370977122475899385003294713486049492961150893258347686233894243864089171640851109997474908836108782258649881490573996967626317682401789663215699941742141295723192257907575296161683444170549588899195990136867689154928470012940917531543803447561323051719930596695724855686818090595760288136947733376452372703509883616216481042491694868822194114472170564951144876342797037244051886735806914393084629221003268427605752937620184200054147094957800548959796148142995414913338146446072910342720271549606130404856795580079258925632280860859395280822111904756999582958105554752530137074291947976290924121044532173169697205770593477763549579612878679959514665670849482827606221451845227878027658441219659644789800472677614128248705440689327074383335359472727940295379782173748960132031305787233670460729325091291836407847344165445542980909444071949502206103578312306610901976039377798843454516682035449544129523277720934161132706173977991228955714025063282067782887878869754873824064972468179210737906523646758019711443972938935144198195744866907859177706214819405951345503344156825119910490767283052813288718019377517045062645049785020520092879936758644408592211362168255696081654120711547999809879639501831419792129253695143540610391525934525077654223507381249867555371644511142120134792794434696818583405067985920388787588274737734787485337913649427113728452084115742488053610632259542820381589065535478396978858779596975769354864707817813420263586683448399576518253032407436224847642695244256817580170174669806843557703029540279251691773850536688802328395584248728515021898427800023348167497069993393209792301215631331806088683495214276857379222052608875767881319209836669181107598252587834163256476153607796176674554550468122532640532619975253009732766286757700499868085423061383607544854511988069189707386846413204500279412221472168899077629776271334299619949188242623293087331367199803058708116031290474614730239638422012523511675876950994504484902719462267927691852962502936699362195938429386884757767749932376399814163355256536318488292193288946862708918786527017175100925475920504022819386405376394715433312863236705398670528833398866491833769021593377055011013086248530609430360940603245090783573475979286491690666535826449987908918982393897855346427967610975804672938549858063909203824864760849790299760096850372831947731460808493215840082508889620126763509744330186403505203177858084480997941965487886443817015029140973007428692022420685981353676767781948492681967025919827945047856001884162379248672731100082627077557085007135152839415183826211911093897560568969147141402884258625599821338983658253793445949125010392368569551686625430064151402835224615281041418971516938724107604681963899461310708156171626953805240673763550957243653437237991166702173492410750845494161668109535236087315029453200041819134165629624210840979234369425122159668736782354907634449445030717826750661429932736687491595737715784591302272060859777057055447676061147623708065548777632545872137884391656290628335336231743711628378354227989703333557379791047342687243096653749902220652618670570108958405933023057165610410829691116699042931391277665007617319516172828158147179992903427509609813154976574839487727216791461360368146313753759676281382449972694569365282836130396658667775794414564870401327869603648290924701098672368831115248006988731873361997750265256484949882064169809875903866289669510433302689642405178305837108560882858993674197433638571361079876715254574066784377689670943692021623126829222229263373836777548506351981764466846623390869222994420224192886623684336434909259282888305622543013927269390920312662771322405140086367590398285270912638946753360764270613046200782011588429367256614786495621587453960570774814109862767324736325019839123482442352233960234825642135956752975695966794966844918341125602048913092116906789821522046949924676765873360194314038076388792097529082156563805772410574043697208069331672794707726283992998965855734960286853592854243394348479609598483986665027826927790992335676842889700485345603922271529220871341563130937696711140779852773699072591396729083404075283153887865718599399212451316906673602468824590294310190248111746066511110624534890467363157284241684532194209368247959674335447376265793187553847108868223081409202930220609351476040879865919553237935452524664990440272542201791296974030066988748642002689256302188983809941212172659876058387566586210805605318055663184237608080386446519351513127366912092646084106817267305498993273535535336132086436434960493728158215188843482893354986646321775449716149303615171105776754648662546564672434577325182001244624625395327432689629910944199516320032438989157409726363593099255889386155090566087520668316118324880213995832401390979713009057003733428107450023859821625436968787479578698812440727805895397636871297288109649243006481483537176559567135074340943864327115221642548034611660110346334130983591035774852413062744150832988810751409433049727132277267452301719376484324707341683319224917339798511379041241891557507319127966914872409878704071357980177765692990859816481499205018510761698103752978221118481231101449041883880016954674566175644467480299755957861105970462031787989795926372851809202745416155870290891135611592245948291634708440336218193233720470454786989613031000712190383523951379061157774733177614024976525544898726107190517195013612976015431887818519939794982948243824934270394489078739320546549223634314629680136975417724364130264503583410017001804004864258431572883184336134291882742455069870937637094869999969778218527657021555004950952386089034588005922432888012719664677849361991466079276825811852680209434791891220171791317238839645133054484180840742297155024843155108248986826731852338438479621033763982806826899231930650744328273277278236347844456001494491281500546997512946361147786413149034153820517021199862832980679712318971479829896375985543936305417664890487062297684926989670928366996607990707365743045980021501146668971121104048907678817932415096325492815215230121392969849197908982685294233967796307400884014304069155248790936778887686987723311582775682967763160005434086974276829139040107899012197006841438638328205572608436375091043662543614679031134822807386654399812883267247882297954797624499774639002777535129362950404103722421744688685625279677997871250749626721629092308375786096380428392257211350232818542107577701592966056024867378429482708916391376230765629448168974139131211840780592150520568228062744898960798328093037531253406193744880670000326834812829855681372847300355049100154878388794586417185662053784598725485531849577494670967238058245682796519482961265579563663608887474608230037287206171983933972488280090829348915286841366034059668005252734387905375493223607704150236828001587309033522552259779568641121447879847764214087196659254229982733153894465813569785767876636578859029804787303421116602582192774441484249235123774650784821734042963901037092122496008081899071251868501313084209222454966977859795733682322194806942976544657587109284169806024493965389602296033597473850958669485263048827183571989974210322193944124229759217012319944452064460901123291237211284212513800162625759354670144109408456672281653427062612669877747716670945572411319981872360049699964556174205481468701667118623323988979137311447903067534189414427260177430598312926895533015928094143671517863028265423088268293959404924558347265218572152045786425751643593194131665101079191380098634497623408283993616752712079646308084143076737112830049357916841098491029703246284239555958781869163544960760732320846371917560676942873210036205219720595817666047116840799208909823089349146413894229519034459399173781015082566499588880813887360174428058166864939524046904588453480539969035616548928972693449969552492098773941079247894102054684918863158123031424145065368209688443763039610303281665788079110930393518412344860319971150751716333724837226036196052621073266466135444368652364538057921141426599253399377837171804487646115525643875746831632595252522163871299453969745591367711819411125991407147794392756001616544686185709516849508278654898186161580213634494169802976897500008581238552232644626386899168934552900581554516313873871776427399144461970088998362965890857202806230940790908518104250732729150281739310551381396394294441856048889744886855665208605264407494429145116949825292065648186465652101874177180858336025195853234492376986184220868987071928527286488401756602931136148697269929673491157571701147787366293233704626652334811543115885764055991503094713504629590690070095858856999856190481379782316410955601331659912062385571474073558152584029436632139180676013356138134817379832990800054625486730159387261338006138737176410169301112169888065978221855825182822304405783822696784539796500404874631329124015108398196691596145709324234884033858344242664374340379252730677732199336978051895848984738072921414214472271742199614359905537878865415592426200697645994297464954286852476104075783704166705863809398706179054241806316292084487182860335189256381118113088567962811808959732894836259214269312867848915684884655741936684427487816455308732591858599650696830958596711079354305083110183890041510519815068310949225122013913522248221550818106371872962355795826400736752668799957189999880074767921433154106857776018307855067311718439915460488372515751880192272230655579630980344185295842793392314041292953609679935003479965623983004318410086478711041205931982878699169334312314030627806370026138467762645042278663546783304950327407023457235905845595111051934546262493577645822304658399915271392524873604740331581667321912159842499546997144143178408230741416502490604719794125728823810340974842645720559291505286529628861210565009605172573876858245705270542295971788254821658268496829241737867507299228336886334910899992443245785128087701699187219260414073084129338203018029826960762936022662546361764267293491838820397921208932470731335027699909329656672228443928106072873882795570635738760268036445204881137115508211808042382942976348889858286641429513526091493834079071032765723873049294619091987607328374864900930082111017264125980773782037673398346520678812930170568888685472915485436649951983812300711576029496262543763935976409901203535531487934349636971405741635943617112715282870556033833744330007256975829786256115903087213098431392411943622786685414239481207290616264413547916440510031026307417311946189726287178718351527359277254303817816296324908460936702098268757382958438048896787140068271428516368238004879432185628976714773179406893350431623975688291026959153280778883397301959875629697271432155333820710114669560961794072519997732819816542056519390138673134898742921892090842786454162004087445488568695712721007956886251906050850796092049274157140491265911130723772400347410885315071765838519017412171077346473162046658427432525173829613760902915471523567558233442805343268195026992662807021171441304242594045846486883371152962757952869241579011504307865475776813216772252583859257860223960946882114862163551040671686253538133557198007804297208164275850652186823467771589537827578994863210275073807346945644810328401829402967357937754119173058649076162404963810917839847269627420535605331838926307516238601368356322881648546421426060954165482573262905962731376569943490665734663094293163906550374769427467998218104620064530057568563591855792711024097994550036490179058639596491994798684097835405814314687104952836278677326252795432700708006432530678037467503608181531694136896434899676440145877736131588699514244268292412690242058629601386605839117186115827834826146078954684095812041816764664991424664567129730579608551581724745101964584331337756561811294837465192564013610582935289534507147039187195441846950161908903165851066808391512533980544697134181588384890167553309537350251525712054283802288742859557389294476573310776665843549108297450650523208974049286678152949513454486874279397645626423733996215853838069299146434691018745234497328617984745967738380666185076390017924557018038919870012497940193712771428850545448616475912731853345195021061261862463694989124578148375385627425701083876101111752674829290394960466253580477245299443930401885153891650172861995764689081353847173911659524801077467667982570872209578043036401377957813810790252124628237833871158918713689933574608495926825687278420082451338145812076597107937724944930182938711532694387838265617261751473097455995007306736769363469693468491924016554280987517989537395202200215517697985479194066191661089062631581695423370152796299627869922804979324795463377449396644992897845109792913318139609687358366373320856537228929142293659658469579834071947881262124048559584492371032681090475517319715118905887366702524332870261036342802296615668503605002453646832960115476478959287430644839138479476510865798736752900751177208391137821781827586205048354637936814045184658074110865406698825605346546382644940388978741481014671749009647151997939548593698054680014596845397650503747519778963330702789601943990416912966080097090199207379498944960453341367509362485292111622974918924379608082947250219186893487232179132976106903028786984783771050818768998249504062470800823437222096478469758527463795558595408958790939799468625442220020607734231428312855321989785436191929549944067778362679937463204470098732142621528349794299114414087194696421395396978158324453820497207904597659551616095147066803391384203875425296372484730908804089687659004066659604615543237308263284044694506202414683987528618700065742448947889315261778230532546638955081488231087637474266896944880105018502294735182452097571713444737769494744728375668905496056068902893456529185315869236560083563016748604892041232899327731857796283315055117217364340647261392894798552315369202736051881910210813686349439859777568390870097567038181565771861105135828529120438232775599780167748316461551324398849925583950997055519900065130493241551608118421814572280956774811806616362978948811428183016952786911352261771822730051220313616098321512176021884603742775356405604892808826208367307609771095103338394782218307369786576101369817215991696916545361490083713180421696516927291948425555579168070259855303198020872847435432353474455815555651587390577649454044883819202070972014712571166908607321403912771867386993093611099702520998347903968586774753114697417660053262491075210148111218198420150998810658802412591071915463096552070394531866581366197599360876839807154971195047917588058869402321677547914571149436668618237547635625900230118021091099843461662439094769861878659006406970147160295619302898893310223267521833298766855313990413688431701998621105146240954068258334868656837562724638016171042060126031826301481497586113588517664284884129339902935633876181566450474349332035542900073140715011987781403765274351879685495645575191252501231718143696323063119799075158778681596473431201396891323227779045758073409317461130999608592826001548370678815606972059531934781784098671662551051745752350857905393616005478522367989027337815533636990380212226234875054291926886402842055107611437500318771873550593450446410935262582853565307158345285001753866396543352720794026130929231486563331254957062720820260204447552476063103329603732657790739089510629944899780483957087124892980721226020311393978275591584781512623933936844664118710057388285588497561239298566720847565666015925762209310730830316074499514671524488044974788900630415498531904145285388516751917383516527974685033098213818096982685231580177999470027562783492325190908672176534469447479699432233306181628912361534132931142081248894195215026403750296261281475699748661520884919731986853289579060922628194576556817871814419462362732019996247081986207217672560516408690220281201881692557345626785873176040714960988302074801085740990187006192269319483168128349975026232239518159297879045751798526449819351846870247157938924494778135358277530537734392606725291496559893530341842869993620962972387661189906051296956063716298431841301639459664666571014154203111757401690731842293717936104696644880124432940236310992951178616228135680154317131973508397763626348303012356881261238071458831496004923556187631171912270325376314367895936986225660939142624308526932803117141899184871052735655943283886291227142157773024979868981285011371490952329946236277372531091622207618695067844770172637385774703465126749622102177461824747142927997976171571669963320869592652114009007016204629461550290259453858750875877943187338969153753722256414218153559631652684440998391222530850725457509465832380867285325584944953693297252219004214801668359837200104622214666858425813612414568747108137533275799255624261465334592809383639672371006505447915046831679460082104658417433265821205027017712246693114470435173178225966175069520612501640527357263838232535872241760036205665987659790481213414808470251911726641521846658535790270622013286610336841354288129424710618383285758857406211009101466646590436529087903384769710134675467667361911531810356937115012878824915006240229279602109571936575799023567968542768710205877033668661780234941289854506465881345608192466397849616871436821284239210779240842729718138643651130873351332373669146132579774629856101325473641991927591583733665571960076846374874351269620239005753167994472933783521704929044284441704102975614619758716378523475146302297137810669071407282351400274825801797694409823755935878960495492685279532248360066249404852565003452754384256858865744876715244925100709735710610708694549755910300994966159947571285303544308567807379863689722077784211625184175261249642897875853843510841845287143271861575930432134851408613816838104904888626559945357798173698163907390544370615539587641948217259378825861768204903263641672446668972742397975836673192249468768431938709206685631598762407268044153352928236186009341885104166859514085738807532471709207723678996536700825915621696183054954594705882564052517784500135377222515030035326566762044441370845149285059949183134228155745355590138219647419792811843404851021347525642341007956506829203401022844752723986774745532085926427670608537338153632234309804371984543501834324620697245600273932420324094808545375524579528397439698342156984379580753543491505832755210078672702412177844411895139132133171538919044783520059653089208980657633114023692951595125197690348976144331701536669562803244906301837897251498533830746545634864488894846420716282683243520361368327637816744432444718802308084511043001880019194671534675108185781818681835568125590894397410575427391932670543024583995844851783036581605042977065373779342243194133585513473472982608182769603405903453116042787307216342159417734482901415612234215821114375413692426020896439511695090290504714415336676309187293681738149361383735351386281117850466295495376095744637182429509836295906368034363371662449211900428645395829471224560654018734247216051052674581217099740120858468768573169397880082829002928416919246616289036660363141123664228976521623599740105928791787869378771545223230555600545875079455476602655987108930312179046374274516628276848768162991196802131270041777694530456709654239003161043821673893496942512667260060620470308218560450614229909291212552273149425854839265090492898484361456495677720187709984628503790071757242243858278978963469099641553140766064919297699183244258426952064302504044192914940787764591536998749080566070186890100102943638272483606857882322132757436353031649466691307941593157526394856593328975832716156266149384686005612546329289989450346819601715211019600183219926565348690230901234634557308757560246772645708308642747978452765544539880339163864522070143459597022980039038142967918282114202711767983693470091184099067121436099340724442914845930902289573532768264732925973354812199480941151543664834315197576000651026353491854526664414195890736335791774581689377847328052091407126858403078088790246170540483381729162756174923683850351313864918818105980755429874461250951132313343423692923989380582467325781540233972935625771197406690197837686267253715828217100887426660352780580423202889694306727132353709616553514308117824609723293425560385325726372482751822561293245049722986004540105204108668594700256311115185361447511710482292597927773396001429119825775101793436848578935644324508778630450041497137843228849496794895860875976284011378751955404276006898936019641797345516275725231417460744948404463815117308417556797431150260353703803290351166974416432866394025709833277427359106843849650549736875571622966535447568244001933903947604875426080686559699262658180252740806940262292472085760191350507435119424694017747388543002626350662946780699974762953401626725356089084005090230801603031968627217229509423032790621232363311569776411279072969527784887900174255134589659581626910021269944296399199134498708993838380517292058631776900425095781433328542230685030142979182464670371741890662547637514917771591974388810581442541119156002143919374662988844761395179268519110770766330457501646307960196292265391804483524934179699362486105985338525732251570685265659165675991390829007847003260187463038724121125825693525953670105676842676450530420941161927335788088489635740153396466018844475346165891641545817487616108625812873769855197581278600138699192907623128873761266905400924374389755528051050934843533870486937623859255062874998824350360731899664101642623319342412999183037115668062781830423109523643044320131370227410713756034883584064994951991868973069091793829854786691489644397187556323816527234857704016113887342843597885149119464508838315339469373507246070180211257912016177596525696454024731060631794300497122485130542288312084304243489505833509153893434976642732161620496939877559319460492956434368445193023762383061182044476128347636171418414696849577762479403990782162877869417376473791959225958154464997817696777527866186246848718267041880906653877924285343449841112648075047815918411132150784472318812925059695538004490387207573268131979497849773362598834283513836652094930227908178301117395442945733758091689991992915839447551872179962620297221844136702538313046247033805690917987262296096760499824285524768173307509808214996316503558289179818686810944714960478586470239613445145895934202761870392683656043744758597003467112137606693279128060854450657661298822916185901405600427412470177406815082552844122221856189898831879748034459631163691044414454699282386951797632462392921935560415428586765821076459221004707809387150035672473857990234312550924409165893993691087005322186962292822465168771621501360298324365421772444897766102469656772533144208617908093223806606468067791191165736132556547077846665601513131218352523801117258102490292461916684055458055907603023749374258946515569317267904892317399547378122498523638641649565218409570910609842388780838456297682581785254408057970599333556260104137165116532412993727316664180272562452314169904377362334278922940094503672519309334169458646304358316132408205622328175481223601664659549695529573135249014018792000628134649116477363190243826003245284525910244152624195816182474736478462982634353854403591138768704382299905044725317115975427767563346384700285893890664941622588726829395265160498749070914212937940268886692880179759119721044445012881268058652262800446259208196532064924185921264742292629464163492439618346776145775125288452643429636243134533862301662255360840339397899058144973518489450361556125420896491288252077463450468223534886822065332588626668402829672639328770018005116954833409074108154852804599856672858795144068115467017705274650713656050945729147594102995854891362591080392747181345262939940322972826177502568306859277042231673224107048113937255657776621090949709813901803668994728587257456813402488489609029194798591461742404605200825281824713145194215151416143587984314243439401269549773423543504722370651659526058432011852292684932196003518021150035811153374940980853919810046670806660435287643658827536088552305600117724920068361247312232309869770140191241240310682622637992807113328007720283113537821262165052289017091900637469526350525050885354640403806749452148681643890246429883270601578432799845098984460294260031880477615951285581292034585695331772233060611980575497403680970644578367901627486301382717104174555705669358359790744677373827954124527807016045257096692991684152363539859963864912796090920468736587364931679917945200998143611350914084634549377171833183364365714207817667609987310908621868969833610061703915709736777879611739161393681776423432075079099015262831062703314655996154553943073791843723376455775870179621187980033005196019253872811667585068665370331713293849796024746895526436185110751431185839485059967124802688062567040897149368270443815568600379638064759429047007625142512983623688028583793029648542792997341394416434665118911826225143524611998497832541041950177605748577655938845231626395937222668084006264303554008553666542073987480909922393673028136121901667599205242837340947655111992105830642818606217691833184678118323780449734062391200722423147759350156069751813834333018160610212800014131834901417740078265706195061075708467112389011714655879434582210509870088054239186078448821957700899154291086979051078254670733553958959883163876436103973616623613514363567871009466516273494168912374754470487941939569130777223547584753124430253639526218317167149185740386711644747822403777194921456082341847376526324575874423924819000380018189726730007103317474063420058427084605703963558921174489015155753256370242406499744327625075884343207527746657093467349670872018453636266051503077984220106744477444374238899089833245506134469720162246331746107245488693589786059814413654524317774957744881208564322993008362160331013276451777519344289925946733875880426241262491066243350525478141001957430949828072258043019068148843667668520769339050753965968228139171790291112267341084500267619797433755043497131534238343973137252475772130083775875895213348163260224741861604478105506943944060639815568342512807396434898087146657453554604142829381829025740106131001260152474326384251287581874844101654803269359221112304904322520119633266643823839152465901029085023756086437339572249361872350267283300241250451114242550946791207439901192781581528711509738366555365169965239371098251566326934440617550224808590452813793357843477327477348921775896728033963994713122072675503973957214901922293245595248194289927671030286702575653558253786909241942436169591189682060268559728457401047221030804078895260153347303342110248394578202299904854316326526455020002873213480591835853126254785558621227968524538709324029011116588496737836148761419079683190909628338488163173782816407789899457564713937739438144873551087193946039807351793264947896955635104376047028490648451618800707167667900959743821797994171518754414688638457528776477136397105119909166510397374419571331236197228443147093388562573026060371138443485801513670126419332610018427227927162619115792666971726708321222107188581179961363909595120631508104254870334279129538688541634226454426260406312546850776864646009965026292835239256090634450076323096758787075673186087411297047124807385952107209819821061365106228322341160310199956410902132197228495543971073877034567942915826032258398170521199662958487322246488921121441863459340791926815772687633896603808189280624285223055863636772019658286435900180844446624228547785852084446255697026505876446272659535155047543729767044405084575212235483291434434739158921243442857768383131247220188355603350892341286435844083061345446025081627808959251140280521176830345193466194892846159548106533835848780184731159897352225070840745958397396785112641113459074049693534244615722743390061330499883642930311662481386135785596548984432635797068578052382021893331581465196479862619524158581428732060658498454048798245398709774443807045574634287070626584095036443491198301230752873381457148468398951152229546191213842212894076816386546097366138133771732637283946600776826758884839691032339069005049433088404746411392397292743033987635132204186473415134053731040706091448716298105148709751751856283464550739941047282290971132695472861250432715100458405849816053475746603326810636301903332749235858983090367613913707880923835601211221863611766305815684410167848813039657429993544130122177370948947418872839551238972642628620332395798178925798151446518012170671681539704044788832872101587050685471640084443363162751099874661466301444915875963000258463272394913300788541615961379270877845941877497128012689736931067684932752301974451719441526588862539345145913832444775125914151932325359695991708238782216879328698289185201804667992804749714986287745437900682588523754943766116215695474287704491060641129124484233339031359407071433778709899304734114566010633743785670084201093672628967700302260199294650736067686357504914762574008954770708274361604134836137671770892727682737098051460478716078028409970293195078277180855902298239561886452042900583909176104478629268916446822628150256430401389405553293290500453211484456801972619216812733432823316688597900226092051413896451972356966549431507050568257013634536907408056476934834471718981100068536910825808498268906537610398848537012811534279736108433039984264807632843077733022278158058472366271862018679025312984599903049835656809676563207687363892993281367563607652760898761215584578098908555081511915297982893215524733577990478000625752737606405463091964093018083480383951904380449745107006832928507480816083370669199782653450893387700760076794028887239233142393667794274763531550025203511371671686336936344696770192151747970108369515752082264440927417040478866992778585941902877597128822996124913262164575050934347639186412453228204681528134440356575569882081657395819881494739943109110293558057500437375710015705857745004143615543829214478776435127981899396790171714578884149124103829678020437901311036080827047024124643429404895966146134894819647070580585946388874473450785932369363790124043454922263196289048251524080802112976150691163828405866631941130385563349018463578628005347389954211521614217441726307880835431797881084343113525146313455113747253271935662275030735856030857452253329280292203929156146612148190941499713836149959792011710986925295637522637635643313733469996522379731547906375270305405285779677923713422971119723036786239040793808315306125764820016141636904395958840847089087120247816558934150461477943886078002074172296968130715228702889665069189019336930576539326400655320305131462213889387780682024203986673350888567060260405793522315402656922212026476521231390033061624044247273668623447568617202917594774570163132615651353504481995851557442892108453442066858641614723282919407813190694135207567594728216868235122376361601111462377881080308422087137470761115913770838242905868282518363508925058598250298188013027337594559922995638357971387070352176736763439460896832877330828869312548584825662214550803683206917322914939605551582191868772069434075600754342102380139474114718677935470399190706213869819940239010776247007508555571270991382096367351713782532593767299740193684238690095688222102654528464977863815802560000290091809749571609415834145007078482242273395553711323601193634585045032355406167375937016259772243624726578634345473877749907960658892060171972443501285827224997469300225610237555451107203461151213722353076389778023468092464496749782288891453944266130076903525984143726473304486563320188637521519110916670307670088408785719439739658816824879187493610292717852714256099969408877978418885401729144420792731567819364524976179540938114680838329370549586517268211607850005213120569935613083177178932411732653531864278950097913615152195466627613480555892369524964687013819744107404401860056928645429462608121441705579031568105071001563304393613565025979741039549414101690564995840596297172291204812270542724149568452977284948914294830854018714311895690135066489621378521976018793926698806343139889078479789772271050864013756435573827088293792965570446988079657652245568061195717444237610678975621165984732790239268023841828716760683052088850590610378506090106529364060564514245298814927183474399037831285330458839587529244993353549611217416015523591625414823899853188411384951235057454731874957649769993058434948338181641082608199223824807080145696259317466653667016005593472292070328375406431668734259262493990094029251489538681862467841203905921274577012183941293844341139192853174176593280629400809357960796175135928876658441373860226669609053185430658984138207239349584129916970990872363589609055162965195330503473379045506819025948586919165824983359640258842966484949681459554994350446186053245258794086786255656078535218925976378973734284562065611773605345498393989205614006064744405477775309970653193996906599024323286985555577481507011407709365990074405329338023941171627699112296286885130346417322904994505136459776053253117669950972883656682466663915012173120081037133936590310935155246702421411990948439718956946288263726187596377623241126047110191044014209001378835219907515546220956306228682103976023693161771880779328339670860919064621480759215101233510785055352205654576443513000114487641064797453111618415718091118399281424753248239346852870485412973193896143649782672869327104059815584419124308342526739921122794447308450685110053532517754496374700553115068117354114452204778635933123547277250698237760888611522855031461850556466688224694764926505712031083300816448757184206413647719626754760067204954570242647697145321326671342105028833503084445246425867064873445177244774366437779170585401701822167584209833140745860161668904716602648496962953268461348840816831541477006612070183854995387542659292873047207505550524705324190947183636513110311864468405243086453153184397421321872397190830625846997437964365876455388914104218631585273191509615391893065657158911886789799786394321080538914915391002132811049709291812167444135577111340409676061183610049083245876415998760358250503838398771761551521713115016334430023342628898889113740959340047420198664887700040377852673011372798802241137657441730053511164036111132983385816650718271954748476644922687196334179114840608899020467507857501293689017931291118192604443834722879082132090057146354484521845501036573378859981715460731985231336408916936272957998179311147763034956181792946881926688537634875734786282904413616800218108841778625062321484169785137917291639468446556163789191404472022613693793090939678839454887020782936941366181305785726000944208464700480743765605017514791380401147598373175722706131813670575956935556416371448741634928858015616406755096567449609000763838783920350635547152991844442071840217958737592898089391342195494507684179703933254316462819564688694744103556556566450483247088330957538379058711715303378850357579854681220410656134285710713504229952647276372910342914320232409120936189900392588104044621167694451657399394948135398080510437791539531664793241974092505692445201864672890636906919438734088221087277611337106244189364828719338105858932410130137909215985686001585233174904800716922377542624570351712660710307461594125642292775325706852686340739706906412192609819729010421185373912320206859697537119571241161221121210922381303382130222577890268801500175555247974406178778226943936153918365021948087432671108065875931175305044416305590746762486339328288379829121755793380424174462408891336278331291694436365801077808868083547564916193789146393959920962412202910669735757355165865483879406940962719990755858017246471757829445545953875129022054378230258601499440951323628228843706717490663239506246632559926949385273820659449283968270080253989089277663428501729500221037491804382316480111972311421988492549916156664150383017461780818520197683925336915704103019745063771002415977346518114985267330964821000546282240309841962020331882970420495612152229237767828204437440749115926431656077569488607861829361208522042683157263183257328329165601119685774702993372696153822793454294423311600700801916602447004581800643282955964964030889510701970919560292799730992381760906540210325220705320055658920730933395667167406667466700390715894268120623806300694246133363794781739301667859677105008642459195388190384615608721222799664097549662234595468460885013516547407133351025172314593258296197971517485105283660682925452709798344180057873864984575419370863644442989108436644815621251530292362706315504258899639008620200803847051149433890609961050587749868202992869336700971169437140788285889047760578264168545115570001721990809401150189937029645446630099612495198140954075668859085113192829254313600225437220328092031364893899973642533999156334728421628637115173417922400802178190929982225967029761099185976742890603111554218911851602245856772559481102177532905609725683791840146758520225793054781948611200781783267531914789459303236366452592502111453916233610051161841921043996788096148687777226339223760101107776016057866252680207554956768329185575650821374518928443989737278284290757400555033032208401554988487038604304424999817588822765137669405798270087499603398293406303604376842717223103220464483719745103924444829482800533353606717906379980028299699214125227501598628065234642473448709022944012633621459496764579225235711386143340003433788256347600197387771283847393911585144734558747302670862275733265868348763292463407688937115903065249762981256268213118342802558773482602708440463781311774751673132501076491753209206450174397202843536084764733857323759186336232840783718149551454917224222679394055436248845229472790425379239542880543795205639751502544303380823125485489450708975401701666803240073019742691437552421782708437089334159822075408675341700319679570924556432461148765465390220760369554633539913348115853030351008988045996244216794156337204553922299138161669645827656450962830582918513562621740706397810422208353703183224564590996102581952787133224084037853776031379326620559401017391768967461260140790082135800963460231395041736480167551003884643401292926398465625477270770953402725690214442633464635689612926381631402035202686723843178132527821613173663707888811336856961219479604510101779785666388228261863526897385631041652008739857295847861985042908086426370714423245796523785377868032002344362889912889661472890416145307483565781650755044619660016663158978178808613436936318038998895543058149996038272540399302892434207650913680386965840478984012428202187136454704117956299831816791631063621739256226378792843220975981235690100665305232485652081534077697283735526536267343226114439530212249330453856756136322144577995451716914808971930467280696623230752626543157670047704019927912388046484509269628457960497304732674292514020304298445293334403750683421357217913534793919275094177104341659302088914932209610720469815142249029854621093106911775768660582932148306232490582493830486271996418634313139185065468932397048167065036161976814336839757828772475598576470438576455325604411050168950378310542359182814951772688722855427400120390092281245405150060837961012727479812756723645071524394145183469595118416495104575985807993467766901944735242693922071082688039451090995403130027361781033741252871057501739949677135160089142143097887488948883506901453510500964030120252532727004464399676572195647795171087834443509614136950862285873366564341216128567263459076489491778511429670051335469313169000105645987634942154261752068002159087180096372432543424872043746786617657472843360486462102398577173454115907647217041784871064544629970897219588418594526495205692565514482769689707219456688844220108992771433480801163390286007546634015038402631477716664351411830229773699080763214310563184510740009659056061200235527187499147607402380578883312056135078998595141041076144277060908752661021258857331994174438841726951220722673806894811186719033993170633457137305410116379908988638585238992380292024053732202054961699304044187531575914320909127400252924803703196796840005556618926892492023456962042455901875201676042781413879487089634545104100081757479865816808868809498336209453087316687672021795089274595284923098172224803891743640620299373887324932954827366740606861724399379866646681696663045237707794834925418575717871628248497364092464510176564928766822196298151884529624658082774350576714157176561359202203679438451098460632030997358420266482681527237273863184570916544737385204900830049033711587140304489474361752405573810891015760842794396689055575694698666945259326890680886911791766940694001057434557208817527669430792266570951080442344956462769835851959525115673697388110293799923297846805931264536328579010504625298897361176494122844291765291987799322728113647852579862874850501017372345335187534944661338960013941519545646029343640659134414624636630097092125762020064058019724153180688123835909613020092610921484126687859343300894942364438608568519337642224305814796866417999861608591007716913336862241243770701613432298158410426355118179414000151928661419835357747274976083453681250338647756414430161025581455920190052018285918859924612398209002207474814456092704506409751840672723776829399244840839387825104378993087587837929864907341716806133256983225639693206898443858253990700745761390800288611256355678064888360160447239099922042542339223978561394379481072304450655985427294647915249313818435493222700273060863066113630061745098161582412403420404846844436350174211376860116120041083357986640854593020604212468479183540116853634017192962880854698470433022274691137921299047123144424706879804663471372729258943000231760924243206804006924411049745885233514539804661194800432481459655264702775186494666014484257188195912706080823173528297567561152861263358163286109104172412519466391626018302435107279559119952132872103104146651348614101711729027727650727000071533069537107313808287562163297733468099053452550844008219739708269194066016411565363488895375705618486020936143370258740896445572961707638932313084207056327653509982518092660324206300993140444928457430380061106351897459247864017074903375467727928605361666526310368176138350468779291991948652114857506706392619693946367959109259625353321587767416125474629866829780348795480336637152914185684978117863100204691064808031833126123482809527826936610094864162873049412032744312838395425283185035041000390344686650656488713766922216729764885463633573016368137757638556779364217278891557019551589050331289400328898226198806557691539591110854710354592368501427181005480122798908030637487352113833149010128854074988309227576454886161570494461216377274122370295074507115369398507593812636386249380059685585674460399366437331248177124745657694587461441161403781813131326768035894461876675281773327321675709849779154070311004800000275575113254479046203803041581339849759849793537859958080539001676791477803399638020701383092652793778039052680990998835584025487915795647313825737901593356259903888933139015487702433474096699963860571825402510979262113844906871426721409356635753915140278419969335087428859380484735723545014067757757367980050910995298811721068441919787227591844724067377421693938961215154167626964504098307131516471477390835408278414045075043961507717392240528969025951526578216877408027779656926400742972107324096425320531415339734963179874178799409764840715869378962392000651463369890210500742512729971058947688911278831737454136131672176665396148520613467464457250362018690319973397499748639974086681741138180898187234601677277484447707735469349724995890135305372831582982640665341897755346774366740968972531024741496994581909100485043418822588789989785969651834955432109455026501222671286409929853405114206221303290792528310139015146005207249378328900836960869963812947844657443236866820711079596710453627977686733364193449134210622771711212358556977769518525842477080485361229990671044105093070163402426298233725929650376302773496955220353891746854784348452986073430749683227524908168638153842645572508968378948542869743975632678203083854616073738814551607923192339165621655802549814709050555922687570591223219257195597345471242557222654139220691135361352483556163998878194783827891845499990406700904364785756796061601541480666849737941492017826805790241174682413178924149124093877011456609003534421158344963821223958573814178620400592141957045081496745554860251450338713062646430625931842038003137799831853709535614005009899855649625303585460683279470108533095335494476920455530500919825409073613272929316856006499904924172234069706613070759715496871002596307488188389969872736402646007782772246342543218492167769742450933621781008909702263911631498807356443207805101261503563709549743835888115994188469655010172190684573713115597817175016935497456543403181349238301107087322078542519739600057188415759497910677205789718129019316840526653651779681485845070863200622887888352991395761877193369936180645377949183717729051867951291222259878931435579439191166676195134323827476897075929556123949860270800218652562503065933886438273798374838632823156150726330654297736281503461485254189573588534677269348210188996243966483036824337502120919358014195480112140328266235998648449042634060084193843175097310071983560252259851017591376224517344200153683198160031504130335507041896962398056448376485426195390363506236826634909497800766036966305721028278038870425087641730503588339050517529152351199375841678106132101808387610382107709166522715868515334377339327954426284962017787600258501915505478994980753718791955300483906662718440690788102919146585265817770688796073552393322863955274172939765194196283262602105143520743405997693495867496984103121482137942692508544084757076459603664352047409522661260388189471474917559299054172342231271279865895337075169945322683212055169851152225306054370830779252151599823175247127285846061475160071384639216814281450418607989994583091765422790473821135005294879007417544193583782510605940949951027378324733608939551217449878547435813446756909003602006182686727422576073371313776007164401922091264370535870793166880934958259375286752046259073343370137984676269981758490268253086352986056997538737123299442385972359362169842065572388345932417022928623743546962636842969864559698936593027140701349344948930597891350267963060120714242395471594107940712295784472409362807303204973742293126859916125222498062166103419018952688136922293493234037800157928946102346283062639669266284002371601656245802660776083867453962418615125838295675192065169826856232262503462764421931369867988904441218250885724342694310795688029225824127926567414585609016889918818182642572922526587186794831601311564487811868300234800094236920819461808299684668951127380498144966879459558933720615751536549293722968291042735308602099424937181900076347908537863649241770117847797377373666689885430715618955121549594941004923485232158023448889346159305804884255045580640180646228920810274509856992496327775760202814874517031835956394826455610172291242338085275250442661080196656127425743227106258450604852971730474430750006303724549215113519581671511672908232403116269733953235738268828720023413181375981295993270593790312350685740824459778702412297039614082312783683845221639199497068527498830233256890395512407614842974177130548946922870814849892465724251641090785419637856862106106658976741936924779177566953590208469839306644271825131000738074160418741408213683554354196417830732826861751475934819103286255772298584860196884258585254673122567781331031542042017116748461317564595153898153703094426395488821833904572337750327867255930765331268225157505014308264393224736087170006227831756130211384913808138388078389293843041031007909403702441914631407778575494805069720644502876608783730204406863779667044083664332725480068211751831101879634855062639293453986086299806857689973212628495252754052542132593088349496023180079164606739937158348622376513494879626766316940760840405570778838735635417384360147148514635600497267634093975447947617779518110175249946125132428748801127328175162385464146052134883731237649272624778411483882820493555264427218193850645589440200732522813700888286363044894028528640089503770213757975146145076634886538046295520027642635214898935171674483906504083953068893629232914102707002835770880186153866075615314000651896991262767583050492392273206986084762489381640170236305114279893614693780985487840123064901516257347150073109417669819363445783212354365378711954970086085358913456645710635387200786977029981900982486088109189122099357291525755137175807237389982933528153566560132704148240648653689748411196962629164247167729427251631620117328138808966228035195329608038770808651830124709371525873214874836919887534899562014274593702166903725379956323834034324173334267043040959597890437431036082568312800833067987373378507774267722885723357311810316086814447433163864167628190649730359497695017707849411368074564002971471921062377091913985140560060403549500999079877735170639546878435113262986534981262198839610379962440688239210299874900444114032152050757510443563673054415109392022709502231480916888945650273061234037508086577838045091935805220192103295389376803408278147654032956218819001663301295626023059111564956890690060097854247447317051780814122574089733970899551498768391561024327648469164726782783033462771946462072618310522676711616231877009511933083409940524507260006223268766607386021423960838463110507140078948265814192231587190618023177502876315920286507283208986329742276930952113430773129076172456179213110186761456754689351387789256578548125526412783543353417217086742606017088076615232343826923952071056094367055286315162298049183490167998685311769471908941993457284548549080066165092420624476607087620097612696185664277523638074453942929572720180401725810901140249054693566215184490520686643967666689778083080276004641966255957028250721080141643842467837539261589367746171493134879838896645798334373101580884091759757888961198342047745608650079862100518919438096865765047356999077321489094944644292611470706133254550358131363077547158803463684530179473908878779622621949312340455055857100959280449922674705099913782371663682238827095301205441620148358879446716224743696146361169668637308481729092302961753116789729874023656290950126310912616746345703989295106881880444984295572492384599171743110379889923456048288836049907135785079941352427159756185755031776629627297838273698777223765239618313781276560484821092169885009965558387677697904500573517957433969700372118664680650791139347766534042680692051373474919460262980792620366416546076565833447813131795785898964243483717502466973048822236824632368755556347812353737315895285395178560713009524202111024910513274244919146822919895510217072378234258022196532777905538434507593191029447673221486132902267247822176213007771140401429548044203141560219903701107491741428925324132006664770341550293970871945417997961589212709612451101920786082128714554430588347152478727905861936556738798906912690436362740561759843330358676053644457335722276283453629757865412470988599632323783090977215623498875630536193747576179554515468088941620464841130578022003418331475379718428584885282280028908858018852738685059215439369683854557250567448186607957149422105392088189516805004431074519925018795976321093175364456167663545204338618284094194931729572387896176973971566438297277047717181185431989213818800652133627343639907202060655853036581278063309237299097488206121783230453310555149232196381934696021399834187218207190745077412903293920626007113512949427704427355336021199601394573681806513086297327719284951253845681902544208951331943676854252811212763756392952133814251511544764640806070140219211622086788721386231915068523813288597988054933074629860159999115152762660780327632565916094828349061413484673834171891470758390814805727553116120008881967728460587091241648500689192841247357403986277783179476166778212992942756538920315901715611374090834812947177908491674841068379098612330029363820231432712402203381121745623045743379238735671598400665052421392817880329988481083104410830241658334210675963318964858371180640639993088252143478815720152769017386632167076669502450133932090165973195045502806714379933850146133153206554415141205434456973302374661072778427629754834932396724811698777922916577794561935786129483676421183594727540255302287395665609877142812531036988239842925193107958352139359068052688075086149981879287196656891599825461726822099236831986382062001118591928002916002561690409594620081505815217461848113858315110835652010900557173184505317874264922085571746129045187653642671653913610360532405581013688483360694925785875613448659302425206968876630741442321305045082254480537087862609680819432169692015416489053218080087699713528032723237478318767212425311381742249103666842346519199117425902987417354463482281024558262140094399994834548388676729986098388850306611183892142467062708157238218765673219494341911201016493393586687211440549335511406823281092162620890511815882295658773108542666988781182623804490562371375884936538823582162571546143808599295263833971496622872557682016754962497942718045454849450260346968787567590482127635572497691847302939641866773629700591798263540956077593284655305969314098016023179332712603564072089305710978894113748786380381769056060715176973768779123105702138398652970702021225481276743548424148932786955928797881654365893118584610652811937035515693508535650461520879212522571915897269881712506412567226988402812865563207941892709904163276446212045975523317150939367188285784385561649058825150777078857056959425517594992136848786596891723593979501522957165486875688384156296936023578490371508618463941422987186391965210937981093824570692215708693149157971639980735374262350331297032576999266018474237858522807399938994715236160614534316972796387895710906091778769613023050496740601549005282311374944717249670744388634734787551645251164704625610768023209931828802118217645557453588310044136928516174797885855265393898127971419923394433151952582492960366829163943088069996821176729743811930906723819113987693198567729263658898761021747632834517608907346220958777510609126568562786543156327143183304152248123763296387816174191589385749081663061110384580181477547016685221336031492575118570353761768933292008114667874316217031156266397424800503001891822609644342060972038878887846910154418041678199783892357466172751418103052083165760379338714238385014574851654717012089269699336310312026874356722409152601545725980416690004783244307533970885744029474687749052397548558933677898757777455520995467933889930379712043021440974268599173864142549624649299815168718790444029972952525177057677763263483379427098636988681476829541959527929876889619362955428280270555949753885939492176457646264598680310728842573241568820337947491058055325590965089921562551502805155551845439244558106680187475394511103388741660259891461744039928783872259885397670863321176436582052523896813902885387785518335093342275693791575546242689383821285859023757272753817459028881420207540095839235897981966849233403674171108477952685018124578918365096518434527560258896379445418235827556958136629598464113663049266858053843495959922227908124000612654975256489135958687141330653811568339093076278780817702593838673179267304463492713968250607171380396606392246089903202158057437367308154674148601810191345861189499015019681960276902052133695421706696314220274880589862725852269678961306289815402054364205425546854442560745754821295477177325819230033026780183795912626957995146809141925385238576699920590684786621591852688407602885325115538349461766922127521496965892437722620882368741201842282090008552485186376290993858495737537649518979869510294261718284092780108464104002997939267741639969847757424863315910017149165160304269729265307579917772912862706824332727280768734609795292706898750228365581259166308682300668180215898257260635274374221325888119545997680357231639279995934485870240760900421859258070904674896251156950262903983484324477402884644549115417775341075833207501777912040861982406975915336691710337481307587983131851977676231617855255934301438015804312311045096319088483802154063008900816944024595501524206736528196070854289646182449297045773722133105843688069348660710802038267862836527996436565353132787542988307853408230366535502830948023280311251177219708904881137228092860683767086855423635409960430959943086751743541861280263922803404930727758698814808823114237234533024962899084766590435086093640920316940091657120317949249811722965655830515412887731514715662446413011761253858644945624894721131852056107065546851278715254170315839761777442723103764803620757406709296813753128247110216248710319662345257139553992192414826730979595533512505518558758069276896298248207358278884227043682844604763430146726273482770928853336270685340609577706087728775891482888211133112392262124848641193593514900845370385606723997967347532228547552707408976681907009759097768969596209152262496681012736373969480053985854440619077729445209939402661063080192773412332081819636449411548067448707415086519652025060834119497327394548077453860807731721888719342636551595613335825484390555453038965658484137314788804724220219735892478606041275913605307608745976836268012731146129039735938941026654720922749540973139869060747930012784693257775592380365008755258982443257303774530538928755599375618280372970361284488515503153079364211356984777689567794841951895762215860524717216761531166960371520573424421685891952748491394023524051068018277471247007000259039443496998963404622160146479927942933241857604598796441030109537109770604231539839918681298007287002114885278999660185599691930032418134634403107308382459937535663575175473662651167220946582022441548965546707786871621907379350796750618904912130816964403336272752497063385677464649235690545259554297931301661958842973888892007767440810078246872883967474513369276059369010349186383779483348527444895514290510038636006817173152829382041259129585763102404838507928173819588698441095464808597574594188126491044830319226952189094217530950104450524914150343387779552772169152939875889501395257728270877884761382127809666490872853370426024196895185869026148498901301258667695483283857702088117650940936079579843184188583246089046078858660640000239113295900366560930249550033109908798329683897837107645577652720852215601981159714376962890279330591450550544208749568909324848398769654373404717415653675732533527114219877353304747637435965985907241678456117209315801457066455417612595295872604753487083037456368907512541149365733085595628428892037671819980505113772480005078796519107329792653722394027303850984664130568348486950971762186011524164929976740143911676481203657037985253190595849989241544097845093694561757079838433046403254331984649365379237377946126297005427977112105187796195319729969445443100131377288585095516996621098094336059433248528366991108328892785535099784442713394648849567467586427527959499156114302189628246071704032034044176634731568143991440984620686330981448454590166740683528765605368401998972054341447580897932435130757796561476619852223754724631012631376064202557340566357347723670592524753199816322429303478476655385867252257343390109353317685141358546347063899609342828346985856489212092701086078786760506351828130951383390713117134407558820038290109059442709999881758122388891521671357436736396767756841482452041633850957742313825867602781359787361364077901876681878612340054295204628556355355767632467857352409620038862049518431707146041599692116048203125381235026340072238194132889732168353451666851160446601127621292531463685959148433472544975458051849450446075482688388213130389079284498055622233007883076196595019991774081840541623938527771675133290432999576848718450780354756698458495160950277441749497437441961762785588613741527272042371043054272659087426479593503366499905410675152599688259787630142756648640175404346598000080429414637269121271212985629651361178479488924332953739609895922583673557132118313186331429406470990982298845680753673602550504559295034604347057447441988202331182878334563595477954143533107420596285903217252117756558031528562240021079628109832439111675260719244382228204055431642684249551372641624447111529618118084099522283553952913905187441204062091100430279533340547805194297190642774072711416047063572203103513288188083371703067420929030495871269254138372812757758036438292776582070670938439202007030286954681648149806822220071241671539722044857003432276917976310937635816180497135768724154706929750754957013717463294904446088417399306789664381964509497884758268425354823314807741677282149133158262313370695230125997350454661945717805517905167082621286399381034419721327837405728797460096976430766606103043176238164989196602696888293179640683533045319919216437070597889241719985268730334645590494585484015386480032252972102928567520880873363263634244832903259401125539966954270898070426532949857870244475354045396199681541653410082182766243363741187285614947740874599282184415139141340601314941732669184347839683971745776462987432019828031857182752832909455126713913359477538968561779293181930099571205083539190983532992000585331457182864041743768362764374089144462432255576482219874738030677739475916925191222780545643308398687324860319259329257004065446176541253654206183351209726605802144682199630137774193412710089528671931699446265757042764996321305279896659098999194033289382977585534417782232722539080797005600624832347082067696436385690330682721208308451070071362739287243127660947862572526315920339833313918509722827070442651937306383249429311922015645115070903679317772828732115853970029086247927705538648978590123019085140221362774024773932316485305918144665732878606098554010610408361045213699127772948163333577150883929294419653300038770216413914690685881978588419076637478781382831893630086987850802585928270349385936480280152006785289327396186863810974594116726240260234578199511798862710970634988857565311430950334625228829631725952705274750100222961480205128853688751506634268918093730046339929451605593410111419653913915504726627616825555702256491633557943964101354869835453270196382393770625357963064322703839502127327202451454489079067103916983910625364674285650113205956722863199360967099415957154220601351860955087293959736646058301592317469084695304048580733135351624599693434044563484928011483307620977126202141069763326697262645003642602214698792643656243874649997010684247581506498765052717656192649262348645623446492574474267016823131672489819724996817657016107980470687918676956543146147709889021154883842727395685600495892316345585095482917286860421698871417109235951563758485921655984580090358952137062305857967790958800810395467746612122760114202707663038207132973200217152463555018893890576322313589360196911453279037826805517458461485084447550748653648255362779487976491737672606352971628055440086296573222000735879515140148303705571020949813773033876840835054345027373477090017120854597471686317942552939846159443671799209475064453117676454797049370843849373864281935616255984844054429676209181567024675304546795711861070632762642366964364080294881780705839610883369016241310497547598743939196469730058397713630956015999200619063465578318162305187274229848472364453318045789792742978727833048148544800933659648536012556262883203388525353817001449026881887289592855503881107704425254712629338470327803963474681207080657781452137752544201503971222493904088003874884589036090774883038782598511384092016765746606375861187272244132967202474178299390397586149351066308451970818669003827959420894263797533247903362285997853083028462156377412239483624323952834908087525773130956069819624900237206277947281600389489614531112469302698798080891550097630231979916133818546100933434276699012057662606021220887563406365349449980303975555326839804254574388922357637438655619897231567999503819967997622240224751440525591218784029547795195409636550800541949274424668367633409549491847742638023706686365273941336244029971441064922927548343776204885833872882155872996892502284374919673070310562642466759530930820105536214465426938392884290451913376746575647220254613059012104950255733442482291127480006405025929809725385315564582742472659087468041951975483195206293365294258739254467834074852814180056979361470631018554037760131862914145418697258011972880547142730940066738737123123424470033035949139859816962118706113579978751479321665746306762967571210225618285273691252842380694262385187115121442952854569715844177794209085848251726997851046885368530855501855445337727461043942272301630465878791125868812976531051077937903586733005081763937628600983861079585529676596949076998217289499431267484153171912843465511179859458649682479619977593587534255181731685782965999353704456554886225610549370168679900023412333491765867878256498339891604029303462960293094054376449908279668125176239806460305000459171640329785316153890185694633116560660943787184297671657893006684415590132496375705378690215230977055513379398831279934816649273711947014476162143498890211084538104275367109522919008902814130742142007024747173586284796077083414569150526354156733605579120588190786590615619413660763768317832893685822643125781816295705686523231390628502632131814804933702482600462842079544287100950070695037293574816235462957897252775937375369260922903907317642865816375620737363835319621760073507320233413339815635708482334610195822183629673165894025372718208796068444229844077842504685396083851335478178585425060986713519124055883225674631186158093208142894175683899847449815660949023089101126169370340144839120798421719609273118637050031778363151504025931578337010334259568960358022034935557967170568303803058392151963547431689967243613955899579061123524868169457552119124594427748841496148517054502541843722604120437351532146953326656181881561619414899458551757795376804974930505986935454991922651009233291308151522079484249205654222930850461007613851610935586989838452254321352183571032369363377937708522613529519838057277189546474233936940060173447977388407249271340128697536834088621333295195530528213090684950831952718200623671775135086270347994034491632674793834844023818607631948167381160130656143719306482461960870546662055691773320588180110465777277311499308891878988150199404668294125473702172645249006623777578961938162230667080752164935938125526457161632434214037226092671697996596183240367413755058441607504052214690885594984525433692507103708777997178073544484441456906142429150694801093014782439355036901482972416943453538416531259975226835978089488854385514329565334759675056180448587639768493391283453614056085087927254803666992647208072101615093748309265972868406748531419404345596930745322822409411651645809054668484144578409358835738170984827533162705400622154164963625053656796195493536638999577160586776720563964041972385104274071932873702839108706617111017617833599075242180451149573354929258324475129762286125183144290726224327539714504161523712689437102311556502461196250323030779177796064831955104081764504603524361406500504724638130085406192707507617384160821678455862124836689663866490512112442804375434137259755893971838271273852999014353276074219967633730736256907515189035355281030787266486494907225736286621900681581940710049265470238375989421052270054179037461747633403503903873378607609171165628104981356567044578620066975896582773534479645547689074067122123462547502008444275108466139411013757249535896333006798691915164973162012980081307473368174848673266302942887524902449553523414464645170730019284225847001700933220822356541257052354239166170842880231455553635445475767710574666708733151724510601943334894317498763166629828277230618021490876606501830018005687316746087604987072894113403281639899842666475946241503924944548572514176367453495405287785385465172708484169679288260611419882241398317768025159154432974192863791927429251806854388528914744406304603862991963058436699753683377873126800784196238535290935397019578017152110207966366591875533062665097029936250436886636988773939543100009393167908051094373437975405389210871400024899242909492230060079579717612232930752660057992137950405639602835036191421683242790105012345612132984431046922354722322973907508319720570662234695264721719906865792031519659675861037689156902245737027601047795932277109178216337076385530894633862332000174692883267591777830413886245808231278525304332074736130548750456551932781086456498704120781535705924637913841038254149345900312221544828373001517388461601444708348692107808090142544573312102859983513941784567163056288469141434023181137372423531660762980836686791814529446178185956448999130272805211244640892892494853555184755634509747539419676163408616660411194858957342219391067489508523904672834467151267430526819398104361832559205893817795787975686136221172396748338287668277375576878415559745155291723901423069706985535447437424056979199188601463855691331250452097861902091835372137537153809868252983069881938151485815046657623093496199251307144211194184001911735634206071695288000912018067299734246830010029961363461801093337970557620833402125698114842853225625296768587385288217171494579560491734271738819691216564264148383727497935065092899442765560966095140891879136009268382433670218038486225329566476318166119656541459527688456139460271634857313810682583851033998195326012147877225502073528309162105632959477816788851926597079462984595416284424202647322821196351170004216238019298195427233861513627306058989470582217324832172131344802710809026877966520357243287862262624662435229317697896990205887733950796572100503146913406053812607436556797678244794213386406058059835058888442328333962189628262527833485093418486566126918257625494508497203143783140602842274193881331862794741887291138904726170999066208776923176353807015439257318345147876158787996426871191305906612203022288993672753943095395785879296885079397215082574809393651155468947256027541711530704290942636670368441032450526610186131109326657272707858571417201377891937415844898760409303588845263331935717222393071908951731326713153611142932369298899595305651589254865099644507966197162007919425375385642982737694924150143944441747532972297131389134845511263078574943310653049496009984700754147475523669524703298494449417531140158201592777457528266760960250681988365999586163087615737162054182943943091601315183029990367290667344744930138347702954627279740567213680154128975278419559068876188747005993062300901018642163179196220396357200943918299468355045779837297149222304500216713371685953445213463598809019552609689464786018542609706816588470054324024761079837758475848499275602108844258912082303590455799513924176502142779568489759528688393364756579489268031999291560744755003379800294780435082157826447404051603959735651875835940179739246276713596879400264690282430325197126371176363715400658924996795341345931975571436989521903033861478740956258778365845345512737299604992095643196833993981735746228444409469520952355991307974275023658526418042842668560559136734563358827900118647979459532448745335503684655208929881492804203068906575133185143392118744601607735011375755802203292993615480103102060307718792963868673807129606218892897687166698383335489519346922569533918226212957246304864471810057240695121232993494231817894945543450606558316997181431634620070978074097903495631013151031288402148421862076905543017941840639871583334394051144183748760303688254064732354897943946572769710364693214879007640778213654581668020111361903645295664037184806688300802871871294642867860207843106756733230707916206685780805814102174472319412639670326743656323684586977868131654889459675839475352942936929382619179899378602884037009868117738641283284667508710437495387458746830774774004816006733823392632163977940556304454241990578101583272432417368304325243048240873488868302480416533526945087390587309608166866478078308750878837672546028622565769319431786974520539474342827949921657876764573253328986410809169942755363627454352413679137757714398648559065986960714615747714475670384292274739208021246150967690473286471502162165995498507759263992171912566811138859421828455118458991038210117555076584032077306062466494530819462872911101517347198826837393026661597301573344292946936138895494887427513795338214028552745581796250058994583235956355290156015841749322800381963609681732687474700417142875488039354147170048564704612077670700265209402501478433552573639376871101149096547143364717282509065825275463139629443111140665027537189876536264552816527214350476856581680127899826229723599090350609604167459397394965953284291344368786591491949045804409940693325441403177612171526774313840093721294434722493575236198769915280179316966830639279549850378634464935379485372302474391875693475792466366637970222538659928400889801768557987845131847711351273674616244692816983855927013054109528841512547975182738030464196516381327888845008725390115117044119477905386780268370927251019383122940288490057783764966107981999399383770925768345952690288694293564465131190975189958772753614411442375025382419263324990187906783394405413570423346189299646457460812990769078716755695544988453587859204041635615531274371570396499695708283402662359353174951863300299531449912550295579814186509449208036699053081322330519733265229692841924510208641735403833498275261932571660952616319663580426412773210241603485676912546912651853907465215246937381986382799677993292865420932145731266311305447812436545552999193616438696279101824673117277758143702678226882475709526331909386329390829289617965271917976609685011936174602252838546939017633213775607062465088934549582201707359000892298764025554159753761685458254856095756180279981339822260590781125819376552597014097011996153814623666538747482970646023838343919016263304782995619275345055806193627023548482084091481095868945096351899768236546906723590480890045974767052648899677937651253977716468091725304727259816906988731849755680451060408726699225676640469172554112659219191004430364324554859561979589296140088756539200266717010330451489837173358200424325497683489703743900181771562688043734541310450176759058869704014231519424977360055323017813007203738454131862852178002240269892651143718463195316813065922111512301139764803191903303314477744889850658503929342312457021428558552506241458253612727778733522331262567018819763431667397057599089214436763277873207936604904322648970503131564084622948444780201338815176762378977850459359168651987352107342138661221015180656828820630208635153213948287071274083778852328052789147410094454221401424803424694696447008817641206722342573092329135725221284755467530310916569121429598850756927857984574641919745216166572737399783534625546928709121468342740256892868193442023973682575360987349634574213359174301946505300381972340303044753000606164047642586772991094515175843319976633257533693359470337605880541299616197875765595634543876326289352164113664258258110146745549775399363474649367253793317440973548284321378095263414834004466667407203265312874683539552922976029242437865794242821852160603775004770134352458972968096360913268623702534780433260814400951723682232398640580765977676158580867358394480386100970600058368355952133495364348461231208379908722468314381843808783479155202979036675641557747315825077930509962488789735732778807421538621382968378006509469087776773992876387911597544543762012902118628528242924950276837741926796325432316730570621500692304661086814797874846951395570435442194837946319158136145334465223363583499273880363920614733695186974533535205915966465876905280906275325401572255700204598198118458719242377277740697977158609662353797631410954465542528832784838772992306902980672828787875886769676175664720838613182749033467590448225757335626996183148210381342246075991982948173500060629428655396967883656246761514428390349070077286644336688657959904124420895100330398790826452727149361018633564606724395434144095214004679878425051227235326590395730326297273002043918152889680984942372519053548959128779001511673558993601349809306567275851474694683419408884014286107337538002819653567352926848092208325938615501942465493425668906491934403782289705220331534385810945338151164420947647591892343782951157041300076063295105437159278141693831848380898130799243656987772660085190777632391350931853460633407870671928931302504510040195017681245515443812465410071378158831129666511056917837589503964399157523503887991256452294571580249099542778562646011890405207078172331591867909990132231960268736620741597774913473939482684847578273957145727100743935416577595293648461378494298716676614365887458417836958498621211881140173901962997148270491967007980845978812240987183956774702744509715157096188059090759822285696525524048713030939565469448004557869813044242679642581496542491627474423632828900673592742792270209166773692724637007372922487675430434538222776603033789531872710299035476972157774647822397384932671503830062803789225539622164946007048610638365030812138789505571548341330597704041188370759336567621993194613540523970157132874707875982300162688039998440112617828615754475706202435168771880465202098231898678456962806051304506317629383082758980862482950832705176526640720396080552547163294150771785314965377599479677927718224369211448551552063594116740754553674508681134017220044147248519943638133060892887234706456818508052223518447733172155274527282673850609383526498881869268196479155069293146639366371715295628437209937180177019955151222020947124268311679280098205187473654800790258120716783632036015999625925337184533969402075174651996844504266062151031356075165552014352903577831664447664255668504379236198494299089707435758569159457097703880224804784620092173250383357761032340298277297677851742031482458127183408958733281540529359899147799411739700723497920857965429964084925441270331620719852594605487702960781093055424712369971191562930083105882816080900219914866364770796966296194202730020148171532056431056340397221766732732592007532520678761781393336506156530275041899581222074586734316534616975705232824562845718404331311790552156317750537873265315058600645724899452953329138728519970218175494945135742279137129867484348051542241067321267089949748448464703070278974013244305578414307322853282565889036069066291657562323425901205296253715722844700285703356866101223989316341206867624604178865040958599897315943394822063830154760242780397297429669712014578785077142753279978764941620478315176354460055239991266680312634874975238029774350430941216792281776425185425402563375987830366596465904074312708832116390487768420726217598903475796558240100076207608495437079475997614721629986527380467855251687099854947028208552955052380703133954807770439856053624951499208098032904517246663533651468033448202492261179870231873489566316915048597418915424446094614104372765515718254698024940122495222268177390467315213078379131736848581870510760801262423365506521964380848590543892139252899422836616872802477267988327405057296873314243938320199507864461288268053353792882854841878684935740439677619710461850831824784302358073413441339186409160457628839026595582572671229622928646186231477820769944645578560619305625796218290177260014554845273619529337566683918122052175656338480606062866501219687181163166110959072963575730574415703493091174451972103724430996388433694975356228176818702577420984126325742826435900006073207693283593651748974006350939407714550188977435790771893467301345751743563966961279218994249491613022628068807320458570553514968379688252305601826086167082927743457243462330522905753378472544015626838989903598647823407063935212568893102922323340813517947416954225736473854168268142545541095765323945662096172943942939069753198319553494275350930371868323671266040184433502942788422451511893517337919846938013766912827445089036120229607609371262387154464891099710392702909515867765428794022150375440732993460426304528567536077716493645580858846696970461015153466845951470855294320975144747311131275030813915558873176801058483979059319732927371178531689289316929719045717985071666293008352104329316904095653970437416678719732583531909418581158148449172390484842633544401470769529706457943038370577901972692141025482053474321753487874529335390139896998881626852004971462618662872627123131851624378704548344243255362958891066578794075101456458042021564976718607610103621000277463206053901061936134968822829181649762133822849928715805227842708478688081191428352219646697306993412708757540548114235350987748309556077723634326969704684311288699988134237742436758985060548517211933827502028559815356713371119169241277480614427082326349178747683209948383409810672424874304505887072531842847753652982367830269571282668643594776272241686571710353076034582432956876000632001204782059050931197832217992302752906706287921951849695084588255885368098894654667789380783085685183962984684598096031198413196672096581508874780939142322394970515738788258208477490326992786946635787407504864281312910099626328666875648087970339213347416867646346021256171392710229832297429350700571072856693295011536458121473896538651595342109681778458663914716462399011001230436985598280800590855778889228973443049757368797550188557936794605787750756764419379787990457501439436209940449508439773551165622429360630898167407112976505844590249321730289326270607201859607876106630619434071626820478963876628965092929439602240232044926339800978298497660532869455402453288576239262019846366815566719151005500512116839504798088822147089550150899368678823264522172607000272793270149749687053440096268036366961330175790754834594009771537777178005698854847108982010200168074357398902673909556469643082121493057484071128545402769502791160521276899965084258140891985555559757115626916535681423239460756004106893804357201190623555448455685134545543299533502428484318820461527048919664020599553904784170801959229354841816456903105575485037770681485397066544118186950178826316423975539362507101952576416786841505837889544724260627204527240719830076972076118541957018481162248816173245107034761064307938564964797295010638434978869349455748327004926348261515817510986438495795644578517653652494865511461175968868809358853000677105933728746188190838812756075725928534020391433281331632812903180553992351353817411450962641211527270046775768587529309374791811223106781453342579666899645145527684697736792204184214450211446422929335450424073134997682462383578780566800996620506008188317725452850900218686105019177860819185308725897661241512818924557086772916459403452070673511302636142937282206295050160091156640464101956113917345798927118168388768828350155706291766748462464807786421851985145272124135235458334672190216993969064701696808484934369888708387410222167111017928665519189789322599446265252441356836966894085217015738437423344242217744819381295836206014986981865118792004544438017399016138251451182944716861864949411863705651949326493651561229523484864942802435201285791604338386511475698579553035806952318638032126556034083043468987646404203314338578500862094230753399784320635784532787456467659652983131213245021165508656678092952017514511857360470039121333930777316539838012110543183467744442898640894473535697024162717647458892920415761091400831390458415311723790598218071437459057274604359190028512134480822195645504671825998383451987246857252798928256173205516513453043470688931654474937758118620623757843291174302066572791138075392302179242973763293328974565091668332097574879403853595386774327895221089169600780956095679861426204856928342208298138531528277191155436013709468806980224271009263703185986113678210219317225798703291890981933877605619700711142639076592678555211794030128891377981222906959636664750864648786257247522100800917230525443434079220249062483062673200283716311388312946851691998059644265246136322205483883327031511539225963948632136040360986521632063323178488458199898877853560237150317855082878155811864068454947392234311074080517905373317817154585239498168549938778355407958344473905461785000262552145394785082264921568921740029466273265285763709857602611879085936845734811843704271019677394816816893640591879611669012611082228912122514817570818754723521937115520601824828142250327243404181340110042229235225798038244971875407777963077297618177971904721742646218132026355631347572282343071991896820569571877371920006585178949191223899449563178680591620319864152629271483636768322145933464297474389674588522947413723112340821961140480831388230194649347507175371060599843673490005005268911728267084020340596691214600732037279190415461845811789831286985193659695877139340907409166787424975263959258913380402940454534747011564425341267618107151514099075354460599969150559501462841182829542634836929942967588065768669898847078760418154978585314768811572276208646906246804348811505083776490017633587792276000133236766260041664078167708109740441264175827557219167783298454636210984094903729238373775390177779946737955213823523881307052896349196795582395541597366291875639374004956020574001567049254711058885923460992784850788295008262972981239343408055950207856389693613582617804668689191280382427808674094969553369563213459463012480951129865276929920030206551363670698792536895464366858890791799770174064476810730589580394464776983025638417420305249229822602483175802092735134696462978827932427311623658136461787376903066671117072249319717262475018273141710792340957452536094138367856218245163190555365360443402413791315077709574762059958937430975725825603275177904747259222809749283148887651006562645291432306051783274056816854199994647429782140120259104990380533976591965107728822379322018551262414362576127414918839063015091672872414929544913479715937350965398383130196555621278878506990685211056538079634354110735585652394610847745601867971347080132826855997032314768181677090239680009321179506238634207633996773162737907961377324984303785889960846128347653547952301356989765945436714353099792057161344984612728054211657334685007820800803182796942849722456364342375787607171197614189341077087850543194611444858656217941878041507241112952561812790506827362289331528311489305359745000714749001986611944805053765358727430400615781314674903547264333760735368487863410018196881178497625656130843589137320737222985979826460301533964329840286552720293703222003219914506864040533152635522490038129397998984078968984088682327451466851681318516013447332319236975122971504323151603069643300926743873012384664619908572141885702271430357034922002962263011836127201003103139201469649136064526051248442231932142072899359858684039196429751615917344947189591679915894909741282106827812506062705186275737661010897883505863287506919946073929678431675001105737761141277909799324707352902644003029253268648739356924681060842315035200637484421646452175946944675345729364796798395496080693491171010962172813552244553976842962264273590119596304116455626643240936821630610015983947737377618044427354208988810402951584861215418104021360530716519782131623416498815020207933437256947262798664099387322419867195379840025821037798873173355522694077332721198541931501957172998955089162488505298842499334316685007345691357944993389387718226929500411497567884179891351432938797679814221919456839803453452364199034969808841068914236472569009201177883384770264983432605677762331659269714960246626752521522890503560034710550404163159434463010043181512195878525782603915576142085038935745874680340864666468381514763255103664060733143480802713183553909462640877382408562701566314085071983405968318391002879939005326964256243753929405862181882996460933635494407098624848393873693077255941031030921741229213612641224072929078719778990920131167827225664063913177672023348420793396135130029145278073025090439090747139656350843234408427438935586516628783855605336801837587471947562325828245578870364135626092317366437476416039994708973960725708638815329275117406467178186489470688499171589230177829061891491969922460993212322684916937887753906524068431762455010000033616321752637477924429260381812587092110289752788233003131442615261446895943374784682635860201633936109974616804134928048969810398357160071974428323950643553264761177946791181331437627874085608698212566599724123219716342438086860053514122916501575086475407163413843151714129109858740214570594793804603378417648509723794039478484156460008857868364935524476410500809011389939975584573237275985718850089959647075633800791596471090688570620508165594744792901070450404379338949255444897524402872259868405742358735008854950138968771809164385000008071167024806390097422826108474435008030108025373154695433388129382786851751858837674522441253576796545550835573287707900867665899312966764547466755428632795118969148561936167756798438451045052424379327216984173650537085766364095875420546239554812427935532514118093416993324109461455637193030392326411990037348513565557810949034910270443578778850007894219514370530075745546880212395704305002289798053347723839236338251215787493245600916894998476446512982342361315409476482836895033205543307570137359463320011685885372963581611284957136809765559218968948423331936247930433079137153991004464081644702728307810017711653882806874506103279486472547116994773800731758070934847095457667440514105568065808091625950506648805880345592121452173497449210315248748513815303369112392518831385223834315578484328226622593981140283600140794324881486553585754945792582145645926403560776181587576323858722001822741430977925304968704531733897583140479039695437976865276047800282073294532506973935564177022732221680731839335895055989688395186917542074105996784576959987114722614193808828161187701552485219987040666668437007463663163161553010230371507873703943355666031825592549216500794720047393113350171100604244443831519076717453710538579971199534077106362395925365003251909916155899365414954290769100501426403835910311699670393664744097123639516285955982806618430963984460719616163406161659394776897936774279056159175826555155797640103731579515177498136207180530313808306798093834345542712537366690574578580429177784457032009456916924412714529643261208147540050190603764839120149649829657704861525904551566405965963136638019938218299545075386628632870608333078303841236081439617506763585018458158419971131279899240948184457087153957451375437271180249040734802812129001867968519298471879443668037243647547522536036485170974914698976155180766997466751804992016246880969165912404650375398531373534435031494131660173946305217986889127355365835860932523871280125726419277326935515594284957064269719083355882642611479507052199034618269130015449562123012957240779739853901052703715811036377171437838351406778140835632581971512571716255750274264011041098176707278280882936619198601920218415891364575928163027275299923489780069146160061435848708006307756804495084949303211234157256498934160815960583428052605693740182778169119582363641148652282027097300747634220726731376985882042816685829181040199236639273045460985335277921456654177643226469066508016676000881400659846359650312292814410873796471569606758860180964049636066493005442534446830980219007083752453080156856050732833407413335442786824094297246971367332427118385662340674441458631058405049377551993923495732865243976595638209553386498955126873635815439483940309259875133983224873479549942186081480556952757822786253191449401974024598230981039200322439643166630624759272617508628231157111355119305666571506653561554281859901689342496419786389487837642899291390421723452428208105078979194119734418210241390924321441311044391722055185597881622684548191642830614768618189912950997156964672343010483370159669784637496249593660725494266594436816923378349612337138974021534331393822661356082712273144292474392772766206460324491823876570187848298135838888121483856617411968376216923108984780114133263224209284782279281241522281750516632827390966607227601663341908415169037919866800543096531123439268149103540298597687354893747590725407902559869486096319475716933415133485489688723060951430240860698126937577538423967237236431323297885865338830675627032738358930612135950267634287173703165132239328732358095012655809746315407741757360825365417055534283665514678178236981346266948825359679129189520417985721946832098178604602469797265425368052417997317411310655755448183694503235002490589013514376351496637569157899831581981620456328643685359164220488530888953089099367317614086236448471898660262772107422426610316420942355442016836870025907615719769457079578127023921041379954274805747180717680912512393687370256642333547353829057211041949122435635340598527103554695021832757725090117617020673802543945149107124478091711093238468551405299037693860735934644222515067232528535051029511810794628131500129382611674623888525625203562603882185986627685047634004018336065701148517558226773591926590170408262299050089492089529684218101370429422722245592734863400660838901829750873206075944311821474870733743166090622516621705837263552989228005233553575742423592893493215654137138576095568021089001120933500524173130421554386787329512455959138872253102898096683116343482191851083367722121209717618488743974548838741541450672477624381617924959901060423994955849692614683162844628894923198662239000041352833880284237543430584432403162571257390955194610395581821019889184023255824082146886544392531570318461588376468920629620021247740344268134644280492788873939021652623381582633999984226519275819622076701334406738570735637205609790000208937582869181185693167867943440027649681244203116483327716532346718869040179907216531770731715579940347918364777757175829853514774096670176178512112765678948363232254209395678874873403197465260523671614491699005249933583945621988762800514527522328433556641642270818414503887986693998950308740303806055526537085197533165289039293254021520263334446975012696773895707657539375217094659876502398850337356665305375131953313941883210973173992278211903478559114392044406239225409447877755055144450390217436258576106666145251811932865581442459219189786631662312703893350017111071663097151851219097966498281579503866950543284431586510739126063527320252295729329186860236880777218137141428742824367846137424032016333216282591532807589464391840796811815120728655777447344247826943969130376086897548732741579296008689073224516691994267320129411304333514550572179904993060929868955279859642310939250337189998638113830826923852360912241416045511706148284733223786858239934318192536183161938845300386400668394671603715928771386593916694256508237093617694815531341356824940054309492483830444733963934218024116426431345532617308110525629507046024674953635328726825455893558968620596014593670798148483550935435676558618243155463750712785665824587698034367272727894048027051565478075278295691414403507614871118385099330432074811808843708707906086125523210712972860054924935797759746584462748345462124655964738982714455084483917387574572921645074113256059777939805823702212430911097507231384830841273332995016946300247701347214207426816150855809652838047552531246508611813324380325884156440693025503713300869401020452351328627422308604343468674468407376981794156045732771621457013539426757721828549511469054205157543765200309645708534652030513443110091573081445513570008038668219452014622165818481366900503334954009607894391955230076975741443323931940832576906775259522427124501966317162500345770529293146354380016888758383491944298974455576508354135373200574044812196467114603134738069031716375947123885402345598573275942131311191126154790917023051826896670129578432859576939004596698532186276379884197322827191752950698894790044500747367218483256909130278496560105075172192508510514242341841175102540739493112717961388696986953524014330244916668729952872469311753494939634824411710346534194727316837772714497864709788485619636434119298547491831283458784239883485435852787194549272643308910963146811468824670241178816467766606080958537153444364093799817692287576610353435123424285569397087869471574707761095396559460353002661598454556281269901952966379999238012227522631440956903206464911213460882894635706526367374162364324041008561385840002955953977507054651110771526926743601429370820627137966967782615107568054748785812803354914091153919261584597126962827053577258068096691854366829005206594424174441592488060118885292005011327056687431036794180774865285434024188986822146159141201985633452737770243628892939571897273141999253079710609387786978910631874587161061545916732292503664727089206541575032165333664553093516821773799380762380576649693139631312467624985861005652935888139379007405060154023490158053423729279374058644253213709404869061308438228603878252886437554450382814176334258358249033714551241666129592109322123454460270901886642312048383763238636227392892837886404851686529362002021407748676345299417262892645448617702260265850149716471528495746827345089797912901290789308602517533437819203335032388302362537434049051958355758544516943186560493765377495053461010068982304768867511174603169808273710671007447739953313489732080759921011755157860883520099518341756335772505050626196631651151571678651335835289134899302004564168167286754456606467151082874088015712569170477757974779658143677160853032460710944011201600189938377318265386723417604051100259871325975399866094129200460488350357107051713960701027547634700750796981116033082862964643326818342284485272766728124345210095550114730086335793862563969917835532762175813299566085740926671448887548019106557850710477302943729121768494988148532068656742644321912859232647138032762713877849328206472902085378147460404803946140461054801904091130334336891357143552921757128037836479905517192792213643624857416254309695238173319776080202846027013406630923491476500235309684462436530668155255527708116383210858667809821510512513326260577885237695817340275625515492532022274645437697246876405122472183422537691170199336389629351714092087535906336389865661783807134483391729085341910807424002542174783892399135123286096282478930717590481654218392324872508178794261655950240714135451203043915104788627414681547564762407520702117174385802145043780291932415850959470021747860672617680246762530088336804857914962972002276622926459799252037544258503203989339892078603783035933239956769555639611595905275407288890681541476459065445988214665257242009490887818325236565960853322772484316279374134183329103603958502017709328950954350954584904874834528033735655206163004350986223154797509248859498354605068532812399558426150026637413372620369606351307598074470791669311646844431998698190560051649629564122510619375413213986543373434197772148516362963578905701467391505300157836516389625298524874436073262532916609069859326804221036674632750047048255892797814616087114265186810810252328096768435469486470374303560389817275513324419693757891945412978828899716899850573082852396150569106651758631584314219572002578113056411644531071315855035669289250504698941465494493901488282710402902762231333419599446243904144442061998152979444253977593839650005630732747526751096261467309646922564192941641439038849329026626547652480613461510813849183782687435563606479332111721757389419870440962926995305796277094908191349352652556900078745422962560682971107153812226293821092184429475418955313149999272808007088990020222965382633149055927246466051449850211423661686514593803088931249208637894666932371711428589736265567360329846594084378834242455808944777810371595973024018984801193892862008986762126400231505779016846745356604128923395751607901848528693279889711462542473918953455666736016261248063939506787311555121406577454827646433902087780698939364435537251988030461838020529098662559030924195602453166919275275122052286656390244156200960257677104097932843196354191098128228476585495261336713605607114610243334081387129349544083069128595081336977084374604584000310362343764468637162068986194795960398440089647030270130530285155112687790412655854340379997515910789369547240798073261932933142441191112253824277900987113273368744593377610489681887138027105475910009819199019797671695752219026279102901112628208743413843259725603795850687141255961057121124357311336983126877539209799770332847496415990158981618764043609592614958217239269686745705847386505645674924240760013559739679659930624809982239261494340626150791655542872805963632712881544145330196229410802403498028610295036248906819981468889584963879926366584062293786178639005836836965657306260682427553676915623618359213611074198424943784170129478786346889444225066844810348936739827553750371868401302627139011504319171407513964434554078042122595513424896855448998680483798562220369821230594188378640785594933549113222166908826957373912097153425058201230431818444416242548935913856785778631384138976483144733921637843696344248798865042499782289836288375168162356100622308082209043816386923828121735205737584294196482301713949738456915114163395842595899105875967489462048092072893159588969843008493752559912836208654528816912816771615927768705429361821869027735167737733567995569443653052208504845357441442302800081965942274832348608384066752106239963254105138336434159186698323293833279343438701869508710847862384477315718415732248748420318931680227144814747257182261662256928795938005197974727187268184905796531417411542966406302494926608209060592760448650775277934794584117240140427133468793830968960385748301594771281788329821564303923139571885232714458684882185524202957126514640424826817748097484154341412151073099778136594149722216760735511475632270600021711721807595780420309218344390326500289890487495959823098828383957566745148805793346926462913526167035408309055776542489667970753167964061781774522333036409818913601228082743977532494608062200437045493247870145745827427300937980432913919203126480835684717326904597787828144880325477405115094170069517818828480463239574549048927785779164023971948877205268404669713322171999912642552748856692114767231038293579533089203360326267281180084807143518973142553288480444203859657696055763543702046700058912813754246873475289620498261839156742578390537472251746005659735335001544470733274001715738764609925605690875956079897083132757572465011652815415709027047133876612897301120579702242780899481718369082322595568901870855867136563584471243688166447721278463477428439578002465706586769415064589717853563139937301097083957120415324799154076708553298865297751196279301404287738836556229053335897279003879549331791422653861816287387029099800297408149362486990762253368836998713002071323159444517399079563699351213160889583590791624961802984881390166882364361847367101352309671567687338692945786508648831201857933697929746362050331921953833581336731146081686369208645053856692003659913176622825768501792455985813126235956885253172702299919379678208585275684844637600780968212938564024400071461039095175707614109644181367398018637589380290222111639333763827752195952211258888316341321968021336372656253971757519695216867012294155041878103423437799944337882167746449870609129151475277041704719341307086444937283626757491828749826853435271536332212110842141766170611196099602206375810588017915034039327398350025518870064879500466246982501175691778886620670049999553186126347029399489859881072601066581936955264040596962012615753892346122071623966406363055867657468251149506389135460098109607936871969425851486820521296489612785392148363906434228152650794263059483875466389758903973880831942079069383449884336396693354795337022708303127681824838591064306907915061642076177592968699986658034179775044341939478191181919142236081579703226091899662318113638437668714673725633542935568819429871779155628261841201555175659177920846617760865300241731550070278741039421646171597612591952215363097361598714495478074121900077490062449741285159472809516323211984483424479819862882683281762768985041738535198686031257345561650351451271582884847075833003501092151316042305971702524813313729517717887244022702694846385878970240473273312568562271753266135789166654229846041362756911349420385642836522013537376660718838311773275476564515806432049113341882895472862663963905281337625833691094729362833409097373059378296843174690046173043563110437644366411198273790467049360452468105504796159607707633808959789927286958868844245564690834988251189755800155554366324548871568685358424141839019495076950785710927542304225153081321528814155957540667887057345524120707785262769442659957758618648792800029377566835258206223321811235385708975500877947499392860213228115989288095279373435616745940353419654294760322871387272552157136055116259816509785290271332057913509035022708167279478228457245651976442932547470418013926961288203459189977913873689574445656879898795724234014811655081899181733571702120573697880989209462671390959921907313662359259096774114309443297601867874942033534435152553022580342973556012366586936982778081896749208174954961360803590916135694762015547329091310981930137533123040370123542446554256658340272079675602470771340348759215382243618690549135605256557052713400736614639646605522779603239342372626972151024752036986786389763542646414062744779562264357419316971210924531187888412153263358467620163579139307879659170849170043524330130942759167716133632244555060393231600614686820302808474010780885789870649915724380535436503135234407795051034173410021764048641931781980981547132170161916832759370228734938526628003277875388580835167235856587820936320932624495542954464180376734760194429671958810945700748906183388827514100480551323510055659367906712517813671826513578001036741254050140589211838643302789267297682226554598843380041071020055267903867702679798049316835135352234618346299028371069649430469636572650025024469694008601515625985694491035327133889969678442167521998125196100723419199784654166328411864808231098153623010768780971317212881321121018165527815672030133854800348671018392884415400003637503013607254389320571628555939126851065370584570321897750339623701516454654597841579533705308302648670100287837458411027334419905119484598494627576384325394271436989088377107415665070090797973555561500706630051719043220371135007934712238395334218882515920436058151202432673361696504547627920301991630470151473776261447814261271079589542797422116902492920380489259896143978415523124935655878770260286940716517023142273505352611970732465308072860068394290060461494948788645125596527612120501952577558080757776347632487939787888640606161941821891318923593823068368971315464134903572774599050585335952005692213814537387214454215037238361625307591028254815294577973995672788759476619408779614975440639230726815349658106115979478249053795118264017085162524331887349355379665960464677537137898739695090887062518545434722666092875559376869154199106164147569509155528796306257967011554557548160762768906620703406051791872010558656911396714528428911115557155287494852231461164166503544267235363314515090806025447561539238585868571846290950896049135306126719470064612178353147692281558137577528864605141154551452056704871154421435896720957940944099977747342993783676294662889484612458207904754082827218439997602411148363528236103315632750847206192941155958689858685406265123588099858948097532332369094662563888205064707193040345952087888005231573465833934246152313358136754432565421133135730596447500421319145632885634639970514161839961957654281201956165727572971589128022631777565252526711576400219291184251404564404115313033684383692692136706172713340664780216753384029373296818260401234360539892239412940791244312934581851089276849742198550137064398261794124553671537298758994576925927991280857176529406717686251771350209051247720722299049490229035565605604311182894969257294218079736375612170840945509465848773357350214560856131177765581939070032485591709300697288503000122293474729774912667897018911266059868834176636091545398239973235928030575261814947861198375097319719737958300100596248373780789195297286621757570106653519198535372643645544514494592426343173592390910338277990952624223674611845009955567154035951250600943036189859310627389599431371935169550295825279834282948237197088599352117858654297341946249758915392159730627986204963993193866081356465047686799659660563093365045546716926871764693318905134483232428040060300170167445701592647990389048045851641074585693774400011480681264231373847389858206211570032852906591955330800629559288791718194005087295772266025636395739748381840932923716175422185621414566780875139274545092885869906772937527137563748461931167758232181375621568410470093411978654109642631863001713089213327920307720144322335146050000669378166570665105502352032481707642201634215828427207229614141272991879915867989722075588558004168123879766122811209117134413199358834247123051719847833762710558975545316435654358329544378784215279481278471499380503751316756597546043725112321821711635418282674569922660692346960803572272776200238882421094380611637701918559742773766290246408024578164982742385565079407493613549520907556754217480548616023054747996538349907897682354579345222352195458724470307940932434581422623446745042236950983559665974077467436155366007354864871160607381856818785637635069813287094462621947576610113690754697264663689850443839448848934328657993957754822048434912477359479879227266217646677200406232608577148255416160454413240212395701249436792180482352254999168948752003353219426004035008257646267064802532069411184248656459807178458596350849475984217077580742091324291145358077585891484990260826069958514849862211055912023375120203665836937624040489843772946900218176043873313608469655288855507597048257090220923098242921417585905774327020020992272480152299754338111474415085827888486715103903695008629342336972435959888270743391109348507425132535461502678460000129888634126582439403997748019804367148731110475469890594367565382709880292587235946214556084638542524296302331424921363752453611554614945774356706462648654841714428519173483802743176183274733052296633359243442817807045342818124641440316269921917335603894602461562745343761926786813907278982169467203593471412771127125225425465236634782896329818279749699196253995067890239046733793669458548367144366832641953079811826363903370707997425490147615374297630515711328698282762514437062017384643128859040356339520640838302748362405840723037714239553609473848354077341472478167035917932390607023076128701188254904873106474663174981583518923390678141497075801323123152522473953088961505582981929575645024292978171097250318392844550562411085048922467435472211983050909096162403533224542051292076644848025096857946819338968015714240067882797028545064796528783677854231850666713589985741321042304911297087871395539422467412578253535624977420199138466109969265574014450094159495084599666965169839619266120612586337573944569666819817032763864155756632344340017137578975400891336531026288254630861008634377459634836437859445087633337256078949922692084698158367318666721586853093218652054327004778335310063141100710379885350458162886258190871302967211967749443836324357515531241966351567123818594523625201152766837649433761443771842816058751402957479293607477085841469805063636051324048923953256876168908355928840802482294228410120032676907879205083094945225435223352987920046471570427956424892220952095861886907412628733983132296624451437291058513815931771015902948642883050624081662547131082641885642607272051402254431576410502412080276606607198986240163837858390614461684743061253952993176932147729297066491310150840500716354575668904323366396732440195889039211876709846487322736453849312907368593825599056193786205705368644590944655700745767797576480755797253578777137326211624630480598221821372552476632244640733948001191142031208181596865106522483813090163340376735988779655980224169805914959930309238077127996361967867859572396312139677215224769085524418542409044924428286891654169702763097789298561107283469981348053986082928680021844355591765172209695754103604421410164965304424340066849159605515360713934109181180641361853056288399142994222964205353206490704144683640560599071773563867605547659046634052495830381921605435140869776927381973980876990857415108197673065171831725529074294106860872236366327350038650453252602070623669805315834914429250660973045192164798168254948424277668851225031415139654261518663198610716791272974735665688785698403817960534279080611834398859610245522285047140595867149628817628581926433926604210639034969490014675700521411835795543191941077164950046080068775489337601952059984368896564425795320724154600833740315574498865662742809530535087204752511752657162305336744062382225436455343808580803303035917682169329608590431541195487481381314377783415124678944148293045307609089549380108478086337661879789780719502830808965405768170623572157869775403895748027594027174684587413730337103909432456562993344521138430256578215140889345787103551671572811231937519764077692533833137548779895238665790118029432798812284357427693356356177323635789737004649617209903793076536537469387538360162495777257619725285509890949495850597248174761735560127363947025748138015620821159038897543954775950950541116239633716057131108847229358783565714496862762049712246464583814847123390279984807935538875520465027374349263160011217873202120611686888282813199495832124098744221425882529473743835876900553277735281364223873999172015623939161557919343194958189676128938507086663959790770348870698406348937958630586916035746795296216151177673900734127437801079289110774515132506420792332566539303603987412640084685074044658543796131440537000468872468373911727551678483602601878242874128266900744133421737776880307176930216438331148189297097273812224814673127838194150010176146080733672135340548668769169525798374979252975281758631292763236090432755563947952706709604565582084805986406139597294469757754235846835586152345934343815156055246940526714638124357171224838042552485631554200976367973346735754569834792627981085048036483935592468981117028023104008474908047016795322873595454245560168208789211272066107468495917220407654585151784613186937628973979816206322576825586815168703990947410019217656257083651861795842314039222504274359271401553321558995707428153315999888833013115853300545473779116884034283630416754695572452818007173910637918699060814391396414348530109722144071721298993665994805197140082404307997746106214552619365986145905711339424304332342676236603927365805740598055174291632756486833685096040484522924679445123404559169733881281380867165211387156926399468836055834917920312873815359318026071557214324054375487077717924569510223537713721613574735367379513469422372240828243743032134913984755932663733219534014196128826890115609969971802651154497612304723929033954024353381324613512014884191130898946213785849818996540352035185591347197023873348938963486376670678532445145275453343497923042398045466976249816695616005631807492106383866322282780135377626568856375802116001697521188819823289901915593141803289512462432249288820260417678483203540269522263947544185185797797116899803374862743571263795043241679076618873780267524971761553596440021837398584337936856941501480883894036338330726259208934863596338120269507361829226246183010774381920046993053057388280674374492430131161744777794899407846846785208739049159069088820638926573112919254007071505259784337424904652232612483299698823794903997500076681015762830644663683983119719423861540694676608884192203594396602491147720705851580330692164607557953158012736470543359300976564510762002771267478854912801068555543409114271108957961854714213494910429711962472597636220071499746767452067486193651176749616354320132314693033063298275133092804841164574338715758270315037848218829750187780775684066318082052329122487619761695553407563563141438679764261751394798982303990106874314454871608648655415061783767275913791693969379423515099081374179868381647390987551614302752885044594957820405758108027791163877239783103065552166368382016780009290546572520858266389985814382775220823663414904367389843116561625680650456037363359554095798358874307459781680956050378761618491182285970713407056969240531424463218883547864890493503129439339583290775591754559899857574452134769893578425610550138643749006923749771269230789685915692978887778463912767753137283093911884139697118595315665570644213770721875761277499553252804233003267661166692260512410792799422326322621229939796882240651787048541117803677718574275981924988412916373207293422700894229053034741355376398070123746894720502984021010681848137831213904560232067716108217559267602343770650236209968897773265710549854822885926833217710575094669059417417189124712275986193307014909947863679958827131247456529565662824563823852951878136564149906742916947903027283058669195455353149594884734185964884269880360251243850153757378579069040069076849886577886408301682616404933657272452316430948653289692496342863878749759517492389873291485462383096298849305306064628476287487500126959991976922608441601928777577992534026696926291573141988111169954327730905476419232480266845078141513675860401959368099377114971952541124806903832186828468012035280280541568095889937140697148920656531982467733162438624758038326972710597148524780247402398749022040095419696297831100581575655895548756899002049779417065511571881061750845423421814883057587883786359757904383288338808754641076880623449874307454518087629927737563142562536923903666176329663015440924382960189388354312345185361668413080908758190413570642009176917478859868491252536763902834923243618542650071672396078306786849086104228106897995741699337379864560137537050768478042648799549333071733915987994192370300159414296812265013898764056745453523317202441277365240999749606359855912250342445410128026723456468447512525275263891788114313950360724061402925816742302000423398176456019280247405474201074434155532328475009670403457935514254834763210755047698432072659355989889696978446104823294588305268714351024414183894199202525674272907816865939959680288181813827795444846771044015826502413019502879734883406439946618259415429983715380402465634990112558218303260984122980690118862249567939371738129954096873315947505005758884057709010437560085916784256111857380204842864925153967925498123046330573983675676639572638506078276948584574119407444060767939553887403575781090035273983519206599877226437247996047460032301528316726309506726729144283008812808118974174767082087732072975079568098798904917423893378614140399315881243809851879445468256382658204153557452159440114839141821139297849752378537234924714532409462789196300643331178866411758583610374007702367690645310305696371487912506242930327080088031681131582944840038929586840631766352221239698518128021384359092308317299422336744926749912870102667388920646141208685709417438395085066741061938047395480253415694425354966030985798273923686807086320582828093918713572437983809676291482772178486893615007333136294756403903993959488528009913324551909432157626919197803630854231457962456168622372238718723768602029901080010575901379042241963435267034875952250268474501564557285678015551287350185223834416899596083339253589974350309017347827613237574575120899811377093374678943890754478317492870199737638228641976769614054922567658753828245829755047071533929184202626013641729678202157275993217306357383990140868538549765378105263132327910501150825452725731431161986032516541010410450703488857056352666043393076671383822266813713833238181751334904090099934078502263329517761789869779293316563122846813528942977423147560609901437548610479610462050135714746493314102767318063706195418137876357101723769263084517527238200138632699025364657031968051465180440555489562396062073912009489642732578559488284364575403570715063008984794724041145723589285014775960826982041546461441209982744552102721319875873014107409755347146189102803184615830381876042581774954952408416040838607542230915667376438967360844034677655268945912503497985191978993465237407670343621707496917774731062661666668366209443353403367441039692793804506690538832542855440088588328335983588572683468428667821522261451352037941308570304539288112786647198773645033985049146483618908623094853544952314063954087406882672867308822575100168652072920560271994776974898321337462882302702058929596584142300124501050204929332288987030893214716305393863699095564402169582837690925305914904167866897494603749771090783379451226495315746936031204876441548919524345920988126855078891064430305046212489068374624424305394181147933483645277531000171048921881616862941585214008041218882183863859010536381257841030334164855123287575308144884199427981123721569642789685663861782353761223212901674980144063607623679277435220529143129476023292755895044330458128420342364005403184018951382313272746932032420931302691937383291230455797033921997544932770973293728588592171010700041652528033320124612709810113629823120042500314729890582334636966892375255414820746180397718788785597686131881683825376510151965437123006228577427199872333041674320467944706650054526228470405588453486497646764440379255879922931384826233923705213353454638241524384357159042182989248610674003499419240279696196987357036591285840281841652391638625528295937778108685280859448218302974279339162751186567177722693445575582425458214112249888527433887289304265315828686437232471540301337561236000388487881145631950618679669312223365270598817042470135663242318749994701054758047391805607860128456849396052624084083795155601419473498071066496548890816679555439551863198658470672421043797694071676748487316268935674565528120563010904732723027550332302257614794299002380926559288999146059477471532194413832862685355607949975372114148050391808886995029422972658045584012274992949990641726412974600471669951036168601174937224049108793368135593047073382170436685025362950507317430102049853821454216410273221316569112126898279083938742793750977903477561050797238363801973476077776905591237645114919707183600751256652622401690014132699785505662840939368440407771289047429698142398201368599767139202034573973675131487008626169615803747163247632387012516643373533143585271857731110773962971401928352360816196828066213242702693602376595084979570127369557985379908880619469816025071002237579424864572081021609383593025897689868080200306751145393306941473105524397646690587510102135545209254261169555587531547330030596671190296768975265811748005808877788294674034884240519432377525543971090652336903776950532428520353709687213167914099957139721002254480883698056859403282820999193065139362220888372028122279667283223026058280092350256418232248767476336413726700095030982451937039942371893723550363399724221849313304907906156756375231503717436279042269986685079059953803511966571912737031334907648336927248222301007703147896413156541760663378963331013544858626098407527193464831536317957461275110279638811849950722645451508023847293219153081993215580587262712734551535644578678528693949918651503920318653514617323764945134298285946641097034267523216678344254353006822726455377570894403630656597141657556727646612318369097027550038966654780142838021046673703081023793671328279549416594246063597200396317382946275141458820446000508190777904580820642840981824140388959858756310919577862138911757433053719391545692725707376291506745558268992199421973022209197029148652897355990288228568353921113197622648648927517008121033385664483007266771941448327059704317407851480896641723020191422973330973838586784247455576643092177510050821051239864039959453411504782694120793298018317430687937053723258071124074331631152746858821804541352070499959468241639786203112300464016240499477322924298250525272973166848583917749371996248450396135313010822455045499543660518317598588621569812046044187699750903721923425548480239411361004398389398070028646381167033724498521759494401684722144905360280826874373940766767457719542223202476207116284387720815863682555260098043796057387746214789086607965746463504275777099036208961976446191289334895556514034691659813956076073856586541673957121727910463829526257490853946964797814729802421020195514824016868939634117055235528391298506451581820610860316396380592131081667905194040208619280844210675798847671347985155533405141687125805132857885284660300162150725102126556329371048356322932435621856895533676272141232028790640087213288357342233792953609477536194177954151465070300443890116887490927865129822651683981479196448918926712912135918446446975425131652667605027603975716189469722816261938515010211157768208982789329172671910964417166785416738064142707332961500302107647026228102363882922630051669202838665736956493365689925899415136754736488195757180172687237291581534349801470933692877853012443339720276963346176668093603387989415775639390972777715975914088096807123729382979824372661681788503237630216865457202636901932350811421660640982101792972602342458508125357363023141467999726385454520073700434016470640940829206396818686629941496414069207663037410554728273886677414619396216612924272470155340495457834490121947646945487603000651264035111738574272054649127000220513159070726320867623202918089304991027436747159588969503595106326881545532025749767404527341086858571639874832483050644924295805035607338413458472347222230258152895193612762225773641804652808629941938217697884064183243660942822867281279071609524226219161616282922951010754944374898019745367580665729396105448254827357366042535379261455067357209062076002108189143019773972049798170971120954548061145808059381999531944989637774588305387115841361813429577408742954721811681950608552824108880901038918252597224787534616932084713971700065701904681625870582743362882292765337047232312116447859614976801260749600620439827428585705635030659463575303341878911618310983075578723383341748237748364607048984264402591840151516512325854871327202075606143747718005252884030986984749826195013996597036012548487308837859651125440083069603598043492913858338343550952679513726728440427038357098408951051558711195268730067869179226032764171935021045450275189598930702762393646507948036677914885139959003477472786019877886003510896145766810952017612597174833515123114284569238637774750255352433251492546926896486862997433983459260521828896606672710102486715702338169948184352796194005142352213805834678457863481123441510047649416593124015898954350239431998406229005370289256578666764213938601892783748933157962493125162393155917612314075865676690961659612227060952499705744164804697810645945696026060126142067924239253716302905516373291726436651742549324818450719101252273635685395586229330364345242838422969280609099946139049496652120060940356041967315315438855165410150682650217762455185371333370896217579353446264913415951428241078744533152821355608424926601487011839531992223576736424043927211824770624713988930506414537231480139809424437127339408223217457385016192898099830348586392784600718170374166509976998506534655135250999502335431385679579397374897096660287319394495616536100802700560492630541592824685789506561123600180584452208697632167799377176046881341253341447381812417344779993424355842197005854091909002442797908844738070169400660194519063424877662445489613135817560609438990621225472855665508655172580914185357965013680314769543484517750335318406015395860817262066696914696580271251024627037566304597424796545875738205731518710528703383361405531592643899058539334147096273887666063960194776916555762321436076579794846935426948899023058490731365147711629863409499472765845330186075589776820201029933626581482779481343498659202265464557543078172259350494065324778345276641742004822058026581963464670467608310448037617242480949828524735703068836063991311245001129103706311607735990990086333354678340350514804234428947062297567941631261344719021139924454441892819351691966187058674151525640299881335637363751548216924608168634306371823332000078475117224837989764549481852250376692582282392055469508267226510483318329926053526051439719756183295955212550523630364755743475507738234750621160855615849235767411988187784083760056846660501225311478537310604003741011015046069938477002814585858288666339384388218666179031973641003082777962162163658657065999443500733366206388775203284383373422172915594920552998575385633290258867208743569406862882157401016776876047116768934352824734917491444381574634716896127249332016030131385274719707883596363823004319975726159769453045820945733894342788326309315955750184928228402513546960532961396663486258146706311673131038863464101652306969959107091311205138091344801910759508338086557582287654277240618348058098486664665743959858711004203132998450686825409905864373650056474106503902800719268809653761787056465529423819594850331610291807486361604395661932759618706811886509337448063525610858048680377915686613108897234242262957918141820700417011974401915543304420646475140030890173965277725576673825493346423157961671027861312497573613217597738994902917696917632715664252911795427885396187078760252188397657145571011491310724130557092597220816559274867188554294096983089558153826174908927241503203897497860733697585882615299534872540545261234819986697791519458718096023278206687224359603898221581178364380722899189658629242926977370946459687912787989942331943879834771684588271154264371022210594458162903560869469980548058638218471917620074399817271331004963998297572243764297220538040698379182364853554073557974700893399766474466225707107847604639167290648032254151570456507873668056654550485538564636879726201708504671382051034864257456613156862670710188457628917699084411559024898570423335190139872117423247893334603549788800057438554327537389789761393590313287765890854995409898157644998201844189262002131862930546066690906994820057992631231042582583701641496795277798701518026717027244565904749214477365905377900078699746316102391155453441741082854635453675715895239044596225073047441999856104579228930561675089052715655659398429852386460905357223600651796249133379852379743636196908717454923902160827936558187429771120631087870113300727659730348756040766409125008833189130024750739053871460011190919626242231649805771262432437895771760568476978659411385062516523939865648684784397050299987312855338807235415925213874348668959447736382373132408514474730020886108056367501346016798718058118057971775873153629071323201651487961208204881394633572548521705548658416314054250052405228423250827044479593573188899767264452589193867220684659470360119169805094591519745096055287212637889756711425535349816803266135991480659211941989823701282577719074050753966436104314163197780304490898360965955557540082168733967462378111091982348555190770448660165984659233310936670674785120318888051957970687453315173835021259285629648081161367116112479435337640884077428479994625854738384298575036572578370143370362623834516070942538809526091704901272910012532068959941461766561335164788047687677594912214427280254038125386503904662244988092621073887125125183444410759492155036056090931947930371541089486009651948756303606459182408397631239752001966470653733645942918001696091028605455233403372767296319878502467837950508302690474648829681746075095443466053977549613278603225412722347616326996873450472457213344480004551231680848850090553495778698420008029204976423680455801569202888027596188573753072105082525936463753872188616607419612156394180412839591241619127376272132964195841598213347888750453751769451154060459785881884184878303856370882787157729665401398898872296815551118282122192904849868934918418984298424642868594014880594377872480623214114527361092930152411700127174085001645700099147790946361541931055123046007959144992491816189640743308184502631848489145182101582156436236671707001348816936231217399683445812392889635145492444133927910764816195588863151315317317778469593423542152394014470840558710255182814494102648888245891741561627446637515892726095128649014622473445770409021914214206434694609517182956528635907659490481838371808760757586135391719055754095329519804377854888276548143291477929164406269912271053834372089560170079907916920491278639051070851781413271445265587040905925592445388713822475056800798838954844341608841533648804964694168954001585346115918300204647400783981077296362784063665454819881297014028830802857223485371383030868760067728739445199810965920476929741871629133309712026482505326627952585651483830218512670766400008862731122566901225782454986203998651630210469786867350011799493852559900150771835498892834922003389090752954701806709642652765289604626865389750825484252158612441625952174868141953762831068043511833274263327316000990555155402238802484743112096593746950266704551533656626448239176583846932776218798344898153133074179454281541047421902994189286487773739485332123331196416048807301985300373404816006438487356810925368342237135192765478269146591271671759682088501068941998355033128921368486985661312605030354510154455912752818048128185633761476466238973291849910378352595400763727498034763221801524604628594067335119290185347595884372775456678109532028432381873786330785496042152564812264453572604117817796107224383825466584416078301571767858889532642451892278952335699261018993691346739277732549636072207985475204551953547568614891501644566901885579155454214033457690315717723960733804330280346969915884663361833591968581167479014096186144258080512542244201145122521507245317024783883954732028976883190869527174486098292414844636091727594047284842563472705116807663159361465281114185919585222280381749809420991210667940480745337406578385452742206040711912602609979027341913665389255545783343754184115691586563269094021709351618518015947714751299075594906768717195548238128054042690420072934672692988436186254936334645638444142792149440647052666033058105611735794963473826593739669519645687540795875212790960489479258550994540830019085672057209889650424991213602069019747761224903297342319135124612541588884530633487031670353225363051301269791939954063953386830470008859268298786835780190042663142049790381737227050087124571530211363309315063101331462247434391171060908736097539693479881520213793366101478490122712067122977579176830664276893036847222186353183980484461982917687204332982672301623399295756250336539250572313389292574979891264325591091741272974102435673492470473977556843137081405321901988146966985478416499499243489217462785519783852011193996816813593282122821755424042178308526979222083659858695934163927722381315129395299760667630518394448299800830261393301726918100276724828038466552080984195663381762876846297733070299284578572359790909168608885249137808023225352890982410202677485476194891371958679789674190917918624886416712326102151510068920280355250815194018780893293455366503032127490762725350211523706129941900887465324661780935774578037549480003797262510442296476457490651484945311246613631235462422392685004156144290763440996152275506797762114377231424820232152813133279736214127089706192962588961366912146066323051974730783323301264201247712860079830754109041069504351807993362439446449113453679545903758189039136543943748862507558007224061269703445430973931601252937621284266179820271181349914775900610749635148923800755580444936333452235917396198396732846823566812527229200632474105635998591398464954504801992604635637021305867196578519844275030925392004981587878920011056636400689688439522537426582745920517035318884020314516880041224270241223639695607785222055252451150504082205533873016470284834710376471669978210808704462404831877932947033057820704455492079150235236030760850429005170824109597064648676177714490253359766110573630664937978176137207883099899072646820322499370657345270148351736095853896147903083451914448056586483794226592800732836610141157541589683610462273270354075367821521514869752292202395215145732090518134317333605881350548525726698367674425433338988239796012110680252953363014010668748883310183870473689910029103021963858346410090969392229502890671969520210319939393199441353208520846515194998138474186455270235002071081554181636365354601978940522083517100755695358029301508259859419137133933558873444854030504515679644466320920703589649708651770432131030326168450957982930247157190736238052573515121128429925453173503432499010816577761541524334859894743954817847065465911931158966871422871520183675698606127749566502213793782149866564437256292894000967889672342905008993190826481203792919015751166094904849432460485458678539074408676411320357820854006839707492755245822486569794327552798969977696912527390701786441243332836729834784078299204258042478437350587315285841151235024640806419768032049568864023544664478487322345856194000287054261490513836255983201302827717260611664203451583786476165984967203155861842760130062447826775048259052148561608976673236973063163302789696285851687569678390595450460625308319688186434861175983585394157649743242285149275074026045372785329843692215222865297662325892397689905726526725641580939056227527694677128529744636518628037158587521415046693741303474959183042882799942508217943228750099706451080036072067495761189996586246459008855816633288755418604599633451549736961317643574509970910127119187232010480954437150098653327775158368191321622354242404249720367327742401599480427595344407704180213091152426652469925908837082291332183930835580899579435372851622262672252074081724642035932582408556451139398975132569882667368822727222093138945328748409261488846080476921801621670891090707184930784189291483222328492679900752497866978608803282681959975779639267962326440621228752211676725550991313199161982062180763068937089720379606458068735101402647419976653723473254519151875123760462003883022508301139899844810028606817797492364056897709081517105044546105679132671461415332776938615843556789008219626205323549460680597376186215363393956270558493994041052188230358256212521443816137322764966829218478779938524994936609872414672666492631199763119613136569809076843095772636889284522974625701285381589879758755328744738681269926103042963114856516493237920170856181015711368209043835834491514007797717585735994032030791179499959079063382722438583444737757243391214901724314300878714894189341896185479385582031722636773676434656278468321948749025978402076260735137516819835740824331495831793049922778418247014707516160946917536395322015286598965802085566307776519064120303467876536972485721961211271133174297393123355198166263301853242907289659527119534378543980110358658143197557581203400230805142101362294169373085421838038107940256065525758971487247148227611856562394616808224800186531182053263709522114021840352656547572172128051915653540705470536231554063145727240278185642693464106400383374602972671473756440976948050536386686210941918390489313579196328778631336748289204063826793738448073771226889448481530947104942952856531077486802888950593504949883086536530904543258444780016986312053423407393945829097279660515814507754243312053518444529640333507761916794018167573475433125230310862580036262598489089032589467085106475503057637696631028839095486447399093468849898508973386310361296122134910105013383698455555085600054146791453947696688606741042073198009965589540410409033617775069372825413459022470164625502922679718223292976905538446832142569680091308686149316336418085452926938371548046815480127716722454636216206713725152062155962512867917513479641104647231004871008604496450938597950752969474627498610905829131240543800043546136757524904989643699193077725208762804035128610443209381937702505014010683067765553376192869027141723081484608249086325245705802578779118114621753888442582023400386320632316477964639063712433665540121803189886731034064355643161496273154017510524543034560568652483721396005058295913690476006470128222960794238269919673113546060042180079203998020855002182352444030309967019095950396674639221746922466637271030113067380755913460659254210754857642542459122932740431061773954328892191613831674526145782712070623631896037102421285121586610628254913679368123280813124841457452316585886728848892596916754265253994880254028367289936339391338445863326041429329402799295012461236224268371273214244564395596756181500496694092244871677573299142907483391029248815556578529795864300224845493856738376196406909736007862837757560365081096880744786894574032644106072177255920729033768933335856167804414573207167746858232283294497924473255829915135512817278217345494326014223752983589125622113936979604109056993590096402078010622862353392225823369296212107365924011884679392677139701992215014737379026504586734418826471950705145760174629424085430569735302906459575182094360992819834842048153735389452837051481063205501066021737333022149042336124108656575665932770862411724863918085692012899079004350904275178380935557535056178401808977848044336037281588224787468023755488801447680330643555058754565207801726538035811166708523719070958054501604108065308639901270358421216679886616644471014798949690850895428537583363593702967488427919931701151561715046390864181702388052338206461174823062907041946151013078869158931771358779918284658225713270894157284374947758701687634398714115893017955019518734175033778455653103341146490329680265497271582697406188744349261697008536906123890667346135002861030947504920202481048135449941123829455123585910750775764613515022217904483123849270924592462082569089101085905222743943437328873955927593413565582546092542428091244006978278220878206010900459695721838650506816461046490569656723395262141544691994990308185587047004662283812391485278664008673328609137525888718231416914799199535679291659400552579642644949946199615338815408197759232507975628013928924360730308943590901166611937847542745530839776393160621853710706791543529422230962105951862908935303727746935512141782800980234025567991492835386827565393700945675857743098248411720898754897262025226815274282341067191781042806708375495244373263589700793361455813400706820336783020860687165267730763928955365737145980734318069265168765852120122582517609910149115259992942890733588224008198431566192067948242302365244917097821249658498695167643330524238065324964062271246209153270525015927114289411486132869573500780140918508255324696269972428486373695186804032414724139049181750941778148748161705329992971901614437169098324815949176770263527236411468959597806006899988365445132347643711134046089121106005135755213732066563019414995983262317906987836554691193760919556864289109555350247964344362319392345605429470798465997523508674901392238111756652773676835498841124766082565136050473371866944573231745565342186632643780661588215408876200100875889017643581270870050556575652435915792359985202862955774454667424789379556737569828118261683977274019813349990082993287775221633100204341658903042724487797147051000038343445940022833267712319674467698464252543698870235961152766544471678501042375591266726212908666120078495970035672930001328407941702939924650077295820431476373098912868562936281451102272122478245203285788682681269057648490356752524083159696801340785335172274191055218180726026033029828300938465397120997761426644526232668895935793442338480005047801105488474702460836433759804974190322714390545291034772054544598933476293045166069085180809552916623251887133246316535103863482568501147305484244654307554072902677919470181285775780412126289633251353146473030673793118039943092941574497098735210195565994600945988116713489942856165398093620723337696214936140133522131052429848638302752094832568348000973073582243704136265694159333487037064051745503793237958154309078992344561441020887301248924685555487900548488343833866246116643943002542480572321418089723785995114840555526118455776448972881739132243966231139031718770072552976181717172061901306059469817300781173511162778365424569913945762775764323223232102964829028341244440010472629088717945854211362426793628304763108900232389135024910095775329213988805232748877136737896785110378709992991460759808248966070369295714474713087887316139039095146758204271438845576621146622870895992239844203164252428264499511569687393942614439116537285616078331362930567328523818934754668613485628627768269055994626394448513547517733322238420314263686952362989844012475173415792855923924016928938110035403010602521448090414649893755793383533350748252587846605890149970558898658496063358233390545441815346562453623543642072423264878066041301014649518685053267575127491832362857706430786799655467969101696434497988381840006867988513025633776959985912622993349344584301350942355364197389746466730930072145740893423748186702717464967172303269288822185706306578635430023431178947100900968936340467496797541133266773704800684188584360802508476637086034359957261532692942603284967366224114324872929400607750600089291099543116225111695047811479243005593515585096930728518095767244374785647918671147895234919831392010843163055823037210930882049553725919265006191189659805024389673539439539302139879980166258228003048399739876368105313167102672277431062336100341870629580474808781569851758100046528391932690822013117128550158502232795488744976709092906771080317287633233907040225616309586133827152782341570722146335841757907536048907250684148719781578535279716858072294462816905453641523083511896074079298034127691353166720818765101004008115640336410514095508050091390710967104057355260632279176019933354759068674192618019065344362091920070320251199730796923984709866048574598995109925350275395106486311426016032988406624535343896980387311293199201641903683789133384363878344294194279950512590113332471227305077674874332888939648709386281497731651579558628844513312919692135948689190014634446777452330831145323308990614871246865719687158811974493544469386534611857345575365952296699581425195084349950683033448116352328075516768137494690285804807731826981792128012362913157135591323074053661007481984308092909206226946756487632858400554824303063732122785116854760602931162778165388817929767547841953514025111134655610451646458667128531102946637604300305764834204166090659003885204821027685583612032564139418256255115731395287152704344000945926495552947213897911343851189603074639451540127181460684734509790059774707249004115033035219060210789532229943585405396840669012780931088150098309959509547029270067223843217718724381001502437608206944804454774048124168673387452615573761132821123545395516446014060264208873922310469182119279491032943135653833626655905682175592676800168585147468655267695704931106924297182744251131121141121462978246316871061396953734344339632284451355226456316896981560289529464064476030390642664356408195678313600070802488549224220742499259866385842451428285836639978095968147369606721358218822796636178708280747268467812501206761137088168119939394461735692985667647514029652704766801246394963093433132290589440031636725680022104436148991057972933902471190153514551681448898691166781725947795058825142370295922340758065896770391757427966740553050549839433318871699934405011864722567991559025673269562039955643764691697439961912153737426453166730411714689126454385728601543702558206745629781240970445896505567061995540859910661326314245350308901877907122252440615061753146816022342684082829075298677312133253103141024365471053043927677476172133758101727611098308253337846214301323016931422293777739846922758175093304242562038950561732746716975390795477961936234364888858378260549728525903735643486293412077767112673281970754710735229849983015099623627761395764736912628350282192776925847552763102627745388760324824541950759532836187588941323910201697841919135486726992835505191514479531606506450667496599051105593656788684340791410374435068529726894558330216496804990989696230308112042287707233442732739666164337184850835036534507442173933304954268159635706479657600063980828361360802700533427202760169372244045428770467494054577827933047318422880481833913643578530949673668780769877708913447026115447196113675258613010765718316234970691335354169672919781652503456011359338975189560053340714176437148379458613778091104332857358477961198827304642295829188966110061128999333189899068144532047392939475301746751475330588672545643457618435558377390701389644924888782316586919666642446202331252758575409529574317529950586006581352067262739097815923814030657576461765455745803588841727252976829275330961518487824828228280639940728473471470657702913705978675942251680355808257118255888969003416648629573775180997995669811766893573520662847561722717408079884991652998305845028613652084777031628419921322301102188591906779422426425785843284920956349157469612895821585355953817541079306096956382354142749466630593421959998544273403474129851149208181149786634450532710562151005092049729693743949359800250822925336736864271324560038016512773426697848425355531002118015354021888485983363140970954326130401485566717188816655402274394587029164682588840870472476169755876049896155382645545805289624302452299409125410807782251154077427043235978284106353763350994132831777309822670971194046986855731365260789129799508559705133383746465836776123554991125694224091156849449701210819457042152945340079982708970275452990716088623716107944415333794074147790086591133369242166244847806585020149769903933162148869172423905391373935463317432823645096301368256456308190140736326425899309472779977562189691965345814393361640236885339604661881685382659179610797624556585110377438494004596231227371710229194407438418137378987583875688304537385374574426838142570892881707124919495161876411661854085065314032065873465619993927737790453633020657922143982216256744864210475568542312376949700550117257819329837733313240584582741337992552302806425703394621508747438915216274165828650895057205483994192536168310668942052087794914821428262908022722410594380765049033665513156151976318642414679585304253672550561372807454833738800954996662443682524590352856258852296953928242173588722517331764079467996671884363876889475998694166561310582251402940832037018531502218952528284140135937482251232868103337300720086792404367966455942661274407766741454693188932220956891676044401320529270475273065415127766556258219893317530369121159378506928047516286606872316407897773721375934053453045081401320896150914266037426381256290361042298697656869146467558298140730344650286712727974866849055329924498713764339317503514057021185575524270341073210998455951637351695178075539042584603722745576614888312099133279560545315431451825236842482617063669178300111563923709812573201402715114502270932670887332420522412871398706274035533154187064712924670391788009462088250260161476654307165046186102431042181912249853041015797182501000123839171581003765407735437512877039809465090435756658817866391204776015089194478650020974392750473700856490451470916491793508323942378600934582541465268446821559811597967914161039639709025326753957070635448534333104296295662245694814016900040601345805557574540755346612681020117181814002432959945208292084643579569062527868273250037089268153960255786697704715850031672363929161068413594090985072347161721634847002741977625207513574249314520575403845826648819502419210858311691493348265315075539967526112698753120518010880372677695034043656259521262250896852008421785051287507239544473244854984681739307574704525294249355243099412365404206714658246131904607660182807019911889999623332350383489723841117265117216753258505330320908709046541996862156379337989917535387574861291424514770634609420778157786610301719977073958729081787405793259780279082492261683838514774710303598703281410328800062166068483162484410219621055605214172129484724469380005040629938814016864799942399548957421633812788490131401457380581796141976017733166761814823871552444553658989012674267530815195111226835127339615590152365082489885278656835678957142085099052309683794995186441618974726964912879509518314122088468980517956112164301849724537568743633436754677789655431817375775642251158942644792317922519242131648859632386335065082967051798620010319660668097356010932463628588583720296364718520907876152559623228724463487159297514068464092623820761118246742616706249433611298680481181054699353647019449957452615305731496034965734449276358778996184862371695867147783170449968321922402742825221847775508041918100837514149980567296568194873090470218516578707685568012442482266501864709824520348833230574505766395658852946332456766786162041498702996511267235291446883271348737716666870108963925490616970411391467684061152730759694268540465906847667244025989701041499469355965561832603020749422583861887630988148072860910607069589378383150754036000115819259339777263502721357683750947709724685837486468278729423014817676325268938459918510938685212519067695046508185450180763979685793464047964839607804241651348501253643736483377452209060723032775934007640352309409053582629706047577893856170748353264918075896964175201662027106075969262891775543424045567699195562503374641033773014242549313933364826934621154176987602864547738767543571717929494671592053082164598635088906816722265762849369208697073417245703507430672945537996069708549415441790298548896583997381111458830525211415605002079035091404773167772299177772042749736394000298917770666195844478844043583601006272884272949863877105555676525957107063176000437890912491809439491265586083716469292774694613029466485647492441082289985468929519551651234477511762068367757815513302272879936031113233154364885729390623801003982944388656335750278844636103586514082519320666957727131372464184622309540994635577473924537094910738407267884420014557739468975121598579908481137236052945393423380966786061766295692156978631577446078072701057380177994847629118217066626077775817852402798664646041932992040985208903808041608022586982059229393985076135392820922959419805810262023102225489646577349201578052267493184278428254384348236652335606616192457676450325720692569257553413720756514781295651668479685922599549892733230085344018251488129157315906527405532725885156742544755943828614715890773241880140014121607751068248745599618780205698753721775319173145624767834885411713366687255977784029020243071397390669377387745429940319218823691481780944677578624875643943156155244803051239921211168975500894634599672797977760474650216638405454696527025833694656715093358583858182408742769722821833837839755802820630337247173382028940482333667276570217630932032107440670922553858339937894980085728353707812019808733634847210089241943475191024954561586671170980603130234590776288329506221549243196976401836624057199020325595076535754244869010548213699254838849683191306478367317542920633600241147393558663550690191970414927264592698821733079301212549014106599800167510835206071334211695192243686763795132679535052208347262718711986903931547618924302485972488597501468357284891529822627120463444852639218591011910718963342607305018620387318931797796886983146969820655354071689654059000088183469216507518920940788273173242996299583203028318212315386773993196295383322287996114921375634805824224609522276056085088132519840873090616279142028354610197522993969107286925768383832576337582802587078833156621551798550495739425504326073532326706721344011841903011159950081835533780312815353509558710655190309935228220176878227187621161132888692350270727117690062560163486990842073203801339459850000345587545457968411938142442383681583682547888328192756877454313502045036783188614348059807985918852431767778662952791408228188346332070380245961833456072444232944943716240136623384061688254545238904936319404580374791012930440920568932023061579978946427761891993242736283405098656304976034001210875471584910382178799382925343981806091256157530350238499667821084908248231807378011053282589641678837946208373261088476345165175422280159286356278860264088853991193673761321125070356066876659319932545583416693992729488564128231160202938586197434852497093348361427577275536455064369935795895309004341074928272211270988853969384654867685244386140998649017834328242917187753997748065087775079983926745759895342867048943426703109219243737089724565269226327834727317271107692500241025121787380062432205647118214494898868757838553275395152476588341362688803368295380593497964858488814878241657368663748265734741066509528508285606503912304437571345669489686579272441457971391130231019079269863206034310140461038407021484037354411402321632503704503939286044004108441335357719438868234142698062508382268026446512429587140623829031430663640104876023258168530169443147635519412228548674830708299583352889632282793402483179154716303227157986858909253581294468780356604524190076746220659942462828055903862246026206272102177449306700619589902574478127047702780427330526386929133484885718036353838546967778984187691479877767409350300137209154201181455053250849575801861160861717089209480936932462138994667034683997354936551920496761471256379058016803383243450136342576882444430076459949723176899026446418488832618081799457324517978343695695641542236170234293235174013291449281720998511864328540518160302009721148477940837580932137533143203282971732946402908406822536238654346035762601727816403199683062609434619744363694671541443392432061982408684579162439599682019480455373154270407030906234772553820550413649749252762897508442054421818121486054856340060898634964473582589176678729420400542844732446398595192673498706127670795957784790200593467190710032461326649741217438854223693029931885787753232693369911163224397350039145643674296780076938948123156421581079312133670829709564725620227105855481514759335076663169292711545184406121451917932973033283651166678130098639437187000636827892192724031895933635943734358991795675316839706498762770570792912000194805017306193143527379476595358093873944513318107538819639820130855948176992308552215630282613963737778738033522207008511468305079161510777432532450193415626684406049818660791837080726898595224843592500287550418692230817443121014856448683015114618223441527133073346328304613369112666059457028577744590783816431563798679229370775544692336245577396886024422860209299746245574027660917294003019623550572663985879672871798878040731645496111553929256588622948862538534717444105989871688813520641518021684435635713589148619956796501392725268386762222969316101496931284360053803776870593826039921418755162336558929042543852966864124593228962680457937242115922714869138174388928543115733587398633234360747257112348818713501631290590478827702510125861383927586102895035737453329774891093649715026700710179204929957875059677067603596665456048633399169694744429296479961485663370762297222778865800963015203900091833334502038642980492460619257419165499346694797515594161586088662595229058078538443014493817880996392451810726922502796984422535678977602441483462570621902384930216110617067726695427846887957603812054022911015242316582510721045355729915622210627281885150605401683176196948115355191408853817405154934666400870868118668655341452909256873912907414222162562830154621620030092809087431570969999297680621553359704955540231418029460838711572771934832753759182147873951758548335187980231534518514171609690240687490678660943259645879824086576997485209124451900164388857008596595900869022451274250051687883396032465584169467686398239458782881294564498691532439507827283823045590376886878438191184631816414690435588442575379708417618701302216271820852546113586803547409530230535855767219455445115679343243573895231874515194764597407247366084577760462089524788773519790454333414733625899992963066757255389319006728317839391714749457620952217552485120477038956542863607732591922797263894231286127059997430860802465795606776656478012540464906158281199835897005782029147342884173462121181201646750880608934136825332358915442921033740878037805209129057802230575361000143510369623878914718871947216009728001871359888506293830558151883337577552303282117114837197000190613539116689218967132139887744878484184424338780087293616497607535432877959387573143304168620900317021782599129173075915457885765171180531113976107572600671630591061669998406261313728218016037378569202777100386764856279857442119913560829553847043094403693883099117837477271919426951485602980585122973895548883836964888502288400825165244143306822864073298422728576930364526348900581694709103678794337006438552114239480291093581872054578218277497606241485613803521573528705283343732226573079554352192547077287172446368765567363437132203524811026062023815672430814113887933606733360418990388658287430822622012478574038941960372564628773289264682822220601099676584808048918970007434166640142995537514479833899896206232063918948778634334362105739769836858846995243459398298445283978099942509234686774802476637434840218234850681778153802003451322903475150623382320463917023489790190847261207151738571320292926203015163591927415180253972712708254531968862395481659946457542174256805949734222695805311899323203260966739598623166925486632375131012075946510642935003729056283526888304320966681984479127695966616890473744566278560461268774368432953329638165382913458757440645167137324659287130318464964588526143849846773201507973135342354419006887166009748842130918109158896852834532222421806153187918743470157810537304649042136751580937778041044398083582125073205413719394348094607147775450876066585913980178380814542123535828700030434148190993264057602944903213251387836136183616541614571799212281856138050736830874793849452930408543238466154138318259515221547267533325627296962786177390305160600246427981937767167837345198627986345568154271511622847444568761413434346014572446844419435221730518546492027410829930119816864726472345501195443483836591679798742172611612974917220500251943394674025547529055306771732291825882247779419057954166609971233341111763259158113973280189246782713642544233238494680217524425675589048215656573222461087013529693609542774752168831660910808295875088880997316339130012578597563092973047747963006584371291832960228036178568867631669446665956566701704472043911687561485500463985361844383030867722325716531942949232681578722576400301702926660873502959710968511626379684164397276468566669221035897987064126670481362802002243728384706219014217516372127600354334840720891164134726309998966653964689795226288762334510904591987787827850391690987244352372169961038824184569364566313369639244223941940638648560021403550165502021312546935340753365028116195848880430546696199332022587726542103820558006386118217903081779892230158144652123054210471034727112033811452896721642901214571845100103641910455573750991426912135207915537306726604413565312864838818757064394180632241057337067044217013616244521485232460940051164011715282958502511497683482723326828894110113083598419160765815995180890659173550930489147721220965781143399859701065691933980466862021456538626566827345545051875624399151268485321009110229847730569501618357006766178048868235023564221707719892884634357970330236745995259879926959366311404911957922799290931454225294171038814184147500399677298113747763537563562005057843898474788260977413570128808098076607042216612804371227287966546918676323427633067424504534901893321833433105264692981846299946618200751202628865943907786115290222878486955035585297477638324411920682859017211580719674188554477661854864558319774854687439559431889354111793412990757130800930787914344980194340195496028988291051785422529461327076175918529075739340591587685616950797242190992253131356437341847735199899665972547094832815794939859598249511755050563288792689938863119405059400204101650707847973722226094472257244630301189301902652359454222900240189900147863725156245046892452899232119325165387597220220577227817518022714635619440260220659000991564089650666244637111403176664329008146880765870591506996632208844674912862852871240576049333147387901895926736717755466619716593138624381642570020626560614581690601978818351966929572295655987602304800399841509074499914429352234269288048091116145217151951144766821252688845165479609276347168744105464396633999565319463538567997973076529503747503618512222144528331986062091565207866038684305906058036041933021967750035379409714443702898782530281145203809621396125783700735574565535767028532278139006316145580092473809313572963391446765897593931683701353410153889972404988766512208285484761264867930838956667204406728514619259354478992329658898942048422573115919311258891310549830014987372801071913996144517986414887265926123270112937079875486302584045733100239234472698221970231202812584939970337292272635552333681154965075704496444906204109617040464716957044209748527837071407031260333604401073847688595277939309580341610966042247019134951118106184262513434914546745976701584108935418802579548740036013499020843129399816733863083301995007761586646505677725615601756404376010582830975041851796570693557741102999142953352848323966551336193165338280674174603390709875467220018178731407432044418288703426652438880201630891291756531645054570895455265796799498091513476791058323850309223910067304595348354644706129247681433228181530629683728162544342529727934110905178284232055329293300909137246980627497592216986135435186734940280537766759798092000519943455546801646118318306857080615199734828172744523154897455085309582530082852234281141260636128886943586169707624561087091820687423980214106129653234741774398992877124724133217498445537117090114970568753495714894308254936555628511287950712598949570581198673277554582501421985836834266603970670404290207416722973596266732270926679516524382187847574486192829720352200591704784438550431548696828410874073697830365338587271676938247895575504579747789516282276820895759003749939151822982900455192200444252658579292922769665966016137099429639145503902765491270016337225253151983494955554415046954691243867355856845077798264944625808429218058791341329966609280932258303988203228952960503772389653529725379120603600016355334611056545955014054540200881444690913159617784573113341003756487478405411939534471898938097617459120946699611588037439110294753982504464413103284371685425349617746397324136517394679189126836708406428275952587931806858993153341349105737392063220676151341684935943123206268813221491549172414655664019307554420566492219366750151271555024683785600844203051546254715699390863993465732760283794660034487114933254371107070177100652769166495350621168076854467334193336184771568157707338630203176206375068920324456785913978145434635240544817879602534113802515825643623663739293409786611402788477564393509515500321701447331556843337945306324047582139755811034570320126799444248113408550136434163300442820846989245843491726396819288124263139684268594097776003569624254621385186028036133273253260171087014024795812884450462474638602596655354283569448957959945638859454621435686090915209892681894823465786448682525827554620257460244908935872532024700905474101755057284958964114894079671763005017203303655278727739969176266462074698222511539043552857072147953124542070647710111429878980913441567022922151830539773814351732936272757103372021495579825947454887905367571316425106714691054178181256049117175391208836724411818362432070858162755901263344709076365581359473537097117530925322726619086464106691753069133228450001968408415682089910302372597509520080475594916479588973775228341351543233690164127562137381626102267608675787947171122086404518026019254155014970452517578115527760020052707628154263506762717267102849236233616985135940195291554229937094935320043763108523357509713159433230927923677787680051862401352380351105460869600354946028929682679724618407850241019053159336596374066469129211097792688760666310331718925196504378784272087803161453201653295057266005084662843284223453072630577563175486477813585957159887047136930583951105777586387732425036589868986950966647778721874092654861858581633605928711091767976208604172844179349399346986413339207118105274467777291118523786288515684806907007437169503664722452012425165915765998307191375059128761315910788012280724325762491943931484295124092507165181829527024320077029381097207165803684440053458580174173973587823797500409928551177377936609596077180143438526652490206928502587863336745986228072034758137931280883699660869791789072187526961709779076917634200859854333727444403109027995824421781997164007109432295509674640561931677428704841087317487208783322618373652588219691975127464468170755131335394895498437450941025233431421786283518788204855805511714657300403585928269035385155183632093842014708571642834115157139476262747851709087608089319400685958239637935999260623508664804395160985538114780361670018950624006893475025923313455865377179421886564607306059157537199012096410316081201043119543530100390264133974490891493758773078880705524566320670574661977876662868475049710960212515088660125533645437276354802718696895064962604153292238794478687897013646472178570425481940247357923954857668547417585120663309214176477648127285998297655361331421294315454655998688533599487325123830259587406470429266062067412077860229774445344644750129306278195490040266178481897795064558720599038688092834617854623644002453170233438571263433052077752631109825553364389912447512948900477378269622079724466652889012862890805335469080928219787253987599448107379163949471863463666387470007253466972101649929595910499896620836807823167574904803064230443060106647973611105055333016872732739650628208933711241725622114001850489378440373652822903774408466856517521858073513338259121947738784761937175152419454872428201270101831123841668936998067023196971524698220423891468360822396038351368125867209339204704754150688028404890872553018190902811856127817096868867968873187469597478739407026216256859627160245805237113366419693344616475327077190670610668764758188117727043964356668738259599524892345576460852534483408740799466518133158265753137923165040892068197993372931662602405343367013848839078691696539251347888386231973386101314714020232909709192435641535943454275292457734847441709624837978101033220154007277436491955987434575892383624981527687392315760372146151292297676851589080701200899172227914877263899871908308772228120046639103103269255437338902077125101206893239112542664567976881758394382640295529602816124403420889378131448643293954474097782704852990499762170681098647528687590875832842206095737017231286686058804481717774485773807377468828110130505072819413128840070982066730607618265688346570072332167823194038755373065835428058933022923076285933839990032679537139813805105129813220720684979954492085623698144634058407395711454234093263294740860179565668203907938646427628246019437797503712337121852122151552650408709761354222299988009283794371651597409166944889857987631954965330464226351982912120666414618367906819712131406865619536838975119865269213466073612672214125085532673690888498464998179208116731582491865446516817721594220992842339899649174999909045364928217863872019986867281053542157377517643798536585912267060693360468903303525314247195840793565470094452858504345404589687105799482497645249792708868205717413458021449107181423253745039116848680376319986157393486205552052557359085898436263625782407536601656248379992017168487273110814828254812321845304216678198167365930247478300306028174466994074989683212530026338486643478651569589274698331952831270428155126149870990916429909457951832465080280236811466717292976634140847358338932652415430407064628009747748418011101895019956488742889649866833162234292724946501435472697615858381956460778428344093929309786426376903145106907366973636947631784700169087399680368162032141356287883238860389444902042683819580505669319546150912329110116096691972760025581722438667717638554187620677210986674122875924556976093977041164457292487348131160386033548770747787721429283979330375509726821933346890266346032989508061855116908473608393253109804284823692232642599242913669768302963382629200322076793766857762832017532755157501551394954323575803250753060467529582010903624658719028610218108650191205779771680461247745827462100107266538966802317502502163973199874832287185116421676432147675108103740119390049788119961320742585346551498246754507461545907323441173684701571302487684554836861287344508630272433500206151694149094112129729616836993407525211834659795346726999429157274255976675823473283374444979440756282000352132761396055164837293056735414784710339297793654931171602251443616910614085866811803098933325407468121806505749212862423734947361936013719758630366299614981305506440416735609469878381647890272736364678953585510236968971530617199016689458093652507463584495368286805778451484943180941652004364697083446136376180855602042049049903957790761797670010512099628992245608497100594919642103949006992032541273322421678435232914780408246601001325512598662617233160468213020700394162040530911326243570390320851552534865894345505071449161008238512540854622995895478133678252681821762859504947938725101335450476567240914205445568612630968597557527188922099681932403864974248908551083512113171982314313799234587301137067222107470343187688582462371708422749032373246405899513351187869293292460365460837653785726840237160501666542780674545446666951230718458146049616774158416830325851829428699374974470546484028858565388012592217568876162851176054387390201490721780848856931656022840571356833603385300211889464826213869319936820862874700078656797433584167832767793130958640408399280106283149961861643062683788389732827016242120489987767783327953385857918226038710524118306882140527991908800448824211096398736673289303925281551496025844382698933997035221262074783453162011718182376959248663581386016537356586964069094753062720806645757111269844942450958787512064911092654125968841589118882825049724007036792591979635776972995609728157775018918440679998685587449176305628676340175651362345022660919418717433139027407572414163912866508947898779509093591217701882895909482177859715692866479632280155786506246380940714781837608426486540913469553688849810117012574684186523050023044454173817482103409880126223041339950822089090167384440919156452043930033943737586260212217349414594304341748166603579785156122447317608056156377533074121166834792072985940051520142507630259852911665328308762653780975022701708632284274722344142367041624459574806507651582211558808842759254815601585318033218575436641275633702245118341018294574570666380492120537181001233657944666604118129596564608669605684454716717866005447956217945097969756874301808364955616238566873376299518720992578089864116066216423778724453832927055626568076268822468066327507366935984065763808638693755606224365392208864584280537095627564332368191369008600942128580314466566393555432932677679646863680918044696515183434947610868735849848236084246085886930879478814719363550404877568666906478932376049083595264746486384226751607193765620640431379860317213895500216279523258883299087528369970489712402527022515694777399995749506109479801842793802127891373050839010109858666193772611977479936262095867438795738624914936143700860006953957620055528682564995635894468591359892982206467307033364785246380819709415414505141154082872345612731291045166588681462449429751862865268152923266493029994312716294424530303877972615431864653256207203947083387363964461790999111268101968557063867364530359085851959214374611971057879058767878924276024855683465552085344311585383810081323514619842668752868808378317263298646871290401988900746469426356438928145643966583976872253214354676883927026488544724621173067802387097602672274191994729203137552161743399060352546115376771971416363710650427824728889588887770335917715704183963125525629010611896470825405301602964558491367374193290947202984929005454231786368207439966386658501112309485186756189293191095343013516186741648459004318659810588489317826799532841337207814516721052094891250811492751931841804754988898306176855319253432319476279777126943530420468628139775354560792008838834217659774031756071377970711324845170274765196392497936180845033236342929339780170562245781942157800498035151950635734071953499955944733636667517550956893208554960304177036689134058283949718423518801084770027834295522593533173268908579079192616822931882267591415416344837331313271064769901390748191434288419775050871554463280855774412115925018717945696227645882183215717744938913322174868960784654110897479477331108603621030031319805984126732200677778589684243647769691066322839025310537711705035736183529312813848243774277381827926028798477298906967285669521875156947090429932922199550967321732529720633105687424538858846330183404584345191773776971646597762068899279165626365870300494778550846651619138877099021514701555235364137885248260277258933937827785281423625543934463038727707053459622854658364229647255215415652918387136943850196683094604738844035450734877904686617850503547245761754195648450890651789481848509860877450929052640554094722486067518959785186558431754427315081716217726368807511972747141105791273989450048176884859252499742192005456556921852066202388795075498901787489798941112425758135244349463006167028370121010470677045661046125976062259745221421989801286231675912386944070492548508751502947978257655761999830658196061212761698549111408871101578898312557111713672556063790822941532044135737833746679145271168723929814092936614311146829885007625439181100630211058244240677313078384770666097780253504002359343469431884994138114186696279582411727683058638413741574367760200885901413792210670705217364668790967581772822240166811750044906273971772730355435192704610858756750872457271654048496532965889178573592586103488195947207190454672992556143415586108226935481881120542299226952925179178768552467749476421465099098529506686848071445566869029238322903257633826143152031894643091620637354994962097128274090659272699033655857613416732481957725804056794121967964269933137559550775732943772570725032891073496303255814271468923887111798482315406335174573104934015491101414531568463488992737192674498630122232200826454407189715519092335953813147848631539877491171034774613158174080792521956379552939531044927395589438278122954135253569253072288780624988703029898835130408520151127102984504899329545601742722591748059850218230901871559887388538077608187485544437242270780205155029063513328149198029727647264622715182646850268584026641514873978113700715459640788974916575713384245557008027998619747680977289989113872070185843986964623988854827979109253840302640721052734249806905429413070820506104744874676637527691201590305393695561373753598012143861141498461250587687459891221821334083131143971511211126024485422553254828523611759038145925283179763315915026271266267948080741267205159809618252351940261508931967135642031758107129359057141344094828669631815009218057530996530410189221277074407973448567463042629592722596256267108070417808672823403090932183197772554741721048792938312894779336193211415826234762153452593562457066789122123938147177956499918695834216666298191600717680330784126430760942253239909298773016047182998475754294720790878775663511499603920213009235152271943247958807933538950436185616954512881365274210200229684423018427120353393955782095204691040316245367510307171480285905546319312661560460598939499765111040344435433388582640970667141486969935101193034596867831981757049218642671589081471382994209022859053827468304009894281130781545718437463297615241205545736975586073814043469920269732335929091665580957842924671044817454001955868753446335923038422106081041652178125162669367082552118144374827775881605287040414688398636644444041316212964416628809902018654111224948553656164796715740631850482508722021612429002071517436853281884270104588653625260729723312442478476821875845214961832890948657726741402687507067421453209708378231777606056558027688328260346769042172238462314680841957091286765063264176579981953624199779541072919283264336661537420864950863711217644185675845514418050411721154071393173916262270232127574341173071479543456821212290149520298068251603353816460082954871082421402220887248768983856767762567419795060600786345594710139927528244958105560594627168276792726600014809982361090231670675842548388088169577744744305506607495421872377151731496115512901664702279764813753110155100204067402870353835773650779532147717309925308637626280799383480186170792744225529292470892254955978134029272740328758564523353920458306647167753567265447820168548434742417888118016745072314798102461627426961785219343669715115627555324026070579884008138895156081740747202589258248994013927563180956327340266819554771162195874446193560567848249300488105234180795269439413394779068860391547866811557207151136101151472382809590640672319067101395945874692131903051356282473335458763046421992687104853982842674733501104333247314869565808103698396230898930219438215442859304592657705992102814893826421400120083675540848220237190252200256225781830824028959398533616594722396466178530179664620158244130233530562084530541164525403981192241676920693006157682461717199367002025365190962714485245347665226882819163160163378190355641883497683982556248958850908357712479852139171725583190279683411766865488675293265399087296423080545140053352932454346467386530036044460959774666050761970368619618068689587682997408460809612084906865486404097855964511513175007256960542841782626757624676680570982363131534388091849622211990462172438329783665856660355142665683314844758933788040572901150229495014182105940756069268601006419038445986521437340556198560751249410292067470665471508135811504719878352414115492891636107741299707359709526284853503558988491524777476609467172877817001246266847477675482799192553677915591336650531033081717625795043025709085466062844712873202579589060871886637071010652998378245957425786263646420959153252286129140608750165063295359410974948908785172077126977800124989115681623215493759543652706301021375146012070869139954962396958744207463526462538239673557343075124031402857493391196503944664346274379078649454683962299785518570792397678232579840143848481572515292207776911713875081020428879259209330936751513924153220184977536489467581458483986930329311664084046310144378569664229724789502763915560817658938148399099988883495608738401522403634522114078342739842627716126094335758034647321470557491560474442389638720547384564918898877436798864476171933403344788744442598502812075574179264985241302217553784533916567243573810801032406897843247621274398405333066468340581383462385930500392974235799578478213049205272262666078223206813842074457646760253761257066587226692909708173237100702231515042767557266487612494087865635660963163145558961597838147788143576533163049636589700453353637692325187267433248187491693516190116425066648718060722712729070867097540510584901674916445397262962097696181077322633775258979609053136716063449476266045898342802088322618294424114380781290042717676500582199427615367247020237490947837402658946711060319048527244880817834028279164098642920248815260571352640367052049830250286870977354097839633881714793766792940382239789909913211086888371739754289815703820291298468124158287201705790122326813690213903998971696096901046824362590325685138181307907593650371697128430814845381152771446345954286835835125068770396551061974668271804341810995317461558096620706818979898638098423629542950649964441894929647659058022399264611292169685413915723877694748036364505109649329584141025035497818573848292068089848919104181025155115437949150651256760048406162693835755034551475560077791329677194973148434450714988352329950411278174987333032163246066470725274610099457701612374979845063577555998737819627383304440280785311397033621582006680506391314725174422229209508821226581886123436730678333715119458741662272013915244085956466400528242383827333727476523757319572374493993323407578871462425918409589198544647171086425376797748736941304100340087949501577635362321039579978898632596450249565200658690087968358831777662690299420882015815666157279893490951296227413403960684865143459164711944139832177175073054741614788995415889404669241587762981807051980387651836479707507303147607546968305421667813194093787164948378248375153680528650932473110696384363683590581611810701736778012780530165785131211549959185396000069632662646451505144088476769158177739382625248652402882887402128386523746052576130337416838125136743494021808471915852241095368069233904810266950103179832947555583452553957868945470617296221326762020101983393895981416567981579397004322110332691977697252733434536962008963136635478999610446406110338389010388495238332716756868027677094708355105313456585929455386180893994785074726077709674198349230511062622835739727058477604013537784899734051347938696665132084993491194021792192634273889200287577153670320580902510543835523927965792988337133487868446404921460714176642001641877468555558887674154629139282507590586290063531977393369624083601012507077388146223032218114268778169396732781123986784835213373983264604659613200423438194438201484031580632891710439446511631110709627160303161683781967805795891334355982768384723235757644570728896409918742567562019218460196509744020211437451494216413651130781196157766884832124475126770225893642038837806148106032101500700731271369468785339680028391330680985296584755241125838737206567438780611268781139384383677395776899286229345179778185427939794087524393032674188163953223924278723960292679906927561183624156925775027329351303631359281676850902897277381837004173448413172836050111444747994707068378263675119437701767371116202324644934647071018536237568748551370450691280628374502171845840068857509711682847948265078506419364828673698918992652883552549593564178322545667137953845451956160221022033551841496691432316442732511778505607766499034398426293046109897016356932400713620890647004926961490265051472498682340429718014860412866938569870340510700616910760846638939593284725890756103127878328611537257248899458640243461931553118491045050355166090248034425508663088165175766563489200185053866301602307064153252525402636805405756128141856358994107257350290106779553802852198861293195350606632036903424848985518970282750321739861266065469051028698428327883777594665305126279827687393429838405932354076773798340604125712844765985846755223120436168870760807603063075239108483478395320550712611021332296423972015221353928273601708537374824157837233188522522675153745708073064140039433385982725793821203801831430304467711529771423771057095043185924109765044654638072181073466027067907243933449774050303898377329420706364171392753710797245112560435284596549445359958952032213783026585836029224046742219614413016149433009656728064504853755299131983957235868855029855410236140617125558348376161978033753765543520607849948319675935135277285779456282570603429944301748611148561311464362877610467055065155098381355890914283984340955482995019577998395661399780207529318516367323152446968722370981046419557303521138521282161503123307929434173963026537901018936430140505840857250658261777703267596232109409026341583897572038511281000052729202458455990086249924352095392555425302443709809927987114254338879758101859516395679720393555345226105823808475099632608431988219929079894153987247894717379694735723093498476508389650079850546507512065693024881141911720695249429027665277783655611659205160261099032527456525169917855459036858058631101801603050531276162096877588578527733985789555693047770760465346096707946336373324627576826681698230152822412241680829966186508072205325166526696189131414583112825505536581810502091237241315323940741898981548390745918544256694791703321948282983367006437722239879435268144120425252263433733904437068670528831654141117203161796332729795712715887534217952839147111946210672285742663193310021225476242276136595807909186808491507983679732778133236258013572636344127864412740073459753211034700450739405194804622945377657712051358749540598404267786401925266021776493426603917696712120995619703636877451225137866233391556870972663389028629492539109777435629692488554510015602155485436308974677738126299635500181268305070162557642637451499943150337466754377991151486604235452890050116073718581350998514622094406417448770112794593271000236592276309955688573160072929867147929230925562101231806580589736298988772435985701926831922089174436872848960174230531119048853405464860508309958302477339982233691186794791625710314348503282171247154188177592677846472505771640380493117025702881702428097292865944514173231001764169088498109793412055676954154138053860543024783134790879440983304448346883076885030546850901835400076352204969446012073464348605049473502050576773739272198344196489201215799968803919939088255699219056343520539087980027688653776300808670008431459751929410655069221451410507854588771248486825229612252022400124407948651621920545132944317319976453363718837560546491722062185661004863022061599510015454717434835952068439733524517895679043884017896853899115751321122621080447963892823449522231374301422345124823475058171847602083422407866138126774604976727742051836665513899996823356398532177991548830562289429488218536168703620740146953345588221819610661446156664680401611196719513496152710017611795968228213220683517713528395521378219251675691794935332728514114114971109678706132401149998676923190682670845924458685620923008601999273640885523207180560702058649826092356651715683993876276288057204687128282362038820705239702749813111321635041647492558668105867959444381286870805758993336593625268059596228324064653872264378698338251066523719650643319033032250248295042638887901093166548964428897944572387178449062758481829360590822976063227707626950393865357816216715405098976341796742655159507336620860718773812512724089676282587239994920901830857844512907998125345318339699550243257297880476049158821070540731771224877766300069583358287818993793579909784906425527559175355969011743589102290902300182624217922124226416472846420063694163461484516481547022339328902239600637971846637849190536644224715115567740083284040093593793325404857149458409813917037279142805613369418061306653278279790531645819386293962242128036569983139816404797670762208112577016094875794666292030201721976583708812516308892711086814267654376269910346054600905198571279181060730552262817339816067177404183579174133732652841569574990523476728889795341884421822806179152342362220210597176057014021291166520048569335863470139979547098862543663265099429155758290665811568347242792317955345621836687338103404434117411309325701063779371516760685523549878880203399819734535082135107485396275031380653718759006132081203150981091919621225597485138022492850353965800155306833426376448920112138850694488714130058347329610642403643020373295405936090574623327186272361075315417342048551396975320816942438078283520476923392403439336155540944185942182477451489424317997356239517990398402179652869801408882097841671869075268756455073357543363146967281505700107200075508365180336493414592480432998723672919106379593616837182267590640762673218008928962024104233430127935258364751016981071061037736415229810260311542701140908184242517737984013426818931217279811642802949813865914135420740894318682469593141585881688512844789712243727290304557521149622985061927729097859577383721073765150352419837594155884580790803613261892694260122120571922882265186595670050825604989839492702270310658894911644863976983249982559790479045683070884416686304148664466060715794319401069049384477344391417269709650696152711032813532781008928118473413539745969622582917981576183109606407231041091420461589494181578623912756778353783759877106374933791823012918553019491652254506585752675978498172024796976167974336382021352230614314561689271183675255851910679752068868986596592931241251117566822834587309171231453546159665968039236521884265387429024469967559469448311887201293149269875172148236810396337630395969172673214697028714238558743639758134364338466610987153280255899138115955205224974274415331783477855907511175277472252617805339598069474191523544094142145304576158483881065313061880321015518959426227193348886277414639686277631738137941561607818662222911088304944081524361395465611776267262682425585032062341581407224011085616813020671567762309056831480331384113525119927892126532908217507460712960393382042443317645829373859010321501427715570509842215290980546535612232160717639345837599792091891129885654478132877284087407636148212520187416244967687041005130247363117677701911599384095542800740363072352849431594235565245482775814733130507121983215962676864988098976901919825738412236007295599631497046757452726030762727208548752864269709955537652126610315364234200364626839562513471684439312721562806291835278796865628944741729168613109885172738602535442406819418092321198438439739248536321823716500914018906062110666223840715387056136822742572648336690256547349118117333720870281294833947897752571192548721519786685302127267189122344766977429786996433654132314831859807031404793033818766229172436148126334010244975319055680977074128751729156884111670163201122244081754681887506620288038328514471832794763494636733811186912241805521135514692179663272379531785165153443532636860749581408388470227738596423905029372738706887670778254615206063113048181521413334795941239779654683382079678350921737723768995205868664894992823074506755114390065116403222886622514756088006071739164258846813533096567928682571048473333385191237630054648866711602124599553487254233182353966089926181150766898453306657857754865806059937832834247810704712178072325323542509375562380582983765062502783922718288070988821902250083656848444482154014795751040402118298762541791787901792178727684591797489667745467633721769592113754694701286204440955173421656023479603078514601162006259520053380433452116467217357786889535168752923639337522388091237996497311855252000870647159058344737851034996075621558424745148329426601072417582549049693948404120000957714684417714279131316140556301178650897533656827967760211124161210286515284604320305907847287433620600797038274142608589658938833279713003784346304308887927890956700424195748619347772097012154948241001882891233479016018321811668103314203888133957871680891967877948015423412354213553637146681010104332688772533265326349050957009571753738737105807273954971639362311796272613393389819563106847837372719868620831673641205087524231204284946353722846736929762906195750157527051736085803858899267968053066401590395078792840694821563078118508065215536691000278423284289956701555183794743162479280719710718848097314261483165453298772128718527753340158099889179897968939048169441912827558210844480703498288454546721858147744203494005462134920599685958252817690221812449903283535469590717191947055044834120846599519483270090893991668516057312189254733755546869565572371302416422277053831160003547541292358453884675083584245399943388019697583026017906988828921562302502283416096112771091141241255935977724479018302158957242947962708153980966858471389628736386114767655848376392904425056364625695426561279639520004423720607856817693927480058761521943305602688468969103559773524003165388123460537033136349969906292268298157631503258701761666409694640099826994463353246528041586779108241339014310213118367794332179191759009426696704053193604722556971773673061077524054738970129569887515566699993078007047492795063633492862354540210338617255301293764071648900276367330237743648659917287630354551955500066293712803338894911955126002923231947936892466917442601863753553578883910314786227430405642390811014661713248441614417031808796000074698082226742785768892708278506833178104224891659882169076903974985722038607800838274080149104168830368211774766256753209920590130145635024724077148121129215049071658816471306690087091574294000736787725697296918087154660806672966916111452593531817388859654115441204569369745378423850175273385706466187516257824127049489506281696416344453587912046579542451992920970927529661937097283367398196952314044259732304278616224813585200132020975805156495540913772146661963934440338088602963534448843156995971469247613477916423232791958132144886952567016239976378702737888345750776881979827381718823918850175778418750866939338386389710031986290615154660815514340535808660304450768493813696440157685407715710856702547000241007027626604324617425232574960259256360035964755013941413119544675386347513394903726713138462356810653905145829279618506656082727686973164857859987481361694374281423626481796114483700187906400058653443273734536276016686252256213780991878677491264618561706659184307056899296786038038242917876763993787626611699196804317804684832744203636186183904472509865547931444180541637460049370497694588201725876840529946533147397041417978863022717164962030616011798220160097173132059015420273518938838642823549930164114836843873986167608897659175769508830732425468198822993092274081476656723331366415220381362600795324936342997179149352989061269970928988710782916886286874242879492481077856897687231197333820510642963141681085176390764154950138355475779814155039936806202269376449419978521888497057957196098709504807453616982244245232996059878518011426942079040287238559239764640097516412841049671465899940424036594504681556783702189684803121592156989167644688821331121348269257100308874227905780286148351777363403154454660548974752725205560197356866844117416640060436057032071653073553665447028506912814408097359938671932628793610784309356162210184766346909882583539072926974105968513001972443741670126132948395962861819005701846443547515293092082104914535873952596545447303827799959301194951096039083065607091958940432148072372396368863688920885453033179816041142503815152403715748436496660911241514790288075225102955030954053551016416239460529432968018923779290804163725130576159377699403774038071831756406601812216957879076907507030583586392096172970698827557191784014671157174534544490422150795133977075762733631754433261293555157644761186888636345633725208573440430105378331036034920702961914538840255098405064132784929166677428176867235766794466649810006599172421699633783358767094328935369004027275491628792950950354022286511523126509111699700982532387398137715971720592197588720072751115452788141623876520128374687921404933411055029910021248947965009846050809435575600061926538430969037721407967525170293975623247543461504938130198841095607574988190496064617451276586399872263656173728201666903552300065533406466268044824997468813607722782750510933162580918627994796521757313177296469285417617332284610361352009537474591376459444355819082318519190994573620423364183558861616674353838744097725968627366286682490800152849086837906654553172525761816836885267555151622996276210120915261524954809044361332634938456018732669894494277233843815365403488197889788455398038519742516308333107677155244479155107358729128335627245942684521773371619141283256436789325393299896758899696078975318375770855279008407812597323139027702491820678123809936527803076017600627646159759181607999402165210471878136546558345775513999788205743907277489154529351642190054792199843757040318404474692148661722562636030530970505355827838786166105277729011910329431295133995863806139899574148150515437626762513369800041730831135848272072937245006333928782242679994799551763440570302087580513543526200214797737398040321297366300534324921932102286276740894337027615495861184363419193460624255286729228628716393959447625461160213198535170593482332585281147532480444701850195807580092834084619731129411527644362434807363623355903877288937490924560980538800544534531969783292029618177776900212093860742706700053183621216570945473233207931155120157040486634567205204657548506270596583064199354187430827364187836575346349550751918224999162476462789479545251417747396576981400847894551222593756234190748904498071052160672689342474288767810376713281890691162604423007396792049673925785811086608296534590232258506446605247382679166799505305066073511847290802041945685850650174547369978793726127351379425267747287899200277343897860106977364537680799825480535198772316553718576641604195851917743412769806739437000001051297868101840663651179101407055479944658731687959785040871540383870121931511182464199999824017625268617803414045021821604723520494243385497834511489460216140154247406364252296444903929306208083712303338539990375596924112778769716385518944506917450359549984147893977898957574618125272404086741612497726880495086031497029148872498548781339012818386500169574738291878176213835012331184256659791254867425439327078001908846485176545469931762318239052234500271823478623895026280468939426283772194953398639112783154061140199373001777440949446639436173625186828590807623424419661062097993272704686659383146396864852434831005738460649785072116581900131645988806202950359110994252331879509702849827757575821186417015526523330583673084672860598760104656126788601818104902094251709628650289274948987174012874396178268048599262073059645843089905149523630178536816871813018819521008005292538466082136372066213761375648833517908549963366017315458690310026361801283327006069000898241113676528382911392035178319000841485102365972143533936519748115363704033823487536515116640254950857540100904882529067711571617626499575073882778143578591998453472302954444060750405630108760080739397134108327741986402353561599764014596220332183334432050465329876581834121305228734825627565663041357699283933841180224540956669491913660673782591330798332876736415309820691952252436417355148735091926165390387831500504116207728441766948614637977176326332844216884132169233007906743145307683966141713929692620382189423643437313479088993778476766101415073009968033040489554873913028074430241209464725638646307061401931169600191611795833827039656540002831634166093435777522831938641469284300025394983452467981619504649197304528638316426062580742508933713665536367259253734396181694822540884793944349197088539914252697287853462708340299514230789600519707263856347732254396991159257750023146293383389681520652282193377306140911319073110319035814810433409491956674314088561135759220470094718155352368342516633064932715909719399336274824967676212635969376410532464772816590183176759631660973789868615519576180462192170080843902902052137346246124948251055074278896795177367190648576225810129722800776812616569885813830622937994143579844957966773768398312763886889603071438191974014162930445811605420931422330551126830445420372108544588604459871424345523283912907018379690602923332266396906351132582049074312771767791424125216392491862379465631463434321596330125082735467598330881069396782262444620433040439743535500884524146592723536672738617370833448365412749248777846549581993464401922818082753207087158430034202600248288192217794158921900078831555587349149883695209514084358380012709763994386029546117668480388758178128026429221553463212420065618356232116928485847847786574616903688992457875451664460888961354673178807169016058519945681843501532066649789653549550478114978137187295634787903031744462553375073804562650800243370983539234337139434730966874197550132449520271132399730481016708691659391925028767284384961000890948181200147685799433220196709010141398398817372719390736800109666873033622872291317513198621976711841973511421791378355845125298348133395676519416586816372841479489593600473950299115632067827938385847361011008633695325322911357871904671318270563781897580596050104435685863905234391054631267874784164698739711889180013521592317042409205244306639063017579465496258757935224707247417010314031193410053549474362073263487903189471287542838537081878578823963669392528759334062947827894837516007261494724627075773386605369950409293588394245932659316730333294807063666149915772079914698994219582012737104618694669808185646611646763288382501460869636796711506938248114754845468688183386641091366391775719625307423201777624091591422205759883361356838648375316597067863136473778084569862798005392640232024956095955190750578537661951994624549135762376426224584402909415371009173781817134620307005703739451059371551392903493295216718674563047304789143278033271147396556821940350033308391739857179828820408830055001763537111295708714078769844926042220245661739161987259988039645988251596137324645817973656268550645696636984886012425605351999613471501383882670871532991995514406456721754112669895082827051529301216420716491294084366186976079866361279318219177607461217517906204905770609608226334188318062757090189732120134174565651058740209961923113816350300806707108146351812558514193790394466629446812028543895494199418668330751233741546515809699681421018266180205345308755811429505013569008118166598872087322952701416660069759279632414732462537420608643060248170774124886212088056491481967154307699564484691068294969403328347770526570105601054585670049449950645998986038570192138939143867567839268397538339560886844190876267797768674236200055827542318775610543062143541720466108007192813384583611537827705420968473927387875432764160393461261010032644246192660229426226367117423030873385855634845084442104743409702382374721260004209873097174573461765865154981428255495858136963845136557623464508495871209911874878769946716779197193901108821912873883425186955819924972505644502987338282818047561696100536266119407243899992549051936073701571149086917908910094668519102907990544987153972125240368513820268266549346314846349753637739011360266393992486639313073753884961869549184518368410211133393308748605361611697142984501961618159385750103522170259297060685457294678817964216383644555042738024175161455364223887266320158905484212294621232388757963172939720973093414543691075463112407698056276374851158612853175264438615115078767142041924105074363902944545298647678794620897893390123940274469034751959529679770086597649209061196393496096402893666333658294891916783999041769396242537634562945600973392145503439956669953147224768190131490101708140849335378015183406503570952318593528081486153528047906775400226016899845537498859354833595398776362544044920305036393290374549079846831183479137889746948043103743035450220256287817721117518805536331675801604887729838572713071021828082308713879869683837479935753279345013285611980762066502971626217375589973893589527590528178869196859048394899641143699669213300252977186093261416158268136082787701038925147196513205406753212356062292510975170383959787984132577802018686885711557767716417484711536433101780551996909027438216200920316396053247769513772092290906295423920008273576832598388318619385796223960185190859248206765156506838632458345123469548714595450436334063913457261281336135510984890461503091572041555436212328129813705779754522906386371252424335998157983299060366402242131079403919213021499540634416311414335593100258890939521142886740143641570130576113396234882898829345899068075673152882362747008099327555559254016764328968313741262591659156228007163295230353583521378942956331761576586216421769432841188484812127859790722099207427134554513276518625950470839288204260558654794661818101592159880123229667071308668304471383430742020110391316198595715186060737611825854956349403225594879578082912842863204758638360840213387167302512575156246767485007506331273111292941646285903998802469530561902976078599773160822823418390676411275019809473391400404279965295362923161152744433046502935398225311000153690536330830873306747716628325104008202212328359051502817977708956095285539543691337282053551075213704371264234146327011055621362936838829763181660470706374903055943557845514265674102597698938293534553994210584543218392156833122667621280061589433377822868241848887642073180991161429987732764159771666337839161433887924892296711224300866064342806375590313648652158380819384385440925415274748508580854670440078664708940836464514830661267003578341415795636032481954617743549723233012435728563785490733401582691375852927063985577399673360833607847493676641289660782124489978482697516467113805895458567364177993961075687273085437747085456029136662225848434465249769198363355778633711308514177916799790309994890261656936721312755655310549490381624439907469570648128567527849275213979353050924695670995975532265995444469853762596656966320006048458856410057960740015153361689588610842394433506002430967668095752849903721702581769020107823392680219261901480736266122403517036622927582881827015750321165264699105922267003627582084965863739765732951269826454356283555627026069925016432661876737338205358186110059959891334874375943411802269413133103986216633700439087487388627094292095501337128563837159351887635844943683304867866827849526324333651867767818901767381786035886325606230228561392106247939975906552681560131203759787101695748878231813094798978221617460945738951085167559990099919466014545270283660193638271504733882683165167928923738441174555466515935780812203515930378747504271603042563206541927729481065002766023632116465412783196629606148191889274750619586408435755714807981279424565617448088137117025849777826224838660951541014874326809835528207583876580156642201708824595557689484062195607565183584824921859691474980139642445289770549606594384204332582654752636313069969579189064538572444633927186050449081645903316993489531207174873536313343130035416633443474318596544360474392004428346845057397100026794199831347806422524427617326397437482092758816001606377322611802475074447937545272501255343355802249054655176945233249771116019222580214111294519156705412716736829242381183194878169431768408499325576185711525596132468790038700311065379465005584203950938658619130074162854782731903780755292467352983316373477615205955959815674879574326706369391620438597629563428462338924476072965101999196035675769542373446649920247899173165330791392060202291704777511659299243659512987737396170248257380188387368102965692234188134329124788654138097441571015205979226788317890277628299382102621891657165765221205097797330909620512761916062810981073806469154125751074256608683714098794488226990465874323600950232982814920825880995961667780740497421712507800358459345442652390564181962485568490959893396143346738530725949115348016685575629588517298528028659614035512027481400856002724369254362569547693257353267033307157860875625303193303272455595386171265271727715588545034139841665460224557146603326510668111142919084002315227338420256242964596744708745842444171423289314679850863585606888425966347253165446401649566469167053034561905357079329815913130318553417360225456530865971748871929503021145590721862473542914666823650003571612365134026320816909046786543826944037784495197969934347696224156346613611080140298016645306157394494557828939687797330934802954871557643170397991376802025477204225516992242326475238578908447362321265745636364580775534637671531407193436048995704379764261468888865936371302199851940509965653356998400238684914609469330745522982196011630771927417992712759838828888629860460947918985455731236527404908914554110795240532842705699418087905156619403215934595255950395731281090931406175436453686067432654549954263978509302854415263243418158536047761477199537889384675058606920205802537340023021129129626907748067328245467597928522792963643374655001301707504695549228505053035719141001527922156478119876806765641767727540109355434122463600493962609559917921165509715707596592075138182682095288536961799653705087157128783992543637553006357713658652887220559482890653458416879213622206241098384547964574807215108781055084910403010274524478806776713089278033414698924557553882289280813079568647816833013703232846010642601560012485547330791773097720644256741161660423647374358410817166185161414353481530973987663254866947779541124684954775790064649766702949716380897185500769674123320419188095674612685075117454967423560017208983523206523365140211886283242151929414377763988465426762070088538314732313794145852239649433680670532516276716185038206647525510909023271371106031562714524590869918316086160965683518206495712952444178224648948093734144112978817627923358007958985776866406300923843923215333722364700881683026312046447711140899958358503911997360683052581161844034026419875027415001020001747438729534320150462724348584642990475687010276570708753544479365663133230002698422240113311164642942492740449177222516150579942872146978081243667188176752617151488637646194208398221959061502318072461820681228934750827695664431163064953432459588368785930482907300254314951679797600435307828901956709100626266682681614714853219875427769138983233777705524137294512579366355349495202345563468734985177726061566525243710203081063039064440553222246396056150293356335845146267187914453947567265312591725390394237655675355897017267230514121786618732110684064688053426167365355121609572220965496830422227092607635072332636887909025215513140185408134866581659095964630270092071718901220533869463059460111171438189326279386350321208407403059434955699639096822983349651883194853319127773156980133343349136263454510424229264119483283206086793996999979799558225380955265504890210418947624834692611510265255962460794593727787829497372675894063146227781194029907116422081281049695104791320116657460524268989340234513176622697956564796545005193669431513770576968179555362577962012180893314599311501699931345952050251107071370837577416710244550889185447619105422716955742972166983559703415575470127431963860215907928060444359080814781417033440113498167147373239562961490212828714385671372678501011751309790149988696224966821558420126882182075055550132089569421405806678131407786958447901322951236702768608299065561144814107830698462990696828171212655505363602084495216073461170864839265578296438483206744844453596247702998884931845178721067953883087588379749257465271744313632987663617224043756006133281920591844781309416883049358579796039440443752171909591395173232634752686364690805285011903616670417201492474928720622167401452616965150046093536343461052984899738848868251347788784694807931509996108947444127704542282746052443646554581555972540573107027187845866277659530216752807840956875884960906320675277887674232855615821240287744144913566917764924349451602703021335045863905189717509486588820592505465741427206591432491062066091123968572669842644156228451305178779092140254689440430703713743944812724794899129849550184302110138953522507414398125546793775001470091784940293965924821152936092124523633522808445780573142052869530290011339021999189687771181362837671947567200555331295720795254516320495864011286595751773638288633028508109250853527389696803560215019940495268506632834936614563264546132542132008868123096706449690583296914248446344809441732849380168318023366418378622376447924398828576229880339803939758817643349964797487728080605490095347380715064728434423047544232244189774587451274452150620904886907825295783911561902969340037511139559968274560986411803886562203200341717327246973259704012814065250976558866771265458249475681779469038704395014026303804775617137939175970609769130058052734643124601826796247978413142837996048394015149275052151177668468463720482617472061172064429117959465203744451112691540032324301239837776650119148690253712229821581661743148849160857719791221877437587344103240059876192077081048204290483832661110962509542369365273576924873648488545132439834387278887879521687089376958700146943762497812153661876609425488455172919505002742397978847147918158700526259112875717282608417926150064113417557601223629188700927766555037809920205558716477136740905273005399501177534118350745244674993476542809779443293833651903552358431869298517821734644910035053258448779745128809028946144352880441679152580888399167114240821439361829482623544645046607085117810904525808782663078771138822155833065092116250293382307821714849701520770276980548779539628967869510262664956127640377722822041037183139777213125613967241885228449909315864379803684622046017008298155077658369221396736965382587946305575456003876506802863183410605283296766641879718197880475953677435821536262470722899162945244324654736751342790011222820197480775656516386426549465856273703106403440746713576567944554933229085922272483870194695492377899626970999250499678048063020422918412839112443945029538394363175532934265185168182167485740584690038205890204620635745309743088840566985139319225264575467323892108496756381051310958830437459422384746581144155743592113024384373253533103911389114526727769499892855868000346606528195356954863665794458102183062331850970466357166304359379471507124962734178390996324623179526441721180440221136455660534017909610557292600178105325880545918235123910176076908449936124767399525768888277972834351987648805549397146717969481596469515610959245701610110263146579542374296755737609181676932054813298807443540114952032682460585849820004927929395228593519912122173674884605444044190878873097233283930528160951134239101216130361499192752456175029379884370763128363198951382365424159391090065823370384883168208003860518031007006087772581078430966998806634868218200994204071145717881547664998977582910604810441945820034430233054953179112231891420549760801287687876382837059968268321756900756511084133581514916460967576716246244389211108143992308441759639775754991709434936761669619949745732439145820719014011250846603161855365694082885013061091224870042914054291255010730222990772693920873584312871886976712111326702380130245154570974496166198226609523485544357108909963277831317119802854040281060521212490829291663962288414594831508566489112514877799496990734107337333209055884044727722605778113639302803832993776542601673152933931404667859705291730212132899411962607936843938889526070590498925889401853358068754143210925467805632731259547886015439000686535200523988417493011553152205394218536580298016881713868432068409009366514502629760330575988398032456979814738863493334592312739391027054253643674861112239558507993460641000585547698733206893076036563099335302112777984663711033549975290446077248831262122729295227095624893464876362492903480181561785055189600937726304868007820248021026557496477148744158597837322742445970705882082818860165019283493624236083196619118151851812908106580761646981699090781951351323737197067335310996677052095072506361617987757043353693951044954156177108849928805968479858090989378746439054047181400703402134264003725450759438240959108650303038518599480194204448473334221424654022580525491173499410394770496566607977090230781815420384849975874988747587544310469042104925591795703360628784323543675063182067169696610766958243878874896228040219592220961359320500045746479900235572870983722497215921470462711714542459735536066332704753219501963065556925580743709076768328495833727331233844294288973579950939451585800959547358943511818478036955597281858556642433018057682832992227428054314567288359214720386702705993528856857607847420579861761461951983535215091264687715080725556688985061361074143548554858156934106308521011663378971337959909411145255305105190636346125083362478552905184794127727923155612947740182875012838619773096245348082975394587765005490172500796288091213917268342726852791561351285799453835351847009271210271242621641898917233727679925873437272727763974577964537017265026529242586790737764212052448826231885367040819646705607249171410233751796303219472192636587811920378626326526355636920495476677189103270901347828633246899373207752057435379858263345850819682975446450793037567434120002555615922943635410085315463935640692016124785702031186536612721706613433131023152883875990868407499759487232246067965440911294446670959545804044265733768799086126903419591921426743629862268643834390440974895329528512855365370983971005753809631110474098095823445258194387068820931847789254211246134303918767488625420432556721870270219279312690494071504067002136622002117107206522737330106602759586671198517917467031295330777796541895072409260836969002803259862551710876706512235818456275265335000555652748710190691015931635256719297553841019165866280012254552644863917105424474206269394112882132200438086521399485440353411815067521981958108046138775314323285584751908429311542003604822757923559505889924558826834285546290566746339811297331336540822811922045448502661193606652154185008499061987301915601912096346306576882617998532189036821120860957859680552839371314264834058913382979197575888348717767631523279311239311787127972055262603034166826579741324034695494137155489393295231320001475008318575610603156773156569581790550344639936960314290756523603318343250422092285788728923658030293918011247906469032140690159445776358891765400208625761255066549033628701301346849813130700458744237451907374167095442275595987680870369915490104661666428088045019783834397034402067995218286621993859799832460868371242403623091427924092975896217665985112486957572093629088788619333296496285414203522489530354744872582046069158194912354139878316923097676434776124496440989470921595787743661153690474032288431335358128417048469779747555168231014346110498182114503019538741980238120880472529773289304245632154895368810593698317475443416026859120909863970842943957060552164184935905021337401813664986939052571754464233301226218320244779139090705976450230774959237402469152349444647127538873599283228046313006778146202758703257384176915222410085436585234907904073505420514239978862798812880717213305020000176282094313305655904784027921426847854381989993664995962227273964013558689051753865973853356150674986636004160387025535249670339705226306488068733347687307839158206138477296774471371585411674501080521305329716806495722194423633477722336588003760206640952261047199046568901466038939077355377069990736557251346984879590456378114829799706134100621584469629899369625945476702542263977147834132282379286048180798484637405385772626927527947881992077667672000880375816066681942576660621024786778248749824093933388310313663053405688759330782578129006294379945987033980513754853699268214234115149249085614803118220321737587037829019347899909764946552038160469515034967065914183330013803444732530269802355922124091397181305366570107135823092056758915936105965488359926953261777699172789856549784566437101386328014344195941387384957275864084585357409238486653768733431072556725322976555298130618207524105720786403167245261857154254386880782194376699039211109375952635244376452811907275618552669777308837651170187423668633337760497944934771793579738842688890287027829856168917138592246808581067850352846749295525187190225733726109902214734992814465509231624616226372651149840668092045235969810185790356054103518203603714719293237723185980595272236501591728681268222445575295240278883285323820054083937459161435143627498499260671225949217859301418387422658001834321179871203449641917376553277048130512714311784694920278066200730589141403797537843170667706270605570315336912179416607553089377608309053143861943177251163464527978226085419031611982872391490888680820974416278291033035756740527195238975275055330808594237769816343463185466473377755101775062828006638159756369354153585561753715393942715823605177491476454311419989336331016763946325019845634040854313583538952165592269240517690931306839959606684766989815688807394501298643632599709102351569184132787753370623113737536661637133717379390549962619065967192825805322976101053041541591820321703529042475177200116148672141105208361503210830270463095448787100413062731227894630256599044435813289577680235011253720706593364306937256975842006546704409758567056838904818396115481231610140769920175757394198598281645680718051571590153790152793468290047564466529418090479425172362338954230424552212033671027508566211183961186963507177049489910843578647186562868849071897568020185337305557559962976516707192641711083438119062035659775230772261527498310405051482374539247113391740085914488237392053310248404718373618589334708328873920936433047830345978883993192175452189037172750107531174358527350847507426178127857397903733504931744166408192298569347454166260605580951124475228968758779607799687494032910955492617886495863820234158267624269657520404936801635870736905554900787583042117601698802700470937467087165255779887634697606346866632139625254902001889799545434664048328058455810801332362734994410807455776393234944901118618620254203686524948448012244790665712169304904124182775162335494483542029807644290946428778638263340004341686350858839504530207386906965362918070193958463008084502936227937635388891507278409806180052920152344634651551353579658793722616879589110304051117864523515264358170190778631221010350737179650066396979291881464870865705943354443882771574296415984021946545832794209444558615006520843334948173228084757713571711757692083533860351019540658319498833206348335023250054916800772797142033836708046601872725931527557162326740095741643878093552081111202155491918232046843427718464962963662143433327765591743446729658182411149336073828790928279372489016786465522924547675707094349199567960451149111134260837162445122131666780103565181260084003224998498125349470228789514346827014412764990533867760967651207665625381334494686278049042978476495442275745986784497983246492652810699893602173418951558002847678903573812972201013077244387592851906713675987456851685318674886747532191309954333790276674027658461716566004220141247731135144017458354324553290130814895720742732892947103929142363533704630360457779273053902919003323306972104374497001174099059795882257830150571942458695326527720785493680467222071134555435471806931033095444928389966804022495576018059640142935397710959724157396687454567836934668763690737387761952962579615756130937277890020309422290673335646468065700241596692713219790502224108622150542846229527618446204505502047883512608942324904271670911931692774957107490699876451137562522437851207712603907743552435926962487515213932256170190815053422938331881127691419922776674341999278903712770000750863015293451655666382137956972344643512212512532958407117166840623552852325065314956097970101186445753805297080912560010269298636271404816027817648292014696560288561546631437289133500285537397627927768822244172566018924819052044581499544036661662435347502812062822547870039380718240559881978090762301337019868502861362455430374631725418406616919355915624877148178334736745791507562711868856096471867179605209715322657981449677035346739359508924533048500904079101852847376998635473605616453390902207071365204587231050988126970047838353885119036666635983772070382504455268266422521435524682596626297528574004060979410505682902815043152395747333900343353850412170659644052734240865046861227127511365968899483544245806418682858099469664643960082862301446771914212562051437042153535402409570174110444743817182643781545512750892679520888623991882059817634159830879252242090098630048653128473651101581665106878407999612325779985139755175607479525201595111154450351127762120589123785561107672163645212328302617510122762310833176456021018712762916556434033733655676459809668401505091427482331728470406160526363256655666559501149225041850684193669374451535155090436194132582253282079104005114562107990997630597931778314968130943467906101579908291099375933113993870092107139197780904193470345719907568662640772694854672353578751268387724354502567549880489612750559180411678422174795237808512267363690113744717576310038919316354978157682766053735872625983432464991009347591204879613628706111259239842626146667594303151278045280869614667758444944567198944487557140899236247592821766550197861868315532677828690405231031989588022759425947653534504060430574643168919524639425618335681951307541163339447152203458201770370518225721954389991631760781538100203698109485540258588031713281242425578619680300393327743909969839057968417007428648605544976091137225775083919540342363846390314190968391351855762267084105698106612702023599257182140067102488175851564511423109858475812082422327150359449206858398359927206283182301156123741224237921952550363362906011578091981781676872021818168103030581274984846494131616548956544598958782653696526157527094911106704722714024435001453646823877034387325586886341883593393719821442803249012649684975847181403388396468417513831369901256236127158364191571514636897244988389198739292971846542630339343132129829208611693094386470860567948796438948384071563558821482718951865803632407700048718011017595446270678086187739408270623024287414242980880693547851325962493183950450138791778227135036021415738410762473119857050601014051803188300147730093900933110270859739386462188246798786542209238382013801687877985342454478749957154924945115212819859913604987781481152113288035089495649119061861831189436313001729244168201185030397842943940955327265743979312485762224149528653928897565560834177749353275078432445257927790539841937591517665949949390852534266300721457368548575385770289780141947828127312823753600891539103788926141908663421011898902496525259568908547061456135183907067929100041410237115681681734997585935877606165021799842185984649962267613104386473731770349132700442397103087169503219944335347386594025411480030370744389958541216112770454169660110858436130547457547832988053049901017024978404604586653784362693624026661769951378269424517156396726417102501394995256026657015970836038333367299618519143516649374006651504165920674637699925209353794762900431282578623363858222407956116024002168739863209651343621683408678065611050888445313953739218782133305759021061656252853160624279117205653806911873866363403474322657783306599313354617889953883626898731156368084380158703640872632027546449528053988600883340894166432531878568232172561769881120294612164209665048083249917878451030552107175382076206105195790732379879578792573748459659421549168536307833898075013543382165250047894892687815178165813792465792717782813917977209069423586632135976395968238865092896470363514605731978618472805382470705148358275050199160988602118519492660216855606320240654726302662993562543884749121706363348810777521138692683879781891241070782460905876460665168821499270986786495700182950844420790423077846008656037806967056992198428742438622551882668450521237704933482733264617838093159523038323473486441357996736530435576725463829445978120692135905599729463189239007204333457796530752456322285209009808879735348633054622955144394058611733511996811948603119638993915538826253202137961295167917125016524029500918117353916906931912994457788395026865625001696207702586486613992004566646777761637780117575565318325672539888914346803185462134234205831387397186495641872734622591840930139899157732844105052424686445341711290917511627272835476923227121181251706994680003626457648301864448874589263689267072302717909767366623135370469611873158551741641552352393646835881204314484235280579485798141382373489695479897404387045067526208543688607215786950120631980901207998918055468640743468615561814022648495409044274364659844779565529924355377673321815573006578346553417519307782798612622510546141814736107555519946808244680050314004929632978121282119016460886163308827730591475025161014746902834098691167581777864043578072538398771602310075330563564662328076398774664702897206341272025712397109359585016215593700182635511887129698038871678451722879991836617097300078244845685123694369337977258064948226941129777306070560925305028525425941726278913180201507572592870277917669884698920837451021646835047265157765296421470611460173562154507772384691094640760150088063803168045902842799703043588262782685800157132524373226563850051671512724960253476179572559183019576390539391294392498462508413896340598654891068102038356880698528414781616585217284591463906025506953129783015035230695943286955811647141767189789805640364723662399590136205038405583082039747951498020936303708014421740767159524081760682336355584405876027757253540728963354633196662680357566545709040374874019427483120731916314919263699112701777565043169021891143259294499911453805574567963834692963004126326534007545760834810995026400270764926787368296462312941970540162255562495602962304983426141846372252824103569239663470194179975260918153190931030103706200377986356381392284503125943057448559964939281928153588425185756166750061518531532716558058854567002725058878344739252200065700629629060753130357174680459627262220853305161398688119591712152304890169947237625912344096011030467887069323472050712988853650466023210566002530613182570657635442276113450662979567737833919078592944089667603177891124770509685739039146165541862987494685249260007397679374146822714098387066816954729377955897958342620632665904440469857602955814113038802246378070306596298896887165372692627392292846750722047307977778465879300693433263654003320809348768064156847487590127773133194820325668071552760880609483421802664375697354362601893328047645617195934673052841846578112235578443068137103974996203900160852020695511489237753379296243394304674624533640815020565553204757536577640584810786003214968085350141681350046593861714516153446588008761964869366461046358379684151726699901725150167680488785232794235749738618637342728259182279037233035084038899649354677987132469122643264009749407853024406197846029287125179603342420254038580563721764035117328815904988718309087177571999101055453216867588350057325319080293131388592220751801073598991689403373910100076612871546835650153748876397990997798310573106118628973681699584288809412512676137032019350786051454957836395671005515315945451060959976295171367568410760353769509470743820874253762745120594592058463433034879085474898985202203206995597198914333104248899880156018385802483321570773202304237238341984853683253185748874706800816908888504512980849484535452444291049852197445285682642575069546530474386367814753860646044053910765538236309714558758783544021693827929698505223822870244456666068189667109934811755105598464879000475198795049377778831179248523124926089661331130660924730627720848297583628225058296705905821948081271183117239390603029626267913771562753758870160010580774346068580867861755790981675742737061763788419803119610176294325482603148278864979064412524089357041027141484087864626096096901605416467039576015917640543904207095931451986347953725495374629972779212599818016800406386726971715045476870682779929531346722486347848141726581356357273045256277892230410275931211735353297997096078998562227686631710258083242622277659204528901406227482869745464193694585019303944541759880789852198170399636127490035027344030647648559555520599720261686865987978844871884563474313620632800147247395320857771523237432841241877767376130379485220001246521262204292249923486628729970997927701203116007082815334269778383823201695429417149392617085210233869231493575392030581900346048885699406681519429544820424228175626138685565454361712558133781323563257664301469719710972720908268039951490679935864843814525263189207842894380672793772838906461859117061451800097751067202803775249016114029832579529842638615923359437822651633101443994582414527536696026407853915382304266664062516812534814587635490414031047975688505719756031840624574603737449869757038083600225252932697374989986631398724668642074177723852061439873193242851597604776894604020233771489113971762605347600184725747674790180399337936692073201608216271046606013651123991025598266802086652930734122759815859404421686741142917584008374598410426984894157581401929369750302533606430537319356813608383790562019555567660457832498542111962118396471363975986898132140738397496250235754946586111257283133646047862978693745892685801357869634108734635369031226736296063682835038908436174004153928486251489265092990263673996779031711319452356451373640717803935320165863930760434153353362191236606457302381524634915350314134432959237775374406398856742491814418714640552429653286623769460957626127703954446939475910401917338771256359958759286477871969958607632445488075549606229847076897011839721218595676899906503691027002684596630733752373277469662189531495338553811781939024814269236000450558900526894535511100404213647217520351232957400539508898151763802971579596522221498156884428176647687862749545444088000790270596751995278781470883053637726902335611848180283714351737058237921197944374962267563659231488639565302348779799195572992362834508141114830343236294973573247594003615442276942899415958598510619265955837078468225910894609136374669036060592778315509708307304223071003146119984736866823118183026913910166511295765548837946926082157264086025807877332597162442668786633735979227489054693750038310236582850623675305574826281563840746777518567687808798699620825070578290936644157291285235312606747490453784919650418996422869276962090347879967843095482128861520121308418172674394825017563239130248315080952659034298267107906511109375736605647691872296426525316881261273396252422747755903626377484188747751198441613378545957875955240366471939616440994790603161552102712045160391254395005371820158858771559950044672032239993752979315846000719468037460073357120126525892158656265951118189793522977614979239501360330584569437840930740242215874035316168611129272335240610462518338288620030053403443894437987557106020596911677212125514518977620004612116590699636149339164469273933665068515177257551314034886283646528043412925526008996577725487448137916043373035204122032840077205901751476265478864307648937371504609302149713530996109843312686304091119634086512166486013631670079950494398552789095206190458115956199188766611966146067550639477128798081644531106513364218657202564289835027121156615498174807755857018669142886260871020988947220739615552441355325027249682935662417564461876730914318163581435729651207008617978835033860521193397644694030151033881029019696041412406957351586166609500660293757664138920406673850374711079867913428531676357544206390069535450860930371718314127617665390138186583689860335612145347713346553126516721011072304511146397913696372005827072334984086114698773768405103498304702177441458628432179017357990534215528810124310949133028306766514732476191615711173827065154734221458818246391521795637697910209936358767145167290672752412692927862959702355343378461867249579584369845081721863502838303216243101503071040893163563150381842991075658759787059509131175434405327099248461766728909620380332794482745599681887972799608018726721053578278509932187330065744126792028233007974418315043100845345996261942587669409497439248400726461407579864245794937109592367443591690268169332299304072629237173391858752937580255702495409569103429755473985998706487712849732174202304440227282284160547086035872122293115261001158745693578108837572712387978106231406688819995659641459819109321853348383797960221981165420440834318511661044955852938743454843589449706424151625180049469361167669144010939742701037201809405655464451707200465973099520512577677489585750910578465115540230589414582121441032156704279485270492974206681901382451020032150804752495654051428991904415162175975548108369606312867976054216924416509308784676204012748040095392231874548194553019916673014124443413093943219369029438171777620349027282172026088194983732672981861201395938928015673856705691490198544941594922681628336989966642778428858933870370650969897601992089197777686178611103883385810735149712291493180526763110415593199677687844082323046436758528398651162357077394687144126473785625639146794921454681511272510476780927131713995695245048126993352014207571174635981146769757564702241119200908581378208960159432185263418219409479732308907538999726676838584812930551677845596867507662743827462496594561099320515877041576798505904026627841309336493684775817348739703568455442906044403540184044232985001420059019547436127403697181995764263117983230162097993078026244265073418430757963077118470885665557992801761497569501954383415953760290128572581935072388108514994781654031837798462546934363719373912185087996544358225996383998648738781402119612565085937754706612597515940602996897821627512415697339778231048268599713974761718778568618069745212105200046142991395108455589153845469095833613979461703604977652315109731605023829007404469258402157316920709546181131749169004801551913171392436328922118853201041831060416771237741398788640272879439110389832047792060907746540477177625807116508824185789579230948895965775753862686411655565778368989462719148894972169083997007600597517615425975870504344866252286948984251889160806850708397138064715403051640981291578763728878021569691773304092184632686231257424372143200397109365878706203292606094803297556665239724610242276175352278917508803767333585741728701692299335751983946097806493595214504658980535121363074997897114300858457987035899305759617004684757731278509209971148008198517624512623004265117110134607256782927501289105177488409248365775400017976364982000472589827798926118167863398661729163438510276524613863763149150003120295709027198731572985989985703259835958204199525236449558620173957748658378853087860718238720014173876270607539006747610176960922557905332583308227835450052081391957302709202729737775255217590942106697573895462372601078603846118903293125766274376521154004778226305320122599639940713510733662349336258345812613309152379575597153781401467326605175265071954756884891557383020735571121313300050479067722547706287497715143523701988993303764460858962336874011715255742359136986025054527614559540895875772795351973479584996434776588043228517776447951589136900124333617068837561335543557944251686403497115378626271500892294043136750209892715870431047583846379224557343473180494322460488225807347410213051324411709478804054570414105014715302642338266652224131750497470164084599102780781863951377964662059318447719121748058098913986402430945793993287498465747031903190601816058947441400175372703694346278819083585553293313459464655931295940363851334411222768722316977122507478848112456275998856915493487419463021289339080586826851147645904653635449384748899294668638740994028058292412501072145916535794457897088553263384067407432399805682790855333326153975104340091436919176872531889365541337251124958941167835427709822314936830186112371809497575361381959864277019145078093318198968262101031402824501067088875548983560064148460870329048992919275747159407719882364426460805145025807663279250538074556737813043035905360536687200766610721871501721419232170403527757034661765158903088789895849724709056402094603234068185549613192279142936270743953280491700260557660677654342167274314390654732438306688077895186787752983568576406434818160656152484047947448317375159186822806561906937174778172256400958862550448202746289375460570981422526378084103933894434109783042023500545555267681900457558510840420776264330820018242241524254119662002324590497906527187526212577284750971681220793462757673166159610134245706008662055105568436406194795544233513226454434901792046868056655145449264967748030193534040614312422157671918482590322863872548887696191679019965294660267962966043902973349945734388118834638880465551873272938264677445385702171518882909493935617289836053961912297026322042447810260985249066156439959044736403891887793324138050907549893277069256228361834733442149940064727049282543629712463813859384134535500907235185301046628266944811184287311132016007613709232523778322524753710078686596410431606761066650667744895839377718492942662871641613837215849608571654945607618030877516136545311657090096838470106141486125474948339094137984137974494122372241799394876345045877827604702837358372914085059217923095192036161414573140730769539997226728009223148316828919846455284572041909353206086165403827226496007452539584971536656538647988937856508303692151373143562032650909089457288947284975284760617329057695341079780563676134398413811297507860773110089439259649051859792896668545707914138985547720047985880338692861284494778984993492963458747080253332085086376542764882064274744733280953929824131982648098649154863612685989205014350924914548681119077433891078683483916190414137711532240030741144775150227358489717186429413496639146902320983754574269716683875012538710085800747689777335443696880376136703412801153184961061864391951365710242175547754422460988780456260109130772124184916116874456577338964505679608784860545747093340641455668550990582160985690289747179304275873247925930279586783406864961982979207432193835634478343667731113192851449757431898709723294274651909040158894593894897318242728585914483958994196890576236298494272236108953048245833590560143603487393408008684288102682389642186585058556054030343276638592859365815200804951788631782806782621366152470441216762047355675566588284110538738527318179777598731487488862290982620858803095538602476632806456144136686160593584589268322286708020239923406825058358921304582232645230072997327193149547417878798444157523340009243543363312265847077405587184849552272752556501094026291421342176015709433243150013736583113268057857028421507282157645071075151988427171318717901113953220750260148845962890817541160306182428269539420497515066510645613904695823880616576103255403507353681194513404881252837941737741296146395693547475214054559305567505378954974289056295262965424658841220468820976107077009458713450343097610214655273886379668687226600032601759171433968636919145898206812547447291608401040224693730495117601595725239439402457294198108207139883962863062095994284545681444056243661938157199276494257654110022748702154923837230650511068099143231679997000965508598113449936352091914339217490344785640624788585683255928100166956308846342418896211196521186470904803550851545489363204109040448392204334616558191134186613184893182949965194345123174090883292788454359623966914266512501180596560497680618431467394011470844398203819226511040846584796109418180784519465012736993971417773292993085562428082469956259554211560939007604127668239191861847928644115609135344780252245804213763534232627983113348551807215907226607204432544797836001442475892371376685233098289586713695516016859699327335854715082169689668776059694432273875407862586261716036119015867179626168087456275425304435541536631138452155802899702419520229054739307137097236122369405511245297144320165182713026255873295473374131948314717535719402596565536991595603714958544817787340434105140920225574292135967101713096959233156266890990457411916567541354031079581445260513790998957032411072183092538503938245303675179889037875838613669386578244497710124739897125773541945495562350377302355737002054231765097095762166067662039904480265296346657699166513468413739704317648690237185612217624790532332425002976420820044191530198385482781604418834285698317816110561809538135398439040414351935988718055995873955173235925103874561063127494060473355161543622928144009845379524323225946797045794388183739336919809921256976234352099103123333309040229723323445939474057292168802280230580668903695107150245792646044524465599793095758306050220490584200585240601685841392239171388063617345724984945551423038532994734780646580173656167143942701323402685974149153247084803079493019149989796301538871946572321452182966383917695013565287878041077022284075646203519310960279333104312862933405725011985412575148370205087467744963427591532662562887904230593706885541679797201519107658709142695096012488500093199944629871392028497260242361040814301797862313170940657049604021272716786629614486399192480016107857995624175861794409937718782467205180295686739425033549454546152112102592870934479792449968958207066567950954679751853727359638027333575938848718317192791241032339315742020386878182905142539700180744051195922577942354888969593144945867723095487868751230185992879584455539842406801459557623068745148715419087253017153398889661509020744904299093052677289500575140734581306484156818566640409689482552475450289751497374214819462415096171033761663314080324134501113283160378973319702482997750901264729990054155559461831586275313133814371323711615777754096047160004644871092743969537487775726897570139962925301466240945572279055936462599180598723009295058991540085999215626751502326805915706381686997858616547783805320971875599619330850157887907472403544522929724875418196199058971856885546498649162256584536942032150254329405412265248023883795176447020105152285782476337491448156030619031375537076612413304286386232606626642936300456653628839648677219689035255333517764576615784489477170631376270898130704584939468899689533011759946422234193549087531384765697636262274144345309549860714265168853189705820459071034016286469870521347677046647374796519844084349546388347539875487513566932838442823652847516019998818860004929245111741352324814713838137067174689248982700546872950724851189857719286748418313028706686016277255179578632235642968584424041708811983948664397415401212991805980145208077537159984929580907271371865901265143064063352878906309540098289333272039584171443731038149180558549342671315828507532704660912911009490380034641150357527212381567085381726710334074366911754584020279223323569731746789394138820546433385279463796660081746662781237282896173490357754693235611858584175624077599729329643651565020369742968158044400318772099031672795197398593257778235334190837589350049434231389671910529803106696087101778288059983420273373892718797631274279541241245262523488656543061103486942061037850345043316480212614325081851418037581672874804706544139479533124775981144783858555692601562503103436700379066413785396476785634267994228418304897434268328179837672931933256769515591901154752117188347729652375588490127587160437012023033019536818761670659374789764417500459587871533710436973358089592757301973596215508848373583272771432176171752768228770254272253886728869926363169352605827664450015191786226422359890887451950290915347100715439809466903309358454118261408942036750723895591907528383071668581883463488412988410025318730959043440322811927808951754210021893126584960095804955110895765072540664833044578157945592748278350732513835843348557041153216765819874472715980699312874789851216266609236278127398781525201257687465787835098018630148099792977995473746085567675662282490685046518632721793137765918078620418124814049356484469818682520687350390306183708143604570256502743068270727239917990901256318114834825414522908475059844084626982496259467681377357389068266870613801955559303700026767860999511459849353655565819945832504714364042484410965697190776280031533282591597965717149453026885236961060286202342516806881475806538411311686717427624143539422431151242162401144903021903983137001645284232221585894686204716512728392957829235356390159005182774424033554970259159714250493722270412650740498759696653009551371887858049566289108456568646670212125436589528018057411757417869047307831494607323256838938463447641227837627549547613479836044776849445529780313986820637563756308196266114929303899888765298014165822962914503126369009488872447868647082311153418539973592667447751114565468922028689731433110775337319611305943503669514560366724830138767684903256379035312268678777656661715230645174591386727222232307228069258946804895363632150612335683101177509409420076045212925063002062277985788306316202052696584656164141175567442796290962898319935108728149270967336690580320304771155434812909964441224438561201616289963778446983058183394605650964141870924635155770242261672538235138466809178224932023244398155226917320874482535804128912970657213973800408070705105963722925452203041045242385580806491691375553703215502164777551871214415102460397216704359026019563448525118737804066022823453177279038309472283323513690796166537920367820586587869823705790078226809873737392058435339696500554111471734021110516808912437342032642927039049985667411881025051606218406922287365727307256228433586127798375202543543465138616959564189445193974654052470336398276644301282546201931312701510603908551670417114778873727765936903065905722258443871783260413773760802999501410385320071001410560097127432785116493521044425741472466242950237131049686422327691428222319841546674350969743402411061176723401796530669905261889035522505826233405666007214204019032176727510496821878679522493718824154172988055109848743675780915678286816687049426044511367913142757694216946152665949726406154756453773122161948239239973176607460059115223153812381916601953754890386324938717866747242661304569329893040642697050688947517271718206659674196636906739924100848185013889736078106539756837729016254124140797182613956393631349569276759452098336151505333642512939112539540123258369380347756586569171752506422219107472988703209696109994024092271190212993511493424284484552619616308283716191572593265177099723426465109299495143830031965053585411302496987833110759473268921763650164784543416400396567508222237718762951498406482791998154989077577347860762137320369422431059117297832417936771509835226062797803603558851073864615652335402144910948028949795509488335521869295168215685952343316367591213475214618287531492588883924506312051840178175204196675466089118815845746642137980472450221369921710220005425958879149174278609467505606055613435694214121135846067844099060696014891007841309005015732996156383430615739039209639466677026752789052706047295189505328086102264760273428903958691342949095460220344530972247457389032555095991569390050538656547470413874565537163532246412280621828270639934851296490770583174487844563388987866132248669445429571833205766078684842694411842474535904751451621947281130447383626019705550270953650611866490589264830166119267365920479146238668644928259482601317483488184343281028597547167746925093118264625485428305233587467409469041696342443499784821214586372981947895314612938579402607057860758549637673329285070064350566019693110569217996158844133179225388996000546471689575489411805485282390388532426327018442364414261342668645091169453493552250274935174203910205698052784865031818584604494786223670030174187301016556658727167884159896831911069862423334677295677297678249834474612431287393896672185476583043260034216470396916154205077011416148894505152114063120123282483423262872899686745579243376325047744922283599206177951478756526917510919037997463909389772513687245183518147004894161244159889040167094109152256217062629685981892789403302589442765390754900841283485779529887833330481938038856019963923555478351276684685132033934303536034307006051205402566909686068540213642396826390441866683370594777649111880420795217050335112982146657227081719110809665854262326966694556518202732527965871330983390852428634610127152540833866111579925060478826914888585087146117551807591447451537828334039395888274582503166614085672916696251804837196260246912982737261099557474148629060430095474997124746336439188033634565524732022741112274687949851905072765122235318416410287264708817360340248460239379390274352554362592288541860982566111172317774837566566760306636673170386550723208231562223778949415427009296903067105816895903703626950547782516065421001556485737242392392755361900716786888833312499611339369327422987576688809516414087724348079002160107701037308851466909900684796091794929268415527716400811061535689351750298717069186346814835641347833592301026294192892748544526758657765093545448766176277781463151189775872371498709590505650053572700575101835318150253729335837058603978528746420630500545782519295294202683557006482839736216478836307409146071603315653556826123331196351372618846825218754055471850094787410781506815751151419072732717379927151661996295001387228507904064022158243626750269543130205717727051615391853991220828716492902034356860955794886067364430890815819192010396870242440241287911855953241074933631463570608163491567003719432016102839037151817975071708329386931762385089738418195820892080779860142946368844625392509753637257110702981161615389725968463623999254058791699388333333593830206926282832528904518292208603573792073955088062809168023822938070412616206324466529122560940582643238105162373069808974105024599154551683190797897709097933826636213935847871683723589778533839354300310820655022032556539152217717847935525114531581072487907690440223496859497032546579165657886073367633974935404104404326657093956440719383735536032979982112586514833529426476393660470434396937316499394511665254007183327151310023108781268739631542371453849902551348139617801253966384013684254372122493676320567024925990862683402751317346700658304909735438551921098224761107654992413122109840107285646306410644311412636259170797460191892943104084639192647507939067486115030928444444083845185597067684620422483014087223829758303907929119194063323755998734959999315052925237415168171443239964285569732619114462457556457642788335193962460627865595415797332402264287635790425890377034028656470069571638067414917227138496112028122833852643534481597125950949029884296515182294123553300988294776574480353772972155027240387445530544967514946237992333298584359624125116739783648146038889079526106355958882676113660431925880062762442334773005644928309632743135402605239737851959362664965721179912982220750058917810845929911729888655814104624669434757909873433094639426446156131252289505835368764224485291698797002547673594180476223623481231224048044701395807061098199757248410844146237384207619060116452469776220960653388931473260949238224677819844853864135598770526403251166609372611904531349984108556350577162144190903609414199991411455742230875622954108397405689174525296828654287555762840928483794729316172179649994189406175858840342425105963485525356452419811922264204132282246742955744276759493619131192417818493458891122592250802005641085585273267605767059314825129805762732272140539938724101434342643568228652932643977206713903796650955343961517381154038341284494561584416509056471098020794015078371100029141861981383779520264027338411936162878294616091733529278055846766453763918740535735046829269293233166939745286177887694123528861881631147617281423832878422485643676843802568976094280544419547766137254833010352911987985768603719771423560274510171035543478652723918342352338788895593260507095423744088130853279618999938915389383173755555982248124811875637827996405922478615265670952900582650918800985291341122350676020667041097587768461082763841677915814877614615995045234301004115608180188966267242672669388502862275290548362838030698376907749648996048734586539986328923222162365159886590356540909019278065050452038464714202931575381566500720655890008287333778987407608672058461942817241576892149677179287899699113809044099213340819053854483451236464123938776120940616582645482356494572233188712324723254440146389528751194969008679134830860182226071813580798992406607874036483082806472690770736697642844511276586263687378523769647146140599295615444835053183250620344431751646465593572878356055772216824984669221439212533515940899589169195285347666691896264771653531975667218135705421037855754095616110239330025023725892152277760263524463044085258125146963750263817706121728809179959684053253828834436187285871826262181217172496743789162674952383384432041870424866932094049291276734320172811353435216549558121127870393127295875013644571089006454069240486829712409973903949456724535494088110869831417566810320806921645649274023374333701758504965628093066314952591294628296472275368276323170581943835309106777735681824602278941772960063534335585711516045320296633394602905669751998278610346511219501763027207796063899624908971360235191572878734749460598938884031728121015264321540736565111986997395237920243038728777523704995324796556503087664766600227990517432354861258084748042783541286261957045123653843809961901142631421766130492360586510838059452095766038458569511684150569303786718917702008892053382694567986487066339548216303015843115357624995095887393519530521564134818764143870332144210649746733213661688868950540673298504846827669600017264136717765087215703754357284542757287419624162321175410720934396495557862615343461050446566061672240850957223112438584383044825221128611697799512508913872527744226186113406957893953991784986133939992864285718337538424278525049195784873338882625082212636772555153522295569746860437458536481544223175007921446985714198689750674484399895918604012392377812181922524516381887845563006827303323525087093969783429108177152567571269998773892553715991982930764668253199586790789327260241485824328369011180280637037605251070625227044700844970507691375137120484059898573470477616388577805511136663730425118634982553652446047375828463560963034040023721538810220510040634252379796173042896189960278032380778497442953903227521031551654554405361235416843533321777986480973734846554224888387764505420790336480670797629489350089767874319948091315585983605615415892679795324858774165317347252504138878002071025101381505199883054520365597180607150807066518290146961155679899354056250818310965812879349604193071188688456015914847650681736271458304350486072683751852149146933320368077027505458306071464200246966447459898062908678009146086798358244047494609665911236006104433911152874617059091241750251395981388689135700501641783180088784245250604331479254558259845318293999884524896548373310753669656126947397696604338297798513811351208101064045862305661796833920060166999516222753491265618830340929966701608863902174071042096409780053747611842739420110799999589834997330783741034327083393274957295142569504815484196116836917810371209659888253220784042881418857750127715304062877236970718220833328530644363872364844243151869224368821914977718278418405151005885612702332097150671881733208003807150696683893590269549331743809749505573834776328948634449691654208446443138092503564100895123605107120429543194972601219100101142969478693144108981579270325757072457347416616889711139461553676932898205017592909807485687837179935981281648660689773065263507051362872064785603607310719310344672849434129465653919078115196635126959002837105131025164043351626856542170224509868504548864606233455730541790806897525746560488478413054843372346908583825615486883954408410353019636904459430250159522503938966914698405630429738437345356165608936685453558202093070964520602207555372686351668794540668405531305258809282390351728279377039686206242913282764143397814533873904554058971888237319416192216675506113198598331597969509803312583578381910062321935194854013789034323262365283530159897358318793729887327998947970046987738524297881586384187294217563358247967067850673870412976316663910131630468914795926501861874836926395464157135330103900364076706668410243994074748875459947241829628971876546852267881719527820754615927431097469735612796143156863600715782465592866381148701885697688814057045200942708368199796666547954338331332867291342539344655680134803980026725733667860131348193153767888135571244544642253857236010466913054362602182989133566747432332204726323960413165424966779022057261208779862152984420316186951908442747187086530007950934086737370066701584837373989314121712452270555786299491844860598963165213553613635019513141710639478526323118852583538645968094247290802887318445981844282981687504424115762952910067001455838218561398537787619124463510278649655225834748151833871597266548799207185487191756998253232648182178798399192390730203126834714816631936163403530647345894516856729158150355708296727024047273932872044975982277511178923353212143589805738943655087088819561529450277117868598678987519249896991789201744221886217052624131695322285185114796598840713121130282402372496217354080342178593737001082361166592973814061967293392896620005847974744795417700919320436390759032314701068805978697783261919722269562541368226087882943237239424907509382547324595731514935938878553094652952659034248228879148593789225899239646586781900328526128052662410104634660755315711064193210060189475750850406680714947001779892470369735753616526738212784132417723190453775858740836409571174686712339611838857258065515516586183117466167427365097191821464740303223659171111884223881333496827507732935685663595321188840069251686390579901340124707277029142860753771924498717151376958096910296216228613677831369146998335134282848138282533524272321385028327514561327365587253905088874169126921489102635226391629234323106163148283995038275405875937063602670052751709780542010888948127835487815600240423448942290756033451079676046509312527172124100363153459581553498810862856779649749838866977028063530976915380217826322519378613409520098308992222438712994839587296527712709402470591129481008980384688052291004176770634880553733894510502234650143485230145629300954722580374751066446483370330422026104701134337522344846882492201702218248318659838484040435901449739178747074649811542051356329060508412132945389529668788575918812577839964705565201178277522351076267744375911078719760428179470098003822769672381968267211339070616011760502160902551955320483601181684852281749124167604742426646469388188629909336926428838385583273854163743940599265017966814012437860913899769047273271118517636846271333643580978723238029059421449800530202433297485697689322346962931216895828925188554157916456696965562870193276322423339851363062587975206059777197537797182897538495043741522966508227929980951660906341426282024010395211256238882971756165220531422894780040538431366894815340380644522960639911641163444313074512966836383192487685351681913131190793588395499196447330142864549889010174595031886068637166554936581160457625182179811781282592300398774946113834556152072833092865259651784293067550822956166863502961340007090642435550264063824701265104819697627375721264826670849299832312381247428090296702398816334324864366006596810259795452100867006435263196893136525891660567453076574237571413320866201297202891905296570434304125984181662004682409339803029434219806547806479742514546302273804655362573190190905313045723518950328166761840039496947985903216467814846527056452282620439653506816080109344908878275741744081459771608976626631756192964095655128665949797190888742884405259964985579269722061489935516164282086319507618001923326787903828549115934507176342471014632635027721090064817519356491123699511780108082897295211001110888566260746815900307873647086115735123694126459041194950199136026229092805011189936731261619064221038835762438583367987542113109300926601463092197210168684909310510291147749505174621215070304749670436637242264829960835935312901679655174467963570522325617300884705458139427509892164427963060948868331380009136133385634683234838805824144505053353672102259184408758986147367510712818341170515409174977309076784300659432376209919351035604320793638261405854431739174786748912992509331353619867114889124007829431938864655832917599605295276150182769801464966641189248800895491223213298419154209012411383946063348897148477813362260762768140228162331255108616266045856923817366098679337696698651569217157890802209453032898681790342635886021457990223563618589646244849371724862877110251431316099872553657411871505063930151003254898984059899736321740719893125558558731949827485379751488907484164662368888583508928943866185060949569748234986645669109254088278386064510165896171357121896770481317794291190834837601794736501749462816770381981987286726556418906790676414164889958312840472957815272845294759065557135808185477008207368512230950389512293034913636695559791968473793004124182882116268367042757427328448097624279185871954616744055669559388737071471514073299174868278989915538487661980377576530170295844555195283070748505063924659867795739722986200120910126692661267957815826448477629196438263187822561610495930395346141765736707523397472705141792750427659798359652949925428334730724520911911160491354696073851879029669445650348742170372858818598207255513010184579375360304357510629066813332462869905027283510240434930386155143431057441677153899338759804870929783548868510246340297117271683189862781666286906083304263809972051897880544440371790100950683545367199503839886208472835910846692635726709888324042914012781360955191564393452361543135962600860763543005267573380843224829330500173948369868954576537407634987812707625891944731879643013491260654273228059447797965180957494284697972021324046106104910340576003433116044334974950646005522258065981644967032809947380515409711601347752512444222123748539518777744169678693421529003489833003309880003498797327327051497674048652651580064794945789094672095649390839173288570248415572378375899655161256339907295053028609633540238006254295470276987553132212501150474202843758864917279235523377044989094153009212023573022221541572142757137327365743368284617266327298670840522785054533743351142849121800495580648594950433430011563765752262916947497362801637892581426150122124426036666711421772401861679227958913340602465961924682674608562612816354918613816888774540593325084408019754176768728042303383928538213182342005808026808116113581254912950867848910168791142110146929806948854073584405897750466420747597382502555571229367754302847757565145198012074174978322866061484317708793898125249755584314974523619832832395322208365640051746249124663148306361235919415810250546664370127146355476815891146697944108281316937639926525729741557576636491563629419628327836122676715123886953328187182622989173054720340665860659501212766772653344691294271058381664166327235344895280960535897866365331115193312475754843400645115183969124705842792744350444156873141258167095306479521401288859919269938753988439493460398310959379731591942716808368301445950772666463249649033654871044311186345994147683084347935081720859113967188342109759133615008673696175579890526338324149931633273003748314341299140110896616675751557101600112284755223096576546849859853847286575313203410043268790348966706409072230125861876467951382400014413981152115337224365668474542022212182385192182446382375483796228926886997218341194052662427415707051321723431394929583877301499202256431980985412503408184790602160644542117547059330038215954316846022684757404740673604280859802628188093803498107964846032542276509154900199672093860475110062930208212199435620785417625450497950230627441104648098221174002154509489854227160598963154495419463472926630390257678165927976960248093863918621246144897731015497121558437270082211878590920426893123695076296962972022830152087838169516851651027449656859609958124433816580975429415200161542664519903479076736024353817472123311494848869359645628711438407148953000930064908548876135011655363020660912806572742592249956560283756592517693147637958893505639949307293953074940148401760357922984515895755165005595812867904820200235667633453822219714204099795826899401468336737142088982833291828796820913503053140153260531150151142512868400348702768633262860773585024065922553751747919387014268657244427090228993561037061042696476804622462501678634636326916785637623549087654972814005486384757081564338803700260836826257175353170938459827264006214883120790987613583395511359635644401289892207156851605956244524085559838468236131966393872514749975716735891646466814036083003675154178686386002864593396101822184755876091591458869609216595904574614955545585986158235725654668538460477059078826687359141284175299995704303388593528210507864121362162707834890585799685427084490306185171785081969904276584566120882922599157439156371343050098160650973140780432885087548613818073299416157961719089625386450875447872065277366187922712135265782169490155199446856698152502577386435333353835771704506525957558337398716655267408785696487319156859936921055421325446305146181035072745070313233040593682529550162980946102245653225256673902406786287715975762996197040281330916935170453469508344674743635565289667917147757026510803725054088499807037329796245263410438567345346633011478174917537586731193873795303840659476530467290250353613793187981451029543986383011957173254694400306639623077608963493710434854546101617424962099615529956490659620090758987265304166864008689685553442734839679005120052461566145875989745086139314173003274525924755702077019216408547274842578021048225275346683966314373960229501088501541644622545651909706699199131123869586335109448056206274005137964408959714602810266859503699067289384127174378448662889165595023612418683101701247010166649022989069322796614459117812056750996669992309639580897526959560485294667599811651907980301411198974591874365542869844926201122098892563814414011668733290116178308330264332516860859996778662898985467753403705692183261169709098317696962191538894860563221330371430984604825492444557346239217015842342690992913530019768494592576266767862833421662571342276961527093788022387885270880399602089059707544926634509061545335488626770025295343280764988566625779833500883139865124291779956574439040214350024156622222568781923139305741232540694988589856675154021236048033607921935483809810472135998577218267624684197820182894095299597429016746348852657697173581744294691499418672860068436225630017074261163731129140015792480881842234623243220581760111280972059744734273627698091236881932124883752413458388919906313341223076167405660708613877160892960551314320142240565286627089986122899394197951882400021640570477162800754429241364068189617614570371569308322916239085888200316710701996291689351310228772948349102158441642553661709606752251933707820389378318956903061055061340302874998306531686276693033288142042345952119829476224199082652778941541294663866260961721109900676955708286180221878013729717353120856055242236299814881134112140898724864849338936144461685733389747615022962364320222712191556995427096279514050222333909961233930021608040618774905563901780689055140052004177313829098218184889047606923920948601064565772535067696139829535716945890084109778897817286326508814540955844352518679399799100556366571698965068588439305611831238841515309910205496769599324326222748702602425759124294231458108929099095086756048911786995375633708778305715150401405405146126888339745637653807520858682216383619193863824175731064989689744336360202429317113818940754776234278037876028895737714683476667121689242701330059985968646535802471148892988128176574647727680571761243553155312903768070429796204007320718413004661832606291956042410676869546819114141509650252017289126918575207863897974321966323694867600815206373012105924218528952822546226134961709074560920310641939491411395287032080417191511237151819136465982689295641486929348682619740214205016257225358136544831363577599381779162262380693590722725570805125493729858456307743567110994799774517963529196975108318391419879020967816226470354751266778207809409276814514049365685870142037043158246450385015867022466014283712013257278212977011075927727117448333396008933288651630678901407900088047416433212855214029895676751468393995613550939491049468565244662932222423120944464748680781684170193032980569002564430400125270727071114289075288319583581423493074450648266870741914050522444020519004877319694085346934143947997113314170374334669525114602223835443738915188752847335714569675152888319401489423103483271123631004319776499083813946753341751006098517367647753057030020565889895318201287191453459267151561435646023242160017215198120773044839631157665676556933834166062535684761502338248496086934102465254699735090026665601596194287156453877667719814318354881428023347856002064215892299569097601331095991211007709786218811665814189261223401158859141459394555961860543111624862001324131621904671266441607674481792778838214564700975654279703882300455861062086516428871558303872197453988630532441548293799825421283329646955008148675780882261116719866868920523067352819673721253527005081259259819541793610588131490385482155631563926659450706738247797796088204951603490455589656851573386262611857686413799396577762441872578943393054661771427614923584319711643399360468835819359706631069663083759961814894078987164059731011868369819584583513500989596184192584491645242003251348180775336043003578771459875647888962257800437620730620700885448350012132455872966706785307130344159915943997470620001535522502210829857597727519836285186870657516502572155851144627710273912896357486263636729210823228293775638538006187612019426284190297305154988672908288747836564542113255947643064950965056647913976207842305266663620542735926950929980291880613613089571226786978574620978167730167128427849506414191226943448504210218493082286272434196642969565947608613370528233685831551942943952972309025208688176654669809380037377665171632686287882940680773773316807588804072472837676800729202842768711954407365543025389785656336587926341409969598964950055644692499486879927506234556673396403563373232616685469831857252606042549651742923468353378303494633555006503608418398715393008370362131511120993454965215366176501990763199217362003873867961972477844129819180974889855152526765543889351001558766490204147649924766929205444849194579000615867320672943333596032556462117851231930931145341830185387263694432460851472481486635390255265064889298152426805188815432249028201705010528099893031315564223775601106597160849542019599348693626395752751307920501129189231597986475835882152272979887291551571263565874487419331871465313089478492583069222092801438468424766904614607777432984731460081750081881293269008749479116469384195513410973626270923860111907592341859123521673561194849570068223406965034399786523192856455965730512157821940624194522019122815864268586791780578660695060564004800373317298479193864342335309712270542927377845361699065098183569326240792690002233868076731760667720247797817791159664980887566434229369283450208982937330379164351671826107643385128976278948469298000546524470937119919259759709002163232480490523099905982946126988215504133547894274553005208916655438664184818442108404011416742815148438758059573090712305282373642303005576538693255856766142137667696228820897863714656115523539219360249179231889069011983005159823757215062627127940783453246978071889205465734661073905876212064809473061229744958320658759381659241267809769464412147397219536245513862686643249247462045406542314248103957136631160385642670001431866083505262587614626455762442036910799895146837172958292598370412677537313256727383287724195098685101454657924379216190765596137504342277234138670358703302862271911475178256843937474958472205878733138535139009532797487806564062496881151770585823279933077466968916930629967841874162691204546609815070155707644241821999786146808999755847727705020727194821449303016105605590845534258390977214640012929479621974099361863237507441865914837959653368883890368601229793279585172197546184326520022769818130691656813998368940734562185812717999067024125253616226449152889986701546397002944193345963435882957736644968579164353577921138862185928304794859021020991408103864773111945327419849872686269727761917219433768735555488685954848582101808022225793252547409277596971110658613254271613595405858781266101186593741941987795966574053452398348307300827590283211084630111112177753544464889795569392507719468875522104960449598707966595893299447740302510864819350475720711944719024017243128798199699353495984186377694873756409213382678954423789901604351141887754904788496880471978809477949002147201913591959515890902336852078475689044767652864201465562892384748867542823856233125807019388341448645711487505475662971639657436675153760493137102754126552008568417825711487208314623409473202144223426162556412274842038234615690182529625736344140395935713950893705409420007659842599563894110115359250719630072520314751061833230606683981873908355547250296069776716976334868785679584491477836857986826896501887914005760163079177695232696988456878496997189405032251426794680063006806741566465625228591896386951119453306655691015131182040948262484804915043984451467774370152187073710110998044513276283717104128445061611414880952410957661713487086131063260993195035097494601184809786532879345317325407958760080799976008549982327295246037490480880544969720264429160401336945712484108866403634864043488596534447638042352222812966757142919447695836663851768100821706169729848025230602416729274025079952429083533515726071936909256850231902492305481808432647343438930131148189030884396323058620861804789409716575183917208991125759569196214804168593025055851693372168039241308939245045902890101741735172611247821332327098514379380312373308270514461625271371110694770279604755190415688932392395259347331738222539083384351922679868103457224833297689182661494295032829348278721495052635755462711120053221164895545289094595637840160462156079537264582067662628008676774982751941374539235670247298514372013814532343701975923653896514527046775130062125657878509534622539995552821427167978757464883266923365871309281749773349578719291968743662406705542023017441019015798278044138900973097166534037105723187754036899616518776814697833391823789566441780401947907412057723253222639839803243606047679909191908121217441679013126472718091311974447623964197837531784579174207240140016563338313633950383086825281176541124310247693642981187928182540667721418126329007348222035010954827361732043429311662980158367561472265739355027544229914315064172358466073200621293828289447932270481621859360606894069326696744749598815392893324020220016537392479907121274316829669030391643936632625914871549192714122174785877907344369740399317965210343111010581416724915195789917013444915267961108535267378968597584377261328313140553233986617620446734455881421748655245913799498990665003702611925392139691841110795529860901032832334344799507193563459452687262243449525009990664000648849334305709556077491389175259763484409635544096041532514573814742904977360615636999634293244493634123308830171763035762256206426444088733667842176994540551685595235562577882156027138226539784374269072896382040439135933063119576898193864775177826860239433429738242730661178945965270218268396504001956956268177653263011225041957845158008606095218056847267385259736078928556471253919338911278711462125947003721243470046109930431197923884732812123236335874005415239088744145783165021798412780213278591433495192024982469077181102842153263884542383985594666794688213957352445122171362454406879411895447741723081984090417025171224506930404785123274419422863444808108148385251374946216347919028611210814834069468946594071492526415426319342114638030511962089083913451189185740159397234686527375726263482391951634045493671557423331057795457668836905161035909591456700086953764692497896542358370045121013024199003205342570987981584028817321615468977377940301051946401751173694283862686854689494489271477095375489264479160431675913579158657574382858070527019606702901285787201707848814339670781571579223878399675490309395656462168613798842014890011482751776145712885905217941954340300443504990051757124295102058748963719529837432518045465717633303308428921061902160035835045570335056182730470926418271364760012552298597971637597560376336626119269675062306125266644382177441821301965899843525758538555690551591994663047021211311907961888806697237968077209094323556188707870286580598596416255723723925865504667468702037127546418202029604069408707303643056298134497597707539321520424344977059006354907941079526418344973162443921706440470285469181748562168564307395442481351249209717537488794431148394627216342654753168789427273903240132025284986954307551886145507084043869317378860954564605213377009668441520427237642753406412566671463890764399061982807926912382422297449832782736110812531419063760306538795317503477651395989643688659726828804709360836797391077159588710354056452435688143125148646750685410984141870226564716568493482491180181207361480988209525693362220618337673442307939289359317635944134091655531222523092134981304111930799954717106975794823006659089275304526623340317550593883633150554738230540420208378652893107641157499019456921952496645591529208501504786411300481066764379105462500115997525072463709242787971648052224068166847292122929079072427067242356485277900412572850131359887050063812715751492875832259712713346130530436452940977924586572021174861180594275340568924247787361724113022142360394303942757597821457683304449327867038814888064675972793377411945414192757056079645795312920314027149935002328916626412560926961684268437652899333989067797686384036669179856148408107931850826346868653135070225858664330924918090689999806531022999867156300970161457819632206577500947892361639853030108892669875754034835711562657767409958430252046222353046772508743130798555642291756957319237621186123193449986986201142110330126638104195674864108506946884079450538053650355800794442343642873733235149845274784457734496530161854624085588784005315628218005066078779994451750839903149036477098695596059990103134785653905281089010861411320001927971533653953353639582876578203501124560470467787931220947039139710931525634037832679994919046552288508852236385585549947295389098074743080442641866824673622220188930292154070349749836441224015840878084217580780166083759681757401338634170961880729970096515621273301071968793577067272182838131564603914763834384988233920597735392200593031354731785709210408898238302586912323731244630158325278457947937200650927923225869766199833525923008266269867175183723265896615261137627410970985724171878992578991951396406933503824245187911821992469912626150763889118692047614775786244505194260404517728361526016605487893808123661945441618301349190654289422492897576191524042220142454881651128461044321648850358314384284815258142355170052596819770164379439576100563079128632961569543387028089154394651893453302453647095886249260610810655171462695145820771543413647654183049764952706302923923927238459884542842680205894483032625625442776981569859289310144761463504345085643222690729429161354238134918484694355869557508202105243273614348349344153794474862839143945994388845068615800214894408017495834830130837975693452564234625850861436296458143643402186603522630857431721017929908784441994518915177574653847097518099523653479868214990088684783236836560352763290685508117961107782476149198618394069841890789441615732611312246271802134296202456359003058316419920433314746616005458309339180056681165452894371026075808671558376763147867974689144594585681570850806233668737092248155155872682439050575355869055344836559516928465475759719608661500695763543098680849617983059237935351250922571166330065289924990081286927664635224279232224312194516619655876344145075515346873481276718859344983402505675733271192722149034930194072822738930792263173031782315533782203053741304486143153942423396882924244835472250882144406569658674717077532549651799690439548448576369186358278376352475484491926218523988380198218620478656140618888059236241857159514718564771953282849217336715139626184577968137754593763622037695346234472293685621486987171522166808703411241782483799664647915457551726843062869079485946339712917863978365163700070672620064981315978405757851925553244699176340509879734659287801624613822552147701520773758028906781074993225193944874837720514426000173196934366849300462842455569724865874045614080030062021483642718659511678989113184849047514750030904080857868494032681559610815900100476119088560246789883884542745598042321148372386723253468725850537992319861181365638750332008914499045397438709716528013806368154461871357395889876039169658871383667843719454448905730749132072409842789210039132226429871996185868850123393013559335177454601090320654993351844250997537226470628416599119788455737677032075061514324832310615289666911504068952273455963970440438756955872759045553828344325998787539535206782300522342810146547458296752100545758173703856505264889009253204410558336959338248884523192837957824689024289118638121320110127904781638228947063798161997916563842691405333056588772087316540256780612499450555358683765257028177901684479720107109126487819222293878091927742614348000511958465091192107991320280210125622954132524580450659797086705295775027022336626435251753986275726725531926503276809906104817952533292969436549623116809439906792844977108738713100214823255359508351350140689658443947517625253953292507043866053344407759610009332640519432222411080038444784734709398393925907879480875894180649053301779733768809477083070646397988158652784194084425056630767433925889467262517576623784711896874289506385579087399577920311673008059341549879550120678040828297646504740610285163774488138368540371408689588729359805775055096003475605274125767377664403694928115988819719741544737552253223882999143067603233846516813412199379564254157191605388397791099381340177727673738224665902582251054479413344060143722147451372984041405692807904222110490039358158122005491019470591240333781802263678459056823098027461983762732387977802434527653404903266512673851768702913213702667907994268465409689984307604417818156780966844909663677506203124499486812242903416709007347192487261529792769524669083809540412657119907604215036757398003164832434302709245706760854728358915663549225189197823275431652682918323771545726760332036832489802628190257106370938443878416922373680687916810442341233079994244829396825522186624842868319795754111811275638707124860940155973501857616922539121656421483248513464843125029356708564574959429432879178379122190885277773770357276847250107688368198109826191215624102092814801887489122652378169024043773695115599442498251514959017085435514153268812641632069613478396415734459063492090427094329213336791418927442472297691055482640180670037526168324782889172701592759579724321047877022606253020977845310339464788286142944478557046079680875123212283697823420414087651761448371513816430236401574924674397913355962774356158838894000907103024636328072874028997384912229658943873869853970622002201080619939333314362048901644722263201420862604003346679871408072074956586676485826504050741005743436217430353976748423420944943228557215782430786441132064817533325143050855919808321258193814566283047704265485144909888680733480846244555096602484484024385889536219023204571071847940567050059469426899747867643615152288693744945196143643253983287676354354515036897343621530833986215654394710780495310074035024819798410256825701964041581540850168057555561165151646743014554347172180962275492810305781469184428042528744179633613582518068646746682924188055574557269733523438554136479400101764560912733140110790432495223707354681627809109207602691495288199006533427181317357472256663915587802469008460485104908729068971624279236780853312290226072788353663050726355694655522504217400600425513288799550640316680595931302180634305006503969154467382330231054541486593604008900652325414664922547006646984343048331807413568167498062283220081562887927317524912525809214145375755441388229758495585540308237260439278530306548832512297998217099396306931633551498241117506977690438502323088921749025475980017216155549758308293691687612660497458374435349977998982095458785113013002649072313731545952330234559800781966902590999838028722650787783284534595992713297981307751774575988517288543025185305127524029700810715667593235073174341359184796111245997705251784974176689508591063521569087988556928864751253551123186711064656281556625494199253141358167708787972792024228442632560245394916007682387158804835907408255166548124746752811012922582048812753102102614671031714337487003624735273148626574790809355043301230104533259902710837527115008145360079953184484480044868634511442035142016209736922078370233743968455092592382773944948821978014369591779272769428267804807109701932625499854174622399026813342672448598159135895086513145527691521416083603284227873161636787178687486576457700501516684997498161731681141127012647098169248469267156841208644173776081311027388413747309843021011959595671984358301663414575703224783139696570345786520613425981072635613077205028938591972153619746776132419196801089147314469659530798176156212697768036328842399355018741262450722753698050617149884570261564058087652310497082916533925466140661888162842934750935696779686183335717369613806442403950070380161308436960132772043107502172169461469009583842625552163534428618096885786891821601904569780710651286954430400095976436708364887172356449149429747078275515275338084984616274211782272694457121709409319371776826976736657781122406462560243944660773076381292928373705854102445025462389166816828144188456694797581413578156080615959115081711606914162258260705359903133182503151931001032951713325629155417828335123589761118258308888274548104841054352414392086649747592690039208119669805840136207307535424654244116580308556434851728340413465856614021564732189240034547888566995506599636856054018879163988842388189937646134348382388135848027793339846314387099828726398404705665151282635874419762189934715274310778811934511058293930570530787195765685572414073066647579284848859469485111159102949958549738632519167678241556799437198829207594399557563290730467540593506013280758983905848674895385553827598658142332481614119538766080240477938489980904948145626683441768639574978314013626631479246241578887099090490489526884001363366457585501778423052911066328158052639632994644987597694263495503650872327507306119074380479842018399716409402376941927570017377799901032263775180953576401920755511926210709637181176019282784025824429783640876156562154053536146179379233531811461806843289798677083179871550977398150253271997087797155509213520266116909792458039546446497153640942962713183272401737845643244100592150683175791060093774272018968850138812775338714152579756465990694403223699801534757000014385686003824064046871050485899440804660358366027469785501489281603003890585417094787529152440949923300974022172377414720189502148312130404298478152837619755843034453857124881136193789563125492558431766225841499457434733586695628770226602872110304528165312699378643377228725509800786850700480022528985986507253087505446621994696228280680282476914765480648045721928610925488207883777135782730312938300462320613567869904349361809839799214300722445130010991760166896633920533049858584883104460328714342480968524324619569950824018919885854711564057247026433594676839547322078234677917963711204161468296537419171870771448159181567668141377822885116250759044997803588742615855308002776411738317812276687041111366633621298640567159774184179065306485776877632182099022609265843828059664751694711888926906917409806961464896645183624329737432329433281918947134866295677331068130235785764047801085621238212023750417433115355683162198268653466299286469749189877982924320727346828052281931637545694129756547133862470087381715403399164850067724671801690950038399311701240346897673514180902209691137645709420187027211376209480124901469581390642932469805414154791492581167892721818721131396784434749300981722500101790456587128429856706661787781540191752015810033131438452107647247591585295020844068415279193257454157275728817645815283126377574064492027205838390981080725184046646932196239581581464724696184899925518906241664909691639770872892789358377945067740950389749732809828157053586722217473238937681371528774056686411332956357987868611712973215931052555183759396607896605265332281066756940522420751200838539294464536387754680250618195016776497201943505648970089188820916318248265511343357960521525555498769550271657636221423958758301208042521103224476954278426279121861251264584215572251052273628473431458881056746031043691785331889632962655783465304061235249420244551001755529241514421990441681996360845226074674316739058843462302835680488080277623041884952344797127323294269963368489626935203781045695543828935804835316222043023529129245533619252892965572105478269365187833650148885843611029067977414754068815017840382021404650415529471046653321647573407911672449927116268440765460507195148225659447287812683184803885344937874477516322929587424185014782340572505453922530572586941254889456161190255081274273700937393389118267921174675751759265624228795251586664900167734805781682384610731750814840198952504207256072180249202717424515356483527861998150692847697822468189387974431322333885030775737604104711153943322051251890041857613459734195210656977371288002828636189140403262659855070512592409133110468417890899988078295985095698701930481007328264088570439040477679950748484721139943728583457130758795221713441398845511779243196121954782810743156164361223293441370938763513457273551011462496114656306505644265758117527860068966708616482760306605958638015863465508707430494374438483623365050373272532195210688703234486571404360469950666206019471619665376522886784045918519476594310767660791840666334514335281110329261144178694308207521333706164014359536932055725713394505585779160803101877503407627349467796184247424718911812601054617236383535187054517719609751634010909741394601125388539351584739276819939732310691745030348128737921196939720893115138709816863960899368231758416314640063618969436417759848228302566312660943279871891888121514784861204623271805458471219504038868182542798941353899239095792864645732414737302021922754738044802082792461715002038184200862171956639782821878043804847452589991023308382482246541980662980978041708613131471211210393263149319776804113747597748289410023344408847466329230582857724785731247077704178579290025220403372693274500757344257366506254840844337587658313515777601404034566826873692950212701293647885298407320715113051396893187613139134921455677477478107308261285201795866464199072276068324483451040902300237938057671342333330857180279040741441144655658856654295983071293427717763093595072049168361716203121013886968994219513341059798647692137717354233697510761112899100863005421566262670627670448031928387724098288885461104312139948349585078368341000646443331571715990504919967418384585491906614791757141245393484942292453661050165961176398992449261406897577880314362940942019768792026787665733981534126906577125312419701672737286504281686645216372682205165756668479041658516950456350661330842274314834807954199573019041012561004882872711547151107441002065178961729605655749879267267710306481573803024160118156086013495732525930838459499136031617062869090539238156255380467562505646167998690111189124353335051805717461935940447671041137183577217928840741146811325670336650024381185754630902460308849478648726700246430562554577925596210703508754596677783532560531194129774345276725050097908499463171627962485803430452432798827613984878671245647801249695839723727899988264706777634759207435134481802096759166329067550733489703828009559883519586340281999652571884634245181509802574804193531944041581623675724910532051691607564666960520053238226307068841891661437012883018896990806414219082963221290376345293303305508119449601716518924439117796141967549885394535306543402589767994629374251183525905417503237108518771585807654895818562504240031388928604106032963603537180849168587024931965489267814013946009988439281128683557087286947748597824740222544360974572509857167438158121382492595579805357257039108884504426979392075071151532661201064975780086000904163974303681672693422309736110090791011271047052578560323318490351795630343775162950447988318896635918744210137702463000238400890520901971419253068476223522549077264696861703603233743692371659619319062496886787939124798301071912140509482400254242569393552575445155957230493126296160632773953940196169720374312775403600532319666376377140127959423440608779030027512630299234931281999805307757104777695248547482862628317549433316220185957775255071011959146494262381717830625539077870486428994698353075568786970466595839984227800944157243509356779556868459872462224838733204503776711728079138659785408893906826760657165352783399872989917882581835686335782431842944984895967775381645977283735015964584697388283576483049668565699959163494300716643600534752645901710889596870030490471792734833086710287622919289515857555647895456011597540037915493489062475867199792796161509243803992608003316885387580329291442086882661410412018153045700936683820297752084809546375588213816488142033057804204761770712950825576238788403536160444584604906946883586399342091652425379151634324910700292154008127970012166638520898833066686081812035766680794422825403532305748603883010107657594370601949205760168514977038658792875076394909093179059546664608948764685935370451322730165699173629806128455341732050781265738011850209607976365175334125377369320969517055164858733330851494968617093651715148079821168152143581630388291777777998804767882338187246762960385801337036213069038945499651990313510579139127671001620754484681242793514499750646168017480460510426859721689947511819848604577145782317663333196041293119476332141447699645351238863680878684573035433533064888289360462754589552969340341337123919415842068761458067986857005229530499406450760112925055171007714759540693532565573660093891443053359275511994978103851876595630004714668495363009559632688894465927040265872048317620560892986434512759517901563544666437670954137500009208885149357169219963223309228560478699434930434134330570448014480220496646276774962309779895570688350599899953734678251765565431535239995283215502458349214483827327662279167670766980308230767872570055201776131879148826883382681571015157627820537552015921632928857574539945213886489136406247676410397653418827220704762457293751679141071757970735687293353547204944465409813000379899158242919424943413099410077810465468550413230954811276272082448150321489127559731452653131228817625353391373366831386155203638389088708746689201887074877581833208640344187301593194082252136006293979870965077467211273990327776126426958365177076408291498291150226095611799004079838900979872748609259192958687620276671376256623455282503778369422152393339216248685743371917779582510524518187836056758592011620291503448004956091799768339640451013640816133879713036148770044729803312040303991957138942805294795016098840055356202671362972573337334068053846846407777689675725925245818140949544624228594756219877798994657359596410489062053866139775937352564362929380050032471591093927207300665791728980576159707958344607453847201444543768211516360622484310233569048907170826429457752294936127904267348908532641066067556724949122100698578110806169521528098617244055759035946152241694159299064851836789982352883412497384352751813130896765334708551764609151156213693070188559852846320612604824218368532882431308817060847541079824569134928286809724430153538845189081156526080162580518962690804060557766338165794658552300331384373814211911029091968871985249886135506410662393028080346252964282760811932874485406333672979431732645877531259832550078810203698108054734243787410815417377722150900640988476433279709860058444326230443408257136753814955730962961987772300800043735718013496203720236908617502207910982023635760420248749199870120559731540555217215149063699755151502958568304226032947056753452412083921584652015567311406708844490930601622067186721951021252074273134667223929120886646086502767954541521206558707498376728228859800359058273750301974892826566122316693488490430131511428190997682180179434739100560568601405109401755434073887766489766777371206901457348206507968614267803772843983775728073573735839816246788629317379907910002248899055258578442916988958521978539474489444335313221435901122200163437659922590431935678744714180953580054051038644171387470558443142878398322353915072745578343836623671412235701715683383609190582558120531090803412048135720835164978078758951447481560847444602939897416452112191125840595071232480596911505224643255586879343785422844755016428547848638064275581978080410357522320175027280101768533423162210702433808499102914324888600353576534354200060106008471911328033778617532062465145709898922738131602802107208067368474582218047687346381501498017148941515512614552680725190803634786499916791502348753351518972631659492734267424661715764364678416543868340308251171718980168198294581468201177296284613051326668274428604910311591691189537496765883975944900447099695166282517864816293709990955938459423602618975016573141695104642067199243509868262740347299804539149594046270913926123515136072634752248172724708327638095102374742006344489541530003181197606938230867508339033182023384069352734059541939098451865248154470924779802298614115607713579718875383125693924252406357686667299433873364679714805957610524926364127663812807854459253530488798834275185042866479956952548072255035218416759612999104264423561139049731914860257108169517912812100508478435668817162216708043351348159420418519186928082926929216079246760925127251233564676727085664289364065342727418254367580245966446294388915279430700703399782336940461959869410169761368217078953350182472660606740958425598305126527428251109961966342330104032406826659055646966733272714731524649648230250846791264920907409689416998726596550901653726045504665222753879479048663103659473203279249718123058953081287214617172627041000965655746638078162241898269808020458595067452057595001925385833167126562975501688673657262362455534549501654426192503202705260353805167780595998279840130548035229757487408737821909057231894292219977941537293046653393680106067468325695606692799743064712885972173858482848234728960083176609350611027609033242674685888105339804991008126993943539577433935961767073578830947110020479297400349872448163576048320387600101314413339156862496451814698409843098283385280449971489281657357998902108659455524636700149436315603631449191128037245919279667825879265598104481985032637891015614699332401433359060652287564166034615681864782188357228869338963490145183019018142101718613810798326135395803889598015536706511366730696370271962849398425944282005129547217102999064718992729336161225323734593956101197114046934858929704760034426196472923535456854087634005059612526800217721411037146597997164701882350327431497222682727176232052367212090106981547642327971659362749283395166511552540670504394367874877242553068804699340110489217667676706807008578272263941763624556000206652837419337569893330548589548714863528258604157221965316223297458689328369878115080056508534927149820460222218055053309522044130311000644596869405309200825769355860415367703264153969780430565499852938411276864905363208162625356310923538704304498259680757663055189413477114904145638483788818033808122503405919959217203866592815528014049906281607990271349995193683963771156129455293938458687212701271634661444621133668249276787754224876919197531036012754926081838826390537055840884177849250649685282923230646003516527740925028836181907900720743052598070262719561522149468822484143453820185746599400785042935904181297508616703817406264569736748284861597920932653491400592234026660396837351540642888105442168323958199209654103495399929900084027970285888039891470652214880235247851746070182609620631217097095231359072113546202107165667145480609407439973222280028226378303927366938059097032479398302098003440785397994990674002327252797000575981647527590868891277842325191563267444476169338465648064235953170610841448183321095522287576186969637020295617940482254697844092741145753532391749967194071443795518949584222993746437816837525272028789023798191889278248089914547952913756254419162509011140843683618763753676315396713610462553270841152751378304406758360627111089484443047827505412974884604223207396875774808874929770369160483489476180056008327532798683672050049886614075557342226452521097820047711164180097322197473397068800122957838101741667837249280453993077109840839158484701143735774765855800327580103695046135041407838300556785738219461643224593845318003095442524464947863445447078470866135302841090753260319344602841156104794491819762116569536548452798791482471163210742327521904847064585485373858070974939822404221367655381288666454074664541145172024634615102139076931879966167618841203796782921860977902759183665309928216245904240704673901602792149814176207040982224864668883815039885779204215476286564337312260423859324826661420865930338639801185869115896686021403643661764005869957516541928510198684612221180208503175296763258704223710696642308226602836267582714168961735017108408511882465662521789106432675596645682247068029334253555032024848319334487798510975806388335436766032998255205857560057984441632209712149711997719855627676376694067954201816757190306710729094344227511948355536757344422150030565959344609305585817802682405393154684111266029629756350548283399798387004624251438359481632827840735070136545239691584226949272769154952673221426616828078695592480894627325436422950853509307300120069907676191106336914622318748294637812071833415222477109593330627619685370898437049745976272133156383520595998170714123636741840564802356434651300871043715435458560237671504954840807722086245185914472524646572324435005003622854049524509069810435067037784144956783588526411418240005821064679114834805256954664706929751583836259997381697091974605343041151941773350121251382186494603422073664099769535395993005077239279298630180596926748216837412043227522193855101570127812261403092090162795863868430553487464127415541656297885307236151396977018599763249414244952883302756741004855110881157504019732452725345054322920918166152743917394030081709442701663728937972338309716548599355029851588040444445957717987885166446386382396973328557148555973749313608851502327613561348719569806018534347405235197689305288693637049510406524739557548795528155350759971089594364257155987368176607743825443572348635300502419879144479184432007348854764975807375591978241029796577324582661718608877376754725680953951558510489497039185069774788824991552384771984892282359564963193434143515294184858456263034773173041321357469766269283408305702574130973991826210634986331936431043865122288999505212044618877070178029082158251169111379612595745233619304178488671106517830297200487922938109229296818037452595125876920497321687917345835819381457846133496816441528348469789812889027859135935509336069957042628710399694467298701440927721340488570517120714116013905097576999007598414680020118181193114059278854296613613368698523655472170370406560725420034056336110716383163437985656367500090782627548022536107346957482880916781091690095091309318086386388397036014087610220734525094388425524383862028079163135011683986955348695152217962531025484875177325617055497156599818728625928648558904913085766498723921430900802625843758794921097016437729255748677563550201498816087854661381436120382710494616269413366080519654614699812450268950393785281860902763601467575469695384150995817970360905148078365872763815738688775091566545347315593538903186037184283439726843371138319464159270933489839016728367728765535866616418694230137055488726174124808020575756145401948660377680153622625771258094716081527963165884944159226319618474900548979855303837242246439814351162922343630519806241963417655140260061484931946667206155773569541758771383682926965349364788514174564882725501298839981959383285274609357816031726562369707705696171067444881590234015487446934845749437591905681948095070762632494994983235480464248778835002876058365427638378792009679700350782058952286357925549260117628148922574506538114958198314961168819353898446347389411039026011371359331323799147471701587838584310154123412796586778063812271153906621570285137521971021960530959218307991886498201589575184342580303440504846062102217697399536961197732359238800313994550551770981108395763360609963633183931903591516223617397234380705061367112993472774568867622467801632256760119328427665571695687827826571873838493681201153240736968328981410371550693281944536069810893464558226329022691350078079559841253340253038832684841713608804328025282224431102333145351207112556881443321149755319042459596642635304953856883376455877714566321010459843826619228544611953058938005448221038983904830427430856778384863249485626964948579412356219789833912993811157331306187856819498780278541832458536918854453924099397233715112519068680412249196546445812333752145039216499993695115570666156468859026445836214811974454966387139826431481155011150666359545855273312555419064560420050190770210940751949783124763076234138340015774421870616644215167885764960017886566312006120410250161527079179321169637218629521721162325953927550554976066185825550365955006510641075669411749437319124579760194166760646925316829992023981223082541245002374779656567172708453881508393562365229908525550879990712035244594210515144913232255724237913727364747056585521702079432582964882874600618506217801959757937040398862730809926477077521251134846415415003557724635004485969554579419712249242512391621626261904419838223677177451958163782818111699134676380648791454894933285382810684914712854203426872908277925839275768734276710370250235035947375482778984658495202055907357278318439469398409262596888518780851910043956241797658344421446416030781769617286653458623523961683904439794058496416282788405706706280600477366183462940220231622784367930229081778369483347797608330124247241024492984436620537112528376654260381263484390050227871697788044524944296734050567890986909202173621230086293836898852378615863504513194682369186890643082205601698661728580647324240011938914685478898603567535633972621199157458549130478469748055118446081366891594970085278596077502126182175699124579135551786464546327699905837950174359492926252928181875682546486198653354726804245304990464638868606872685241016147833001614715354064843227479369329311611082243303871263580439266109529488046166879889618184958162778225241808089011179627441815020610736252527711751550965959361612483606173680519777701339208008256042967750797174787173505893975057093202370662469919898669481909963688251216780902122127391523984430505023421765601657797068323646457857537012414254427289464925602774427106107830703323185640014838663637810393058817313556855777460682507556806647582311948873827430281090904829724933813851869541493824840137967957049996362287311281678268877228247476389249774214918333763116060285119474680319316471537123297758947422459366028363910817615955874906347937092593706006951958761630022817700299488551868228701375419285534453908499476445036947548104763304370924938422195827782395253303664962994486056645040892139068422806397748340624968891476140404867991989730341741083340087341569196684063104227966751567088861383639807454857653546810587882752825314200451339179698080479853741689506230455276038460828753093429473187167372490856338619265742627568327469737704594381115373699855588798056931064634680390932219372436380056027879444573725784369666071889762324428069919944880363411321280734548244897498487578880208676946207404456082280718759089975795114238709867468071628885792268588265987247451913527222356432846955784485386563293234234104825735662496071982085787933282645569215986294970967405691687522874442834882150726899607090337283123509047554690546388256988898371245950313087174523302329372702136301811478555073199691406286755279723226331621910522212635724538130816884448238534518643957321912973979117142565972972639792699576214679818296608282027966590001191094844510206156538540323901324615316891046276008487573732186827415800289121298896177158729149681601811342999841792803881253914218072738317995238789423496217399224528384279517321203105969066892639448289186992733711010715264978868396731179929017466425688723172186272100671002931875521745367370708929370005610268233321310520837901111176774652602626152932017981547357751209130805847937322498695238922451027525659316066600221581665583870420853861475029073739262196901167625198759266698750821540251642298103427982125441136046817749426387593780148857496181532913628328001878109087853041407364980318585304686145317512891205825682041363640706999567394027292479626377579423715181676039518326690764480732412454056985740051574862289449015896889255569665543986553795388142358634472728420608148698286538448364578069248573274558421852826165675849514933223224331550467819572220892320588636698510081697499697725251534747237447251501171474294585211668953716174941855690416192023470558735969389742634240245564407801721478124458575805305881698503720457338029446116383436959462335118309172496193307582032012726426292367404068407004768308285547647018544409592369401489392038559052052686798545036556848365483772685992441490648044138946688713280564041082400110605133140001256744890342722480725971986990558910039127753047165209268113055631756192468265337997128870197232008158108209467380434053015189647820576108513471789798582107458440849889761230291347273813439756901976135886540740653897327938841011140482792753096049723145598431344240552829474529197772273124564281242349756764946526638855269186237466432521876496194982665156446352725074490993973696558987288361861019252233479423256056158558143978266562006296249913063614051975134557635924112707828240469448974179532381356153068539959876977587393286726365385849905411308938749509637312725816602824385098524502972397094581721796652213311593309332134419675220248869839331196796675448064843609991125011344400096091604416869052025832921548987571133798705814808102115754864019744624687080205230451911092729057555357765980311331832077348776828077168479633743460231796244095745393863721499269803006439035831952173605878733351384128101786788079214864560120231445768777310002980154622220992134281972116778169758780636918873202228635836917065139687592903975594392965670141205778334418406092059019823658216393661872558342173695455211072437849205470458290177904533817443461300403591592405664761306399326103229054019925210776705057123900985821969251013350553073139455302222276560288444997235008646163479923737535020856464520848646858269887645293242565303143512168169257721094126698280733574102890379860254797286706807725691776349071335036161751590603272726970304893483404001899071974179410529431015997594445823569946339714556501598789367482203057362974105792568622089529365052989662556925727103386440810172543821559271552129499858993241826759129072961600935016163925872561916482648993153076944792866757111084955528979499582944473140847138173764831925768124394650682875339978347825203849169670117659251219567223791734250602846601216203369380862456834310447739580878329544633998867635501260924055511533531296206696898565814773085442418528121944807189879947709859637863208952711339052200224114574262412941966520278404519426504371580312005572315367498855283891856419273452071314775943999445263423298199130241547282720251343081017428338106209989613660284998536972324924798717763657545995406622927066171241728276154220546316681861024787497883047156995292681079794644281155304881410381005552097212743916467812187228374029497393405636739593904332646815473599985874815359540215845376524149047871752253000367471464188533823875873290081969817716237839577416535598898768743402918319434174045936440531182362105596683697789474443500270913998931499231595528241246089904036332103788159609269777726366550848249765269118478482266737215112026655066032501206337622444132187967188942637945051379407121441610017739978238317127880036042193730218940112969984667585931129878871080334387322686516083896370761567526429514484382456221865232540050996944544409662433342320048388247727870767489961464145185426806929719510081436309387411650545400979516992860958924200654895711173526532492547377862548842384277248056845853515667094874245036398647074463012641936981212604700850497321869032349547965612735784581465951918606323702478937355962420500549850246887639965904627541657396498262692694992200588027618237515304815459440150036679916052300059927342141977707222087459568665833012485110093804187084567000298674492970135220456723531289525146390033702942811188152679977640118059263977988227536138731469661828313353635000116007404770197813885073372638458018530721282273915099174695318732110679699827815250680960922325056396288856453854253178037502961652567335452041069203111321795743374031585284574403701416659775587304744311630089278120816648663648716760598145818772676525624669880799752553913653190990228530050754142745028717433349281707833348113315011637828078039489110177317974312411590366063144238055047431040797001011170205202370186052572693916325851318901982213629605538087514355759921992471355280613673361723091073104247627025503078460359373273851365836683875459659859832905779258801573252527128107861432646170100324295535458099300585814634683459478115368925118038640583438266748197728062657843186359183738855862651674059639473304501148777785212193107938155063777993878283010430606712378542040531882959618712503153454074581557972907195492174160183287616900530149847699700292136044419251575440972054834274870951032318914774477068238334121810541677071918370716708704744531098496072943178949402384135869341479157835657918516259363208495484127837207721531664693764044470766721764088180618680491049023062782493495681446967891552709417502891035569818905820516978899151697409070569273489521439349604306743979413497662863231896680719064310994938201243408834920818999599880356880363228970107811310219453569965639137309974853328377748799813337422982300699426433151946810454582480725961390475413482648133653212175947503978328522735520929241076420987440336997194730707428921752839364266643651136997960353127693045126468893842277410648457982792420037578967367423178737078126574758037598046131353942985528839690624490103133633310574818784847103184330827134852529043302735987240578571469078889056923681772644318578357019529396807525177973552028826770542580349340919545431507345188884726280794845701323323194534420929306181651190625795044949674695859676901637609852750003023855908129849766973039213844979624479942100502483607320141137576464156098608267681493723400753191088958797687701776673307987263276661956691721027131924518684189815956881648337192277468217826860954524073283327730778211605674006701095534786912789969563982990065478269457505146538069257886841466432728438325622321212556482565582883654402700116801400036014995666101989577954161125687528836818913317022471397176084918592754705035843716671662876802735563868442740088196373575836366152412036576949232501423550684440250438324144240803266273624532879061093383047751733964113299162799203282955622823654492240630240819977562334923332504115380684351179407730994174834266354128534157531357253264270004297874148294017284735987876887057486632750729738430200438280238401183609568225729039426194342499112597186619583525923779137408123200832278622165907645094049223423151297626414914764694485382802024670139505331534525343900592355999040466174284271555557629739471924334376794313523339909849141727965939850143241140691459786141853904004124695282562812449678480657334538266215032233821009642100256488929306557152275576940364862190206699404461404708209450197283230757911274938652030365720469070895738401412824180053143777709194434802995382885204242590744423948523922336269659196784299194536546984868330442504253050999661285888884337467905291164414863180252655265520849166270293456401743972255152500365134894305141875105682539111695164262681943390345961608278140461254375903023214780712287101077149071675985796913360870952592028188019348838583223571194660733025486237635928430725979935197873267846057251333133957032771217895028761465403006684513445406806502380624840674741432858065760453058849553841006138844511774226194215341582686663319999815686250226046733515715290800793852508416777352910539604470599818520659462956762717901158212337024955806803800721015035370160289572949808889141776584366331944080564326095239301433846181541422183956820322272345128415529640708845679721792973294407145748264571316142271314021233311901131160526293433145785474969648271375658820254844001519367609602808361373180730542450355629684869293392638329735917236764665418252256134495711968128410339245674467749773355672290302659949270862587718159831459238497115793761482495295832140048495516799383796443599650059168532979248997185512803166672611589036955958058493996633348806706529971812241977626316049142069483507540582160647589546709257696744664056838867594932095328725922037873082363418731796571008467955125715640987226944744271802189657182038357985939623449815681226318178878241353975366131551367504807156522210490866428714038970890716667964990539937695697647472037671829638662197249037467102530503102262525125238921317427979912148357860853526203022796708087483604027088372165297358129687394129898594690357762950814560627779203271085007802287755333606530020145932576112192828665236552299903938465264705708240411333259298630049160401471102059036709667117237850001670837017276518311593499492531011109380138391347334063827348614934816162728685465027111424022813049316902304078249894536527468945564760505734668235563858813841339724192496892162062328221025026206242469393769798274434893644519663390552433238364541369310982715769458281263586370177715279694263643315691589837230628070576032196004691032109493144899501767101593611754753825781137516096707507756792112140725485093344559980727764647507741077769929280853988984163745496872971296510170355724153768424289427363945738676599773806244363897231712196179645798879646956345436400073672658668873253114050285152238650955210450311383024586121123954983579413766574568778267582169587216599365923463366662903231974022190173747373532410667504744317913650958537431579512752320708958293371942650763357671226781021475485587726012012617958492825252777989392088259559420640510546136062578957503553419692856100202041958043883288233823831554610935382458880488877612306629471412490620978056984716662311439041876780952649931641777457717890705841965840977478841127843919226448611516072651910316121459078277999729232802356361841267176768147869538137696717755164512715632278582383786718420812274927448309023490924263672296672477522833277136135839991371020355286803085250521180696711908517412850665334127739967259811810735868388023268723123013310475106568160074977732990794625158949662529661212065643526802239475393178169086509759244524001626224931427996510804537563019420224736198569342698643683217071862179670875981506247794602246378586727479922582199592847369272895787001106323064665962884618885995634105588205047962661302106725435033763157717200120672722553072957105999521023239155246833205458097099889041689752297403184570941903362758932090172205576534545242055124529667481782760023537758776067538969409799211988089554749050837608828617342292299422408828523827762332327783250320949532915881124254675217117342165110218189153939471451770017300984847811410067864968471503568415250851305189466216529502320136028039372685895074937165333612151374542619822992125385491777019465750250060284563984432789689391101304011106636244604043741766604828557533220106260339516769239644223356460131391433532152944964462225332001483155534698384955405337266411225679981404142911884536591540418020951554140142074301027563324541013453687819737645069607279630865009655801342460503648033688144850944288866445966927953138404887364341041233139217059961183656661939172890831418858997639813149913348345616400282247553356854964238576690501586657402262737248533248194165328038113739888459153025745278315737401224732977140315736398144822306235950743245776196905382730453124465493021212862412964715047876616139220823822287517148620911968953553503247349075564360599576580455031068973621854748021756224083081891856630092110444047792340109626685474723728532931394457289825289022897434705325084265171246957035562796187745868494850024798114352504707832558287817566856443375132396466777872355684390036565306153790175284430347885960889345174851465492161736219133739907919210096173169116515227177586744715955698937293844870115501598086002350196890856493286730426427883397808683743811447865939165371878515708438092502556219682136824079901798741944286322615418565125468676175502958444908238426451161097335455545691442352069113147102222371380052491678134169563807363855139409744936415718393047710469836877348699542948644029832188482321081898383039046698960476407383683756237346522110168254742651890039198057121719359090938804785444485717578816386946937930069748555943674727531313444497299169139268548020956176179648473891690527960772682354413282419713437820952351056266773869086867655045887002812904301783716177418098593331539600996327481321716625279223443775221088380517654643749267547496170463147585280614329204236514403090556179862260457204476528110919810826783255097475210408820225835273135391606899291609058645192151583611253480100280189150353874367857212228896766800356863348499936065846819043117860013798163344913947213747787179733558696080141206537312687821745379756152098393204101121187491636211911042171972182610670361132050736324281963284509786734935214375008198201888789257384979472404979318838909149531175680282719142299368189733139868443836359699980148687598248498219735535502019349761008090380498267980790528459734068498184374116223382828962786486223685013002509422181444771763244880954116805296123895923297286744812262180928041655445820185602913347884145114677809165723292712265420779203019050994276554908106319444344478999948100065123415090174327900431564628080301249981798927397372973020518109790476861053479493780236727710799617268241899968352821236834699884234364143288537651922889775682953327829921291032817392910675655927581921508204535903248302524040517618267386681172853382913287999503680893851704083346864641633364646897549957716270890178193148458563731767165280645725816522951181585865914869435365586097712279633364831324765335368349702601375187861417306791620308555708868935925003310688081828327668750338128443792234493735902125887674828494474818824865226950632187727048958925886377427176799256959371246735423011713545279043953540407920186593271812054174545420946607436083131262556119276231450105908634418846433547524811403295682020722938212719309944108302046946306113625358966318334820945853840357847090346396387242562988803578307055179498222170597904845156464666365208816947025811802945430259815370261209274972622059924736941620611410508843871003731815372296333368618627375287204522148551142423604375739346190970286973781368342200275039141889148146234393229872468372515171273488721506836069126623156346100892586383091535200374225839464047771681943845775593073749656812295183241087503443748284224364668752788896132902774834335591334825502225095674818279743149429327103743954793716901194711962080240811184058711341878286998391755182901235206096950103002628270983388134743964576265228390244016163772773468626771966148410690956670713408082149581684497567475463212488415859905521873076408442853751433882094771487448744675277626083843153319496295526568283609189123272637209371582286841934564020680140358760552712737316052896205881348342066953771322119302647716585443213105800709209621647650645073554381463563235047516017562895410961661903065719860290554833034802277255594358700207887785934335165769232633214831331311457769118982916850638654191929686181042909107909264054807080652332951772186637643830311582457557220728348465952251329500082978439885758343348719178580328594281256785044569675592120203079859303325313732532273182964330331366460838788141978110569411278501291005140983787386940037735551604928173735585525802962283961915919990771601136359128398036551355590641677060048385070719418001576888181851327372164921689687493501526682190742636263525263877668770445780432997809928608636522885175102678114351831765254325805397834224430350394845181923507760886209973479289457532559429829301657169195151575649723939003848547771312341205438232989645425362293818641930512936295180634665457016874842104614993376464039643780367836539696613835819124311712436211892899825109769508834534019927265728140028136538529027396186890781557282072885675965402617198880884024800289794840532031429685707389315869087926233125303277573355138922270296950513182204927411788099912929195564992809938750423909959905347192488215801653584096948749750987488317257464875600860206922605362610260937422705931905819476984348436691553110221346902925043916817689766074805631184109784186581186070986388534336272399476076467952835806733700745155007529085777414137934466179173491363239049736656895028209833931536775658034928129655211756332381180978108187191789355500710158882230385111251976095604172620501630235725094694526958620018001577959430451574489496102170109569621121877535799575002815295094970299543077958405580361321756251170681120684360387468011647286328741323529295558630981607207692517272971101234778573993136492669154119589267565312570889625773692024835164913998046508743518690269193801246280555583571571416287185002257827157871624820907799133362409418957823649723221257367880202125046323336816572598491601674991738884426936447438826049769779754074898411440715945991341136067745814617831708042865612343534613226142588200917955694157616883260188079876871515276194043130727427887405144403625549911415856508254741159123060982198809821865024393296072905149650554194291931593683796460088345632670060137829644501501014827171389236348431049072185151207237789333762005197220582269252931492352513471163141218860276307938601755906147541283460160750147620366217602942665238125105998078768337088026874275905928258911033432798460622969705560166943882884670479604355249115219814626919910674364208691694298742525927477891123591867655159574656677272870598828157456334685649351003392629778438067991965707365517565700814069774951139456349254605196554664418796530821854202812379731678636734937622303912297917238880311289614987639733535060601773576000174054604912832360270276070441677600166057616198129798072024183047508616863446186562049815273000880239785453745713349113727667347901095343457929465607570363735615089474197958787737986961616720422867632328191086844718640750976411860344325861099192304183403285873589920574901384998130781575026384179990722618810353876968893224842097943432811153829320156568703800732274126410358026844621178688873303967711368751745859900853063795756437352409670822536187154893242681560410252088518830004993510181846440391671025906664782986730019526220659034327725293681594211660864025163539925140709930737255482296879513134291866136779241033189696156040542463141441208781427800476189089248308375436864346218761607231128928323943388822025178628198790432614813871495016965943188786730532522555030022470103520284461787340028115297518086155311607693835042955934320161140863090270857274680878666568631956327643869359582595587956406830495421433925897939927119081799053842172032891743739928668781502359287065488085674479935778110628951396778029361433907911528550525243748668605186632943021204487937171921825451833442841553017997228947164403341237546702984039456129674109411016021500818433038058837752152837592695646267427506816937590806797449995741127382321940379476408377344568526777537647170711823675189810155001427140811468815889864166911175763685368260766689303232318615045499215898693089259973492744061823818072892513796910407175184321407896576770259068516648051984117752826520582656036405094980247258294693391052627132773392518014976523202480936369848352591513404375506050076481442035927096106831034517668013751261000145104266041445603683319774815183874932331963783296746401260463739481099116429739386386914096578885681468377140961612449375234850763817706509567173714557742871082577437218017484180845117719223885793136977589130394142700578670377388945760067615513198646142507783173949203461548392887343571871331179362582465856128364795673108727122601782941363031501974718887173290862119999187406845761780026897865442321995280229689644112954160106707591559497148865186212545653842009384768721832838536184647951523611532829977087393263989143690402298232156725333904983087966618956214009112265525117806982892463383049205604488536374869079658075363496141530324023651786009787441193161882432101121133217396669290369348394047134494512856323037969141014061516699187780430057383226626462246936626573255571006261669249925653100721384113122930243618505036463514427893635536028835466340869376610819564384728846642628429520193923189059880166935715677237498814712291742283785260701411879907606811601994428089649389769680884430615992076108682230703506343967800270254253805708789412829128712350736426822461817506537162875818142523977214054235231964404035098555255926569745567919830590709215412955026663959370974621802904886099141277390567911138107967448765711563140613224513561579182834589260976917555232063050421223096260985625874249832093578934867129010509077543948139785913981164605214208358314862120373137573962071109938033399976651511925972419258747883715150763150125242707300690792079138008575964157574908238073785234259298956606798973237221515918715406977146985239052799625348183486712234273810949398704750054985043840103731310899880391253303798022418818081064394636939558610526325595918487856632158907122313330920971074767282530694455257036576233482141796872741308653058679105823131764461238854306939902692058765628016199737002095653168092757645948071940739523105130166832694481217195180793948349566151880363777822302766038649670844352263694027845416084818529141555261988003349544416486249077244672579009137573970079270438859796622955996404295750279677108948065535301596270615106337502683010003140879188040902081960513139341143769358233975986663413355461766488003660025236799710257359890971322429236635273134974795131799703290714794909986321496839469037010106930191693101384219609344359685355598971732044864646566158857035351112917449908309634267426480048258291599457296953860994899000533965513046230713910764887764018746589224000944614277793576752391897894282348739147591515786806785055703704278570662210359415618142665940912928065445229580778689416131524511398236090599937420667019908250686867529863546007350989475303261381923890356529866655495073730185943824209055083427336909507183339501762484292262142063274334589914908223749776131679243374676518854490926609220633671887512932813634379456483943841764786471847707872164428293958512186565180049912040604238224687325363022468766668366316053699983852191648004350204327696851201613767065545050274725058362250299324095505022747765169721159692279472734805713985753644426481388548613171608548126824554499685703976765076681893235080849460451584139607476913130471450265066599679816332305047265112292676506368062865302428678286605897176676108537870594924272802205469836297867863527270608202630116799345392437056079161096480334914127161492255525730490449888110318833992124709071603765771159999813004491348150272431065732515243783096441821051924044944233238163061506467118638632399503232351924977093111654029135483360908227971003239727869639515767856605243318806226661451643128649671174773934717622821939768086557530317930081032415057021749860562599399553045642071038576553201405239876161713057783077641948730738024690930322588175026387092641598867122861355614179068612476847005501258666742942074529029973217183755803570734189036194170691320672942562907920731180104533510242160579590709411202291401258785833001205236786850785782886972717103435864520674747191371894991182403598458212475587574126348488176267352328766533383653558277837540043178749805252869191347013090799302251953258803007983792927895227660693171544955216883631321385745319046072049353248495267394264422346990255750182593180999771727961889268421025294143394983983250514842591414597138631225824455615232558106608342874595413731560499581132978234080837494743543332918212444885261790110814056130591975154331696770658733445024661809396086531191691938197633477329049344857124730645988770213074912636155464787115688730898503100407102641477874941431479163710610287516369328660969749779309219719439065709778020922642499575517659940998685355706773859689373767852078522184405667501542712619251593342320949048596097468200519908365705869544395459560493849051142736804681833701024304388587431096497601925518162125166695310958816635567131169420346237654337326299776180565027852797815555549825287009512966807177145373652710841206666403950518217172130878953620768365734781517957646100329597835608689429016419501147103911362188682380693250132040132535146667045056686113257133738922901469283885791296223914739142264895296712305333093295787467525333695149280142093614786455804284169610711905604574678275129963730923904099544704332006886003724907388632583277783110067810890678975024287866137272927608443561133587965795333282405772716014183143416694659502515104625162628492603360387462648179299615003329595124481232470695443758175358129218646833615944022617789295001384587175955466406236527124180134116796272591772042480115032557005275457141822770421843555124819596027312501143526988193289239146261015480628020369289196559000151133285702532677539852715978280773952352133867750088707869670910176213223924524851619654602167401327698333097594675140054701069976545308331963517184587227470729165704997080030072468433610373512028802830044496608539007515432031637169247931516483756779298932655640724521736209404648223626061797585190222523949286799083256225438518545843627404742146442128047627442920487522382670094891389878399338900528253726591037693690930986553685299218109972493006735534545832611657739196113844396672070938506090498409845200879902642553742895512098172107697869115979870338072710478557496478908019322266872446942034039291549615595980135351429967913783551961057104326298929765697567538535929432341898068555832679946447623619630212938199957932541048154505531977900239732048052159461528567825288662000146500766535207644757911030473862384603904913608848501236420539346411071877607857274803438295726042196295670861188029026275158364245233804670254737327837438226959297026412672675680663650211197071301770852684163784053312458282635094146162250365731144091161267548151390393126109715816532826412191199093624360311426772672639664670940740133271351283830959117352210312665672475226412620074615489603796936655414745015651675680534867252888508809859185660053551751209508639609732233979659618151640962378712745749304614778249411109792213619715302317770462503434906854885510922573069118822013413457605693926697963152483719197624108835111161325035428758896247898647871057256030292889860696985542434167235566038061021310298581748333682464139173744459896196661074196624085971172012059314406422700643771036588943602410559842211612321805586200413608647115172258240241572237273871802843054390792167621334400052275969476843163062649943082587120121938639231919658843123328608179419642142872250871633323514875794253306519789911855560776140938432749985581607842345980028885400012333319008045747532773674244429468690953663390736402385926562054285333224936640538746095797474749830391231990622616340351549890378697317546954445208745512547557189492165721342458867699671962109498939880880377413989273195499947102289360787061938413358252659860037727906120911964101000563627373459823912982693961875545990374716677995556132180711541667807837794482549998411610006645387446722743275013733742994395475423372888835822850535715815189313904264660355267175798710376096595705095997383960808137663047853685609674364967823925897645000141502934833310136817570607627370986756468199861820436314557437034058470771333109654823367273328246569898996646411769491192946188282091324983582228063164050329818861942981282723222696661751038295407880710059909674843388351414602189347449055446453406725798915745815627567167811697517228740273576077601972505266402512368135300214432406504483625476583441877074134799730614333215576680394671099913618786911517263150432939459597463450783118472272868687353088077067302621757481510288825578471782648786641667943007049418686265570032055502538908213812042420093241692537838282258879608017216136361813019950957090753531549183378557662052909540633379862377071298439455729856280357627582442258386499738983291582227028307492487849016441688391862139753091169418906425749042536998063844904386019405339184969934625956217977307102207366715354853507933139304840294932866699989746847688994923903680095429894055454345067085713722152195910611772788863177401373608858840240093523371463370353687855014519327704462906263726038671701071429203724130181971674553101367398508244204830046221611143670759976729216861229561503309710607508481292172720853219906134032553581910139947733772470369138847712388174044056926943835922099585817886542554898618181745186273014573991770691884190566825604096827755424634053431698027433640091660096435575247081945836037548934253831819080157832423034794375959272415095427326183130102809672259893017423671518389246018822399404679955351455093473539015343542999167864488352469785211538353258691957423031389298339578809911550906528098623952424504336924506390398402200430361643259889160814753223470378625980834946587862740425381514454148170142561645779714460492408590373808236922552313230328266520402895226526613077705113756597822800521635058284496019767328168151223435630589174655381599094672704283031973075844805783515786424653889641697903602995453863218381895002995228194920980474175738125210611686954863437296447255693668578600810243179676927953613044210447602728623921707789775321414184712036914664745145986945345014162202215037705050492331355860951281103865562891327588625605012219320682553963100209308460827844757985841361148594815073586219129813906086227867274411410573193621805282436878287706424837513662957343745231315571620892983671238880744288150952676994412428073696587257989005984041025001480881302934818366705965485719264173278473714922486540428027759953002685464565848499792689387367597680147045508236232217667301908991330002716685120203962697512853681360704032866894825567546274718006977414227918164599063225691764627491420547905172379198260317036281811769457066446604286052161528538198910831297783478115171055061194541723199863911478314621813650209127235931880691627652695380294218656134286247554424249580363708595961352013602417653348397295034219305155431529548914978133730576950478501561615280303509980448408880316289417251571216053766683096164728046852144850736901946382415056494953915265632889124645636370351228922362346353547890601558818038956003953554129271022915289729210060254836754767334170398340427879890930671188391991413737789203151891675348436741104880498829936478478088489799929555771977300833607538417684962928347038484904162511900874515820825989771635476210915166712348693602419695366213651102408074270014979487955645960718245602887099860507955164660353963229509290097370814771151385143481377331485331668349066371585757157610153517055160906199278777580179770525140261986077676418131616825563517803581463811119012975530563690513474480513639224826601516266145854370590069576567413877754315069092704708249761270553924781698319777253925219864542805004235124223860283208790597149308031438854270886949312871621182299275861734561409480062732613631828521258328780249166506687912966117493696266408176966510039122280592451904326184496009048082931764219629904227916211923450675110616831223957896396654579407390305432474374820435982263976835007950669251012748496855549373540738404017383793439591779770728549124445848900072274111210346180350478780527285260065836676586543857926666977361698874363860937328608620759697845468900413551833525685610849479281244663642126692645185617911745601771832299254434406950993502543368610003548170889427641224956518856388306514990234268295203283153487933621265010972447692231978696039615611955410025048883909298633630630667358108998664802779277289300876088005342640139279363334181046126854206769659135617066163285124957418031985681463705149717007236361383677089797778018562957625826577837642293167540741467856139840806857403195282144415340588559936459935654819937857688176575657678669377956135469156725585606914228374809937559376922602954405263470166531459812320493282176337888990623062126583960501652845089525447768684023894329666016301470185542644801464416291566671883447506611020321944001380093043962441548650803132415799768514835695601976273682040816980171619843372449884162898813602926665295363632132722347540609462823412638579631531071685637488555999713171484923441044316470421202036029479715674661174931266382962012141925328625510472506614372653172018547605716902281450005514977995717975940413659144728501764897882836845544215546173086373368243122771430936745999190024400055428806974726251302688453195770034679600939320917626345849232574397904509517804588535520012219814659875002259642955531198054756773479043296446716921960514430228822986214126471145263495449675252375549426358644689295322174103076588216997856254215709541847285479442732107516216944494654044933167517034401807599922493277707989881048531100377558864488331845722423356737770072832895889245459601338936235022271123100319569627812154831599897395389725167698806169516703844617930818134530393679965924316616527914077906429324396392300605719255226672047485885702044830357507686441571035528662090537470632282471020850002010673596963887238023862450743595982449178138638565388162995283054279580215617869784105401829139354285432297364840849509236885311000284418555831111518793612759450078656808875859734489510298066284460570424987110130549890895381103673201451805411130124876363426206091030344054034903200692575161952842937954392754271900622701022775463490027264543903555281980998222201976223574181521888829472818148773071808694261223551727635865763756076059860362452543708330361532738801123918906752120204874226283960128915108435274817309309413553547182837491409641216031209206706148098128242082575275417090682883805637355136294047950895490125444189389652533105720104730736601007029459669373239747356261685750917371811597017307423233214550500130026647060029025353381364856231124309285476283152989368241915201027575318359011667629341749701109022057791208851439068022493164332623326537454945956926629745839496887291944953817967348101228095767065853115493204600973564367111494488455437537827917850493784095136181752017854721948259821753269542529935392417070767926786150706098675223723986522026025034050088269857433770641359373709641110522802230088465726362390316954077343441207119980913052905725432971385300761738415572203527611289435129957061276423951132768096653565840295288684218483546778050848475709690724367621724008782228960621542080931275330099470623907551861148460904235276208968346116367731331322312556625851422276836892341440318759628621633149225163172649753699303720221437945960628041290371849419721680691112379155305331632163907216218375015079128995894065992542358506606837812557834382442238334436738482762229984366176730309764265709566575024117283982956209525365715261467223340053903745304909849568022299056471207315065493894194533531734266908440694883692524544096590279428466349144379445424017161524757390541185923051779374610932226261653220299707958939828032121953143048074315749933514882418577010915564963784914919282899766857980277240765960323030858010795726823345236361072412630701534957494460932576066647378267459006512110313715948857100123381606160520033192444942888036239689189682491003781391625544764347318381568690137503787969975194430364174296524637726395163457530240436043235658961536606158326769650151353863347913246217312555811552760626318662752081281612110456954680394240567282149294689033819832593416245715021446426434688200216649990120977425881127396999447240077381650024824900605476712830798428304255542555529132158947227845081032629212716961899777715235975154873991907740178980972563865470119277512637518797314247725561735664215062231880150364183495567240918742853450641090243306264697410909172324003517824321634581709752661186422802735766492022308801223890177932732765569580501082051138108367036316203666251572343607071497407944056485227453733115057828047803497632772411406855676308761485342636920566944222664175382209831555021484617024713860179382345851600774351038120607113763424153737724081163267770117057836015165457203451252721667644172537491178138862564425973555321116353452005397033305895554966780509373172232143902680798120518848983924812404787967232041136165801061469477771822382154012036485794013092455739819790990130480415378403637788629052097810963271269360969701323841809038376055129555935551872773276993293257540701023430095268141121459685729037057411774903695441660916588388799318106691400861997365293014498967941061988640792933396443081828569731679918213178350757394230874154724336868812292303992799092353830592130701653853981571087156910814269010047025749711624760348666264510617836822512669676610653738564977917965434352563144167890919025128029865005130769604956900131277036347057874862910606755312213904396979792786297254184194067334428521594917696149488089554199281654334584251132413376886944181483695462515863740709811248938739918411146678799904624298739990010782802491256681974564644387199456202400271377801158481227474551139610027274678044284632943780023328957839689782353875785871198817114850115960906104394496410767785232602869938097452708556607343831543658262210002329961896984324994971320782126517482816447308684627359610803065511727446641991800537509557514636938135349333349434754320692626949050240096578403371328325863368376760508734413516201798987229343122712753776590989712971152458357814060200940167506842295397696022300042253187704689106666326087211594894647514774196871837697705464843343519387478491601995844839933264056662047799659159678097043786862160697422547263007918932353771749882884591020218009284037914666929741092864732255675495556835168565069241106822555525927296720233640089196550469382779799180082926183315063173513934227487593278591690113996599517433431924198204292343442463371495044302172341515536499536954133888616332007143536326855145337789079077125125462319903625302561987216859561656320488748833449003098160786579782776451002874327644325110493589140973610268400819052956269630316289637253086472755561862561682338979817905490152682911553018680723673734123624298244886044850913490541150344642497718928640257338739794902024281976600216498790815062123118502758677871168441157760310692427020993572766348490106851684699363525648741886624431565521969147172363147450750506983149004788221676509837939035692039156124946988082335391125264196226097157217397262516581025926163689501096559509211628349068666789491716215224054165326553666925114341156752634748802335443072877924061817316467307861085939612631372854772627867150343995548668157218866347466025355552109093726126305167798756802095727654606453037186597394230062003194887783624069723412999227563510286304692347236181837862715850687104177104083548304825772731610840829928640905793692119643882057856422052985699851154001911800630373026115526094917172657358135187340909002188423287694631732470305713670205408084267315210453614537788405128958781184993359276310387454689851857237144660577623106832718977865901024659648020003568412259518203609878240947754735319990039503781758533863606393924129909926213557665303044653408214690335898851618347005824813339032545100265952082465201982842174879831964861255253250859562516814720884809392748862219629982040090629283162249056408533579007583114450130834089139529849725018002741139039276131607717986570114288508303379898094256740417704441275959854512632171230915415645087946187888853158785650811927811924598434605143162252625173269440111591457893221141451356032982789503319329891078825771445158271394535783894905413643064115259621668527463175291875861590750880867497378834966422375267314958167903895601589516943166582057685695647084433074652890133742929086421243301302536154375075773984570885388568791670154101946819533486996595569652676420515579482177665387519155995564204260948470054658161067791505386626605250836781108287630117813077522433511445095660305343188544239874178688724649502735856248262340072939074149699769166181839948296015703534730515033437827778742347899199646094442886631938998008104870655856002160815390717832953696212504390660978631278118319496781076442768054341255796716672812477153341594156023907565723339008381008760224827561439878479757990453508871082362815123393161567190564231774015578041670793290873055338193896809039962820810174952153408943918182686062883508708328736536551525807435774783152996571162489722195032325238213016022519933799017392466864686509911347615325999877477357377993449396638051758592126761110197071947792983671687236356032728266705559859509167099788830429332345973288193374640825487610934202877927410522236365157817447535615267761819171140635739973766294159337515991961875400350255291766858417469349618598679677370647277613612604797956867527462507219490603839612342580108456334889835220714861910632920542363190400754754237198044314938739843227173463229798543950288067847006231763210522367468123941378278354989869475643317133563761940830096089342115113347917561327778440908077000049494340720590431525629501340342685500908738756079487686515673831269293439730894077740295502433649644880094712359820825697139055915717603927385839786817936230143792862990339770149766237214369168898536203765750239795375600095304248755962913706822023341592585297763687822353487384714632507835520893977767398945292351965909433917543385633966073236441929218151797617579263157045800441748549479258187404246035267135628114627401583158495190050588749987914306370622794670688729782450666670175028461126610756903305673165463859254663756256342061828741374050255678195318616328738083426042145932630105800874831533238124006605800784398904037723683941564762872359901370525005635500742086980612821821066864984829728699587033087821063485133427530928095086658058262947004647162920813666605832605386346133845306231845423233867720783533346810400461827900033334993444117216922050847268903447141060380991151151910925111044702395833563480159718443453790689727143161344130212361909157194768867589710934290806168039233491304616021919542986931200079087898721964856647986994467224699561481594808861139751599735130102233398643972355662901398708712685027532856180105364603343713886572307628800016725433539217399085883866555850412146911966093132647770359506508488414837126087487894603858793451291937250465058763480793071944570281181020535384698585482671007809038999436907459997471806979659315380068715648833225396003667633033478680246212049986787871070920643879503046636142741429389592217405630992056836297211560762404720432629540382736626531657841428931898240122186126552592421972365351186664618967217532925708416370170885013986313465976959676786352451186568825419905337275967951564984524852762237189226000263210271975131240950563361025934563728508371623885106325491233699603035199884141802337932156757027378213019009969823108958413748916791152460718969187957200706337883615661830738080652868795521396990354287932190934005249071286622022131524946554025605915193585751449559188818721898125300845234921313217671727487756399145725396550948481276662546751796606042459248835344125318575167848669440605903000006035010526680401079600834637520067281601080734969537536981981175236182594124115955023286150514073784875893813502193201884239970731582947561900136156005185972671692118935085900583451114947251585708025708094938376194390069863599907123228015104723549169960077751862480411542323230233705708799349031466899196092192225303066948452108984970048762050774204184768169826287419448158530811913482813395772891437244808661745020529408336182487810753868782050024339697480720280267278346799609924003514017360769889053376790461084053864958103548179090548040703133579736246193683327343141699119415625798244104728392271330252659915200995492434596735667973397083447150809001202971692786837525746554790890326195969484478137838085870554963627281740418583556097110324288131251964565489440778880666683214199408429924222595087180862885736945072407006974415943157671377843017518726161524194488701982486296428650011097157077440938851260216246100642948334058844877848420487850267135182165208798314487773932626611385921148489218117420011091015701508502311426462873178644378336143950928990700846944924386442759822310179657610439420366231914745879311811515357518014591898653139713726141771097043825695637657099694187478058743221824311765667867988373980704270987181001183128166771594918966978416266071636956298603559824524687207483634744312689579037874618078522867312413702539179914508729963527222714844937426493709201671329392943115599743567625909218017269095533406198359997797117354304721035557733463243776181859579491088802461748344928947377789510049693647345645615256242258741729999222976302009563194770409186215012725939083717309342369393941967363378003202717554966815416348665992637857194480138352421603572954558066221066475987259118526030246856708633324287867639727040699997624156768433762435861929354254489733108514248946410314737435262845532455690193769480440703168491481191886958490343370015997697657059598451548276180437981505300255633961473932733421619581044452585874891880121866353194290040057940932041261975011077035658352155284930210624884073403568551350655370099179247403414223309943347685553192799682634887872921084183208217570737423820619424029192599029718831232508376566046009077545576012644523187731658264495247673765295038824171457527369439285406713706353853456962948078305669636161650787280824105598583261523889509723420732361045131692301119089609061900824130238570448056918365655293640623432277317177512050400818878704858225912257058893021100620759538979651032988927013761407973535122162376669403691965736325178427886389155871349810856068750538383206766601633089146785483806955019142078801187714858830360659264005746590171556826584388607497558082780232642214148889062862313070737073442317491946967745579340877718348452555502389826977732752304090126578219403607873364357007533908584351351448469888023129649680878387800118412676395231448106783651957767201293712182754995998003497238233307532426998218798451796056474173436787978499258883486255894367534429253483359876291655157906655640881473806357208315859400701371439572976100100478399417565190817511791158893219895184745504849445436179207485731099504253843877658847691548033530044339399877607663459040098658370325080585832155463221096216745195239870415411486876948513794496651729539439790314045432819352463277866499668478375829660713559347699783424605771818017851410337283737473283926030570680163569243477341898503343300947494081328720967105678311492921428532819254756609322400843886937823606198800006237435313948654081971125365002597209013547190788084574599520142927337876116341755415386871980884993465833884166752771296479175989445688772269500451676762802679181702280865009114610454397636096056860340478192504660893571757114349287755815950638478562782137200402571538414318047716910443674092905260599475401779975168918039354898442181395381466865843109834026544308879688293006939424228837020383846329374543828901347655050857240342701860894694200452073532540110165707057917428180441619937505909154511567343395686132318635291407567696952764356571293621256546476388702072175969098759302631743995064193979518014838615088983197585779220102032360708141077902291713782728140091426165899863540958367737803688647149738924026328972283862062585621046403315025838485297099683451060301171255566784234735494992816369002409234140846271062892718183881286973003265306446027942616592428860702970289416509701942285604928609538626220325630795641714027112602714182995599492527670538888455395701147980397129498218074637941088947731275137432819098374490847592395963101924125228816858810280755597480354302443951021780348771755197580373646097390547991997168248792823997472737893775450543428891643307313719141245713547340111487770446656072238106477605288206351920801642001971074735865795713637181698183170663983688299632641562344070911091119800572254183724025914883707754197313548263478348266480899891514103999138456562976783294457455236191425306422676084712265214280648141698490872814905225573271675404019137102036138751389599476813545727918226152630227142806730601570059187855607918216736554774245054098299208487270600812133241961248913825070897503586398224249698264571630364404288714458860309604998483375255075889979758193236133956227983281396779795895423708180883581225676523189235571399200242608286525740643498329325856647930562842687615008431383354752471670983843288920782779499473312664011582147987303776829548753961017200041006983125788687224530889614928271385953055935292382393713801224979556019052702902554388513028359734706716775200944286456275076387839517712742689066061059213917862167867897098883438691835200503955400877637905904908357934810020325868512352854686956852071115054340432926958485357801787251501660738186849043162666492039442053268461393694873444807068492265195723283538007496788534379567289446590149795325199074533983147557354369308120689202192969483766360134643686141320622941680521010909258938625576071664879401137091054950914142513092627316310077611817479230830441009230461735169104476566895474228399671176148423789057400782479423013315640039228083907773426872562019134393807829215946739760868463153469075854821144346334254411423793907965196810553923615791818091674212573272396542179178516873527895618720549618827285645584095693646762303956668664301623041291288144249969471701449666397022194487083063236441250085980106845033856354238721367157374667523997129716161695462425579069161691766427053693834358205711425314017041911648257611907881128877943519189707504126163210605416922929647114986004233064274294201117385193328284910030808000977499819928245793195789381866149015852970655167286564778744634476695476586983145684132384686812765884087386939669946112152668967530740823577833776573770327163846696272691914133647701810895756779869055236049874320498618062831532793303826805900767434604389565613739592979129642402966439086888070312685792389776944486223346529801982702788091077380326651520146061525082433611373148458593406390716230326415008857881868067366054273909219513193504205632080531587200420278270014482285332179905648430113828438010935335522998164296849963364737522636205571453341168417401460726606317576094915111174984217969600728027190626550441415136641599985354027420149826012369204433187830415568683550633363505354625644207619464873800214609301952405159228599491871103250006825056323180771233520784935463248577066372732738934280368978215584197853148055884616060053852012792064447138824894813851796839024624928947403231453040197515286319029401909638617551757511252350990582253067786753411978448773737245544887336852759761798814417331563262366360539844992365373048567919907975909163715823380869572412799422044232929966309770180737329644316983558541310138475375157010918421537506931759495002565465375273490345092000124395863417669367704300892198300772258722121034600878847375959909301797044486190481906947270008079453529938867004156583635208198258519893026725066868967286689041945004818089518102226152670543936056874246601152451067508905023658729138468062828311745619302343251187723789233026210316231490703036612060560466346466063658439415704779557273564244370644579163550273537304973370647017869424478255399388829809368457668046351614442654982781039678619808656971077972555788654670642853539131245557942905282187861325808849882012451733725276157061792811497020992677192121540349874206291868140047330060367862639536036017216820296666208924769674218144436515102755712669471648638557354175001239535812557908237185374561398524380686227447249197134292322102605133455533441626869474281235227251967532996234504318784542100537318779911738379176184123563002690046991780748236642644136378085805892264890040639478489756743292793455249237178227634721587189758581470504752875804928816443179731469331000678082075875308844594229892741552208560887450095513608515533092938740016456777891381747516698648412463012606264146839292886629231189935895678651704018824515348295305672478894132470193499904992674100532832138759737782989455641040688414336482437598039422446224601738805924215874923219325965979015831850190883252033531969181089006240319956502711910244636169852853652476048129666505377562381068696799376654310220375796650400075152496529942876925915834604904599291752938048734795698635565000527639362508402092799555427624428882289544909364581618956346568990855592425631713100192062485922893736096833372968858828452501100135187271626995163622602824167595810326416910717958644733576227706566448266793196677159553808651678225245091474981909085731795324902318878468726112804640356773671798235544468086484983747923849712150990064872849031849977486269143120146481662929155876879457411387607518228165753571524118427891585822199759494846952360329067915847385940995893551462383567425127356742320791781249423596130617792688458449344713070924272697592670705809106991812396289708380656800738743202387768229313666668536036834105508034517127134131553758169122751752661594491593005656413583420363111957423996762820393083073062783975527565766563938591359366689388165422910566383122861320476138406875014863996847873015780621776393364497515769756747335945578640576177219700656368632264571696444050696542934736751296325754988957481658352890268809782701991785974794838047879716713587718171073558088126850500044585903261206523917997444802596216953269536969938287977406127997098821559553961824470365540024007544676672603617254488220085780109903333354701418542050936137627283774396823660633105371396584773035353883583668619816932530060557871881247197517151589527660761023639960549254304325719750497120856712208321886994515725341588114039150798560640017508320435965388416568423303129377271025037080076374455081199083786026837989632409599909827392195697064197049404245314262006838896557101753248268225828595971176634238380933160703306341466128836113633948020859650683865773169010854687502398068854123168145906265738996276575706007010928379889196184783708664432509602765476737034052510229862293267237844947504109160070175272197306881114423166134128786819217269977697171122812014394788546049635140092634753326966065457371896645578027861637177164496951741217938135392683620179714906007727946053619509223386233049550505554815970829924367353151760066386526531175381597516844245712286138088571119625603410741140162671971321453775225196787750513233867943663694534001163600680354362371185262171654125734664966803385586684224362972094250382573697333262827723718798189697343961194224408567747502550543891559682856799314050889971952399335522942444492661806252941611404009723111252074843775122231112978407848762406118833433796702470724083472649573795404035489255395161307458617782063068919158720629903240466998330960537348301783947416958847560345379707973043648913863848833780354111423906098469311403799248560118005846898150073837162730101106071110150544617042642062952849867454607574535768893579096614258841558208795446812349507127743877858133492170090620915968598516449817551398624322907396334096632594302430184043179377061468013842400137376609323888408936727561772918453530465938787131408225700499918106207109779101943676938273341705481494676029356323851657735207351003365050530149261917621139132103160816434529729840087340101575626819836349825241158012926668507592351559543548331020747889307013190065823629121122341992333153594430275725124450966546841913639712574197148055721383697473012180927586166161052043511805371691946056210493135805232234853638013026569498326255433492194806793071479569232649396970167973470179879171316382271230510822491809885258407409987328405653738610673723576026923445298177726745651129477540033401261986806316879300943576635022211811502873647056830452972332602481020856651532046479969931295723254417512326249891328371244700276395533716187165711822995066356439059872439970917297723824091760833301544883642422236644043827852664310565400953730010299509230555941626951927143459121222550628022193712914838130591877210995063299919282857237474048208567363714470685598523961430504895054871864261378097064450037651698471446521599861016154250218274552224173434868253510551205707538958219435527141186873735282387094965025416674509141200958618562947506800051675062994608747784207722390924338201759002353469115755421605658485362433304128105642167451089600944642183640040755564330929641785556775144574125642634338959074597690616121535374221694012829366028849701659162345670678231777147262170552923276596929521687815503060416609309059224603728244727996305140363876118251788839571350827348975836499674325117031302730513063067093726153119312710616626889450002761143645768379003350935964473863886515874252353407725650984093716787722147629693957913576956850089623775126942033397982913279603455597685066671992065467819146603243572583054014302598050593565001855523517806584709060321583374772651982057632287456490008903903416791449534138435947305439064402874857657944338267974713403779295804770041846684413481684868707218252466370511096169258090739271177484019571010927020955914504668846874596366305937656995984308674433717188639038373213857163612977771082325241167295194525427427705981896940196795566207645185037591979785632895181405926631163271520681541456481536305290819977345080343571715004447128532270017962378931955388936008621131555705451325989006546233278709634066423461371975400313275176492896172994555134433434481738523157637990094490416270426212748667777161223037067253593419818046439937995719342105283229120976616278174084501798333297187402204182510519363830346015986689051041004311992896479181060841695873992921668755491735316266060996793859143063216687155226565761418675156038603131576754499150943487602044928489623864116217020824383023953920223114434750805012799181299480748033070711951042989624184008130598889769270205199853072765466810566028582492119746072979084548042907139728983979642479213333871057023076582973593353899208196068737910927826503227733273054585930539721686766155032354137817734536082629977978727014495375040249921114247300034446871799901144414983407257472857813114804614047439190828599107807826868127272673187227141050277540671299810585106701808594255417051506655688735698017509577949813879259492394791744007393054786039506667391919844969342178474065340727606389930966942439394043456165707807845177479381251080470358384366871573391023658069071557530354955109827886511196978407702072382254423943610915813868505721831744461768441691849669758159803593963398265817108965414586137237765759319951151878010295888077118432517763328804555391650669539513851759066564916073001695862294357955833473815663179057046804709883344188319758179623379521662618509654305151024178573521799713750537869366387729264670447533720019977453143247867930134420973413193875955622354028872531915166806393640560944411989146018345158702358477052049598243515890739068365406404880494251052360970199446553278562288527546903850723719484865308462928049597726110509440041937041209234639913793402080133548075131637460560149719624626145055195990610784219878157457160096966727692432025173549810589448980312811419510151590934464917736153081258979146178683205245987333885638320629962722357586189796974616318456290251174805848480393856279028532130833281608532308044709287180808344126581614345639945713504538758483514693880632016389130498463784395935283979577085484998323939544749558495455211198519863521299494734815290245769700765665389796210553375453291334480198751670580997981507266885676934860421098636406373669693600447068064529250007705396395215112677730009262886482437876016876234936501520521761392318872951611809182618243628907052719273492314783542837295116962879013323470229454192879043434786068348490388261893674997766995221168761073338228177428825136262714901449458921523306185108965606608330355263811901695089722640328587068749104028855496803