PREME/G/MU313031
01654450745863308966817715642687007872695965154386158603508768132721769382947124349540326238831755887597281541402609522962062550526944664569771760793208636313033592979137016810297773760520959400300564970316915293775750872884259434988363728292943391120666465084547804751637297456629192330836480823923890325684261118257125454599698961188632102496120321891669539799551236856452075285988401379389738931948635949145658764308976386485938757686250264448988047012311299012723922056694244152339125884134490294823698603022786377587828781998464687294639477165724265119318796428366412038080172253257050102676704979586388391793296701489225075509587339543711852594228183964559323159468842700554411378600195572872348237887935030253668706161241086925441630858133628211039460704776601292002745622706548619700700607562154097296861713075933867711967877740076826207945824241129658655020039081276909940819762732877554557622118816723144899197149805851181647543240957690942572115910952212569910490031212820383315725343532601019193174408020564497156364162659440601602377457861123506183240393736883380985927679642962377825200894248921536896744997057348818778465003230980705126598456883454503225780551775690954902646571507520725686381254258653052037624515846745048010367237198812737204339874059431362038789011749362123537002911741388633320709853060820823697026697965788033492442991633770062966588717538450725689427632561755926793415164649553018557495938630794969626206082239415849331095253193830017158304227857350862051200379925264324840363607867743032976376622640271907347322274930362677860697303266216989856569880984174787386120699997520710374828557942954067855530165664650367612065287603192252017554957351438606393356287920888425256909797563544490603626791909966478710271030214100384001160370412503215326336958376674376254404229586163541454212595181466919489014735605285751978708864752990211146165359352279552502578721512027488677319011770429469311660061083701667942019251623178706927283473276401076708589047708478653494978386496980770418394531988386683585247923238126663630380661741879667089525668554900667726768297853020488106459988277267827672774242945337737150971401586875047832340635197420733080357430606711240070339068140361684582170030698235148240640370865214302396448575598612794880419477382443820460114122660344888303539566201697584629814602370791479968855958218132702263253175893835749519081797642162398443274331331828527116130051920185089536436605136097535836101981040661948775216075226347689761802343300291211433107883175469303776968058962731971891947963828447908756305767445694423568584324530798903294173947764615489974626820580863592293013448028814836698205745250672607142008596471339641433166170213051675847546033150747425279220092106951716440852193936329201685893671756388071466585002948804616105682609222839844547542404366008148705724910710489326716503610242416630374526833151075180490955956565891362132769582069888696532383071330886183240621822684197768211751512523942531803035008716635823604675190482584724605603168075053525546976229344431402961236745565820944933282780103038583927473106511276401462233117131131888496167957416582684310640870649634856804233844878246548588682087243686142240944099268335387609292936521631980854414803197305435602110602020448773554515269924264691675317335854712959456563351573663505144505986521747188241525657890376687968319370861699764250609151979660376491428973573304834338541560555102072255949227210426243634354492664820497983392248765813582023725881635370510612678431580768440119232848454826740707377060670643761106243147489056131598300061107158418904027627869690836069182473382098771572156858994500438900239159619059927011622685390148260796988677112681250733573303409091624233490532689930880036654643154371458590862059529827818111546809996583166697162433181355455984210465810735444184715513031980237924038012461490852419745366195896365008332368443155526600826920003565991014165955652114634666367727052815176221473844268241030719237611832643388304438343161210727933496004485233638860443050150076077046046134005728459851862173595816235254733842214974110113691504233414637538414187104758664391815455155086010190323480015839248208111394008789326167978668595873245218214225233058532569010218011643810898240865702852570263176273733355761299135116416909313863434566010144661319248214636976196955901216534503796541470087633685430835566172772863877288505010914662572606589000790172840081640617359906684029352320436464601739425749022717191510899533990351784885983111535733652410155598448128247606570448896725607234337682868446511982660995007993655672466579174780447397651224304621177164405685783661907696155848842926054690085829873028689551675879029221719763102772755853384212663640545791624970909809936658065563001557495701443796555422548734489102769699832418353179225724061896508642966825669876405795946811659766392116070054115230141925148650711103371802092447574552084534215996035918428061506401500814087348210982848853431953381268937626788271941288931513811900718049741726455387765966944446901051747163558109669697792071786025006788474254355128624978987848686327304066845037950775560266041909253580574743806040266865590818142689514885467296642211946476217486828189173904973045793490991297115673610683174367915563905444814620190528531953211625403807296221489400312639957263601043394611833546109368995543496063839083789911123861854593507963505782200023823273456362691486698357487984708774468123262340952669081951180193599448878599972939142682182224353323803009055432136392085375830842073679323853777705584136316520833806759118636484794765318119290202230655440966056718042326681959460579811323617155335785106268334373571621682240102817627107070701062154242783607972688576884127767425366642976440751991371389345134309654851329731948825431684119095374660774051006454480843259073346072669963510843611782304890225300692872687105954592917836065090780631528119872509801608136748539536997094753072858668124378868205981956917763867006362036374672981542972653658387806777196148734385065889943412375057183776714099550479765799720375964061902411500451490893113881048734859075496092290086333946006160163541113019461093818162829842383861308525640281281177923069107766909945303528743429910154505655065206211452821188193698136997182663910252480084546125049043276789273163947923379910782369744111214186454424373014938043216580551591956177246776811251943252828666986186618495648222813436162067589501518394964803383225110892740672733804342166229666704821635459498729003985886985180073985389487701935553664477354275535953019302936561870455449197251379939708660812189799729843666098217081040355847366239420446861761409978875651497424447369250513022167603630151408153069382422277371854102271042939392925366454912770196078006650841497398628338527060327395231515703670652004133376836347254435800331275223386661253021479806443398122303332279273694225315313642176508387313027981394195461324109593574367350422305477493556969736824460942994324448283932467281381111567071299616712573378850622004560117885017097772236522775126849711866740041251436736297408643951904232087957785752268639119310755032831242351527278826497307616160790534516719105148614138427172250448122972542624319230741291676999755525451370833072658517290785463077085819858270881404935553119233704545625737798102564299245191473283889581415198027963390781347545259880061729103243873804679342880377881227848232965705668318872978007216715268566643208671911475255816359225847259672747941142570995306553493695190244128852507447176142284241205811804014300705138134849966646992605134092315375846575814664567728832461494099850157057065037982784328797954116451483776939388720601985479543625997622799986372235923005612957273109892082646213328384527427369870423862121601322542525207364592394235350155245682610978314345777320969539293472685022572963564451242891901832809136831769650361079686037912011683523285161698010980349064113207409494306588500450739593194757722893493077579691159064583281195636016466029923568527613774376407915756518677236209559612908607716270690164562287604344940544919520563318661951136892329703365981647553404227980007601858507334675464780954638018413079547994425604998236513190836838060653141861590835720178632135381839229533263433328722817421483168948913097116262819884927147404426946183275872329067602895632620278416164647569426168207722726228589732074553504634121159762370561973596049084714441370822497032116038614528006367295129622946015774349735256154987363758377163585111610874419200276123494808674714715488204011106176232514108583935342997032843437896062962305587918451507761206967521334698943146448980470528825332881779216623721405283069594361212086942760050721049675547039950956717917926678369136904231622232331583548952153836921110430860175425154633207955645337354991602689559780487481720867690727970239034882623408340113822930840095033113890065366958708504968617892119460358923604181189136782382715847820135083721024277963514351274049831953677732943058412635344735769875099560399801579359365963543705396746840826722159048870233965832196914721215322906812933729464758598658440908103394527390935398830231825412890070851970005067103509238907754735904993839894565407797907319392582363721768564717132221556478559424067819742462030732936550542746634551891354010466563873837078769338832608640823489247571988798480650642502325198701831116875329893884557574456962855538285197665796130387375138972931124408828825435391680351202630913407271862613405637514620163431811973279314081104942782441242758570136988964597956445396794800785194258546413620934192200584495942053385312429982181870721099763735423299298055872036500383121312861212700379038149052445505101374996079886044295285582990584130380522570616357785455084562780945054529161274857038119974070856285888931727079176521932137406426127628416427350848459929101491297149840779032559106503748609612804247304804190437511034078120184789441690975455079262527773363790501702617152763092777101048862082656118000135314238321240936993237203774740944655594441403424010611705892773088031406265266481395809134340553798030257194961522983231878898924486317809820678994620383229453889105761801911793368065489348347252627385740837722841962688959587196205348696875645240162274802444170363835300693063666635557300209369697216061720404798527060552728897422812995841748526044437960415510034439681695528906360495582974848268551808926160117920458255347309550548709205606235926370466560294660019737052606972746030934461984069531761065822990344185136282852339689758219827483583091809576651400204435991004820906847936253296729495352372435921850478063176970114792687529198922546975597777378675595178554646299175461589101629730018123209061125856979880670802568721099473501447100728268515013912806972881828018210548134004409859767170826529412974269688377697990369714541378672003397680149711243847690431568888269014504800992915495392693331946406175062090020896758651139289986873392126681728052979480724401805150733873055664508263871263734880595251436308209618832433494298607690535664054591649946130660616941630329370041419521669043229894969803622688064413762989404773303857224704732169654580052601521942813245682106123738190916046551563081702861181469836219262756172508362461411629014888005833991532260278453076576112939383488824110404174960286843038394790501608408265823630337860530898151806126841597248066243337790092958880728885398115411183449835000024732541164819464531165159144568634515698130315437136255376233687788593266999978684744649049813111357907644056759989853514124560783346774184521779759263800552928785992663527958614772980624299350084061935379402919754419381464257178908103611851695447171407675272315331312258122524300565494536628648074677006698963840997887587665698454499070783195518866035896687246922588288025864140759266912447931645166048196131131081294135015471220219314864618451351708030552041445215588802348858239719414168663555066280795039835386425996933452396051724755134795317378515506764742490408946450256859738977788294716277424524606108004893167753636944965872446426104738252942888411401708479860398328048711858966280760149488443770841190321215987600489688499112019997914849260765561557184388242945717619492657492381695398066056022328298504759593306753130616207391606476312097110537189145726422328028458122247842900976304174584011723053240435488933984415690888651717679892333155690463217978515027559462645778821119468897700518732586259555250432157175561387084197667710249683198643313662316753394334451247603763730105371007500948966744717538929480267846773522595148101713678147517884971744536370604898882615848522481778617337754799011112576916323458067504442885761645598369785362487475512827840406498966684444374853654904489408188900784861585729539839346866081055930680765104334062148736871223103617826560035924322248069532195470385993377985956557221985447963537287238946493355535512252749430585371964738164405374437857910122518406578095321311431496827752746333557701980630475296985591144213896572142459082816603101104968096931927303532687843223496173224072831747206520787572225086872453289277389145008176805079696947458814381052855786389125566525268197310549774385662733803197380683153763061159703494255254938848477844647162444588587020997288773117474835173913037624909637339285380004703803476070508764977424226318670260548234550239258460027804473748793625096460735556748831539839227325768642748058751948179171510272794419272578993684594553490158280384758963561288339685402370784903459220529942566786938907237262331681355476526771804969622476389155750468333182471448693694377336374129033102617571337499321232999791976775632869257694878434842017499719844473248667348971358799328106282905186324301649688106931751691371754137290855278757149304200457446332400470831089749048166905583224354257144509680315690750983204504195468810593313073826017030514764603280753898622191076119425934278937203481044963363143427557470479333672761318125350416387254285219553116763485739045879269703741588975970092954209145057346152278783171368494410944810068921759881441188155872538430795717301797769013442454996972798314221400978519573902133707239526234189172404543594855686104786516085153424048925996986053081168224360819589944569469270908454083915595388334206306619404779160103033466034644203043542513315905231719495000886369196088370926791565399781746999955630215453738067737521523413988635690188620462147775073160033965143111061972891145217870569001828624127560033656089268041708563127664658248884977722675761837507527522597128979592673671162748058933763180690658215981534278144884956281287305484879046482100286071909303326210449500125920592869498099066714266329837001510270185280523684037006799725266696393080487300254236286586795230854003928456601118827630801067183510260818084124479595609229544206221804789816764287068749329227788323518894331133958070199986796844704871132768501251441076938493336278843777912792255699657424012338686301967346281654190994952104304793688616543300098395357918568143014462965037245362672957114454676159234240511422551610147797234164726833546803832199401357283784513655595886619744456736870991895869993959588443658104478562892620669761511355616379952415483422498539729464223544275182094299482149383897083105890461305310369489585523269126209230570674611535366049832769885570814977810846369948270057125844975080843048820801023261643578330947931292650564041258070506386475123869612991132794218356330336224581924010087108405332802053765338840429633665177745220718505896651410295939235609246098798457113358190402497090003725606871217725140015090763830664347658130177935545509244114306494042044626777562858088065558716206907810084510518496423371504583258348270965191328058476151118370929260470113889569156188920868727507887765059245176020382192556971623971722957071506357489097249170470831308155268551227893746206364169776469921592281010723092048402759602244249325305120716405284945192650652512940767705711547910650571394825009720719528794371739009236337694670927593947216733107705617579842955627048231393522414082018764750970122676003679552020942704194094547536823213865016795652534756669084119151069426062738777525200094010658521379675622561162936563418625800527466526612264146968135162563231006112001944773973491107191020293269731330388011007942945003156121696798928885839194934921110835591271840969071928024584263140108884137858304913376593968869737631907294889423648207671188946129838666285120355200759301637293253915158498827702170879512883149714815538665968209727802990202685042929620454041503409456736689217552739628702563984298310852890701684955249994552853809450149912841682316785801670867735341584189221664067544246337896317192493103806631285060623653131778789890755541092088530106757370175717295683684094657712089603629149743768016702049594836706490576143856450093711793897844525410570223100181238887664368256356573504806260907661911182584939153985748586519208831673882629022364419207895638535867205949311957213320522499246526891317208561359942579182696089523653570584989020784800349793709479834189800964889639835713625081595916192629032446156810722776910391480800157423660519083095449498922303614302831795917454426648485403442233431547860344261488111121603440106316279757072082885130610374092106945507005611032237405330606636526163001476177160504544572246266541806846693197827409918069538862262238927921512532289249403578986399967365645792042396292065841530729606707362815018781429181939268902054290824213325476464793376862637310853481429932321709281908509636201972889370649143349326700733054021810524337367070290301287238213879477270438602659731279619771741281083470092196897819095021378054326292698728318413905894907079373474442536471216788433355879621264336796937715674936456869223463912283686822818600001468986170411909117682588821320057941667572529081606933266427480925887543781067618406959787914151259269396201146175553467178574125965361052461042792731640385478323498303996893416779522224302763507836066413074289442594029157899152918196906495396403453323778286633725345431733286488233234999343420375625895995452971034706262836193801864684998504593116288096040102494281059621041292126994996734767549577103854229261202175202176320881294236010029091746519665029420693334545768944035648781378753753136823462499869799329689785210539978118106041925569930403258604537282883571606974799978702351382096645245822823958992702381323892389679188260777975932676475107821257980881617098099868280139386786024862363190021952540061696829380267601256486314303955015388221400997461518008755945238907771553954926033693214163771066883169937564162424800980039413685958354906915801790803704901070583837237483464046738418030776095443278606211352472478225608026019852387830236580250604187380918658249841820062347163849960630574440321397582095038047837320876641821213796349938865963165356125023613824097618759236779816935102386108540808387454376836810422952996661323949812862973913069448713963796716466733448998698548279013989671078045482957759042570637455000885653817848354270208496507868459025580901371698482339404602834116653289954055325946594847877732475435167242561060721615939604876457129142546422140152405316181490583938458118065988607176756559691519917839602846733525456195805188044443442512210977081000614532058641304842297081125601855502654434560947435429848942518762576422131486951080041566587209427408196540200129024973420528804964879968956309599619088271529990937351446526074490456659872098400314179340602986499321993217895065930885944448017497462365385259842454114864829426666107035590792940454562141030454161336862649225407163875966202956083270204502970412786740014893635608822666971963088235854604672598858226729649530074966904533223882439291647180152603838494366416138657282998208817248288826744541534242820930430396768252505436237520516634692271147331670344916390196269995472244693757001981707505712216990016050401366750261318594999561180556247065509142081431971813477876553935001024471561774727479300691771989174612971378588629756053217923729761244640280323395570837308265085410091125071873473849987196300109420163872502350252586483703643637472838237112578270534559010309967146692638505485203650473920187959813310557375782308221875800840025116580484729857633428128977856020732160621159794656733373219693855561334999359614749087042703272435310422423832532841867577034463471730396818103655056106830973530390365306733637370318691671526871028542612357677878540413507462242396136817055663823134358035506560078247481445671962974782072290485399830967377921533517292075066537285176539825224948565399922739917754693765756019249179004097480538171928762674433614991560958958457320648088169404194636508931367420360297070799477329458327175959283201360257952529432517480741875787383547829865768275856135483650338113781394734997236892658581950259922276069255283385609092234488187786557109561145904580838957258898539825890807002968812464226472880183708519720800759057178994335882388249389389678218664021804597736316318366087037513797430514475202583895166726506474869001004726898356713292325319202205443991654850062830960420146783818641857090415793108856586994348424523699338371307186075534951735201543306772004194535904386516232087503722454294887962468293576535863047655780332520708519649855160986627277474870986789839657932201506119057991378945100902878315358497380492831462483299411807424183844568025648418057011996564884102648902214223147645860530932148612196718645427708319553832014172875433859393222724716741854833040637602097508089366747952200501315687117179397852920198405282739597080434400179875807320430732024877155882877859219372347614288460389183453637624646057008923540603390586745900186545936912804434589294663513797330398791939865064447807842766034989857583685300966241895975723934448028485061154266506999948262752194554462313709125579758484763467787374633085565415240758284123226915983582247809502798110002560895358989139988318525983069217884189097552762620789784003903112565356175960825672531000225348691420723293327920334778708085995523475667232242477055165057369756322038251488788181201780986387127993558885942542049467011555176019359929416612942499678719195906567443616172849190236771335073968694217210879468566415390625503958112219810224334367199751210410571536392336270843136328265084031873435966959732340225786161407910269124500277425786535950849334462302070879036151292782881611423057215166346036952043104187461553678910929085361171862793245784966176598877197688114043062861249412557096446076454193973764939117246626460285866022491562806115332377192758736752657654018897397942943076634075921056721378026329418298071970009491980550072233070713616083152246493354190409167400430925789622903274045078147335719776839407561466491687466893903121152655092005125910299583569732560341692927022078325618541696743061339497952030589248513997852117072302954128808453824228689414834800992491922611869951214789105214242847614295672895574843738438845004411150629372475301157150361833723394809086812502630355060221180631560483469992293849070285420918325505255379639867717580581671140335598381772953559203976887614949792435482368532832966590458847964305798648965013068883342312974915435482560366858181561676663676637827810417307543944214589383652782675117082776061417493034097517039225848178037630184541101116105610507624969610407995587750572111252862751203618261453590089785126368849588086929309020187479761235588490521502231324471023961332405738672214458729878426503220513284853887483485033616564069235103848865035654442093272282094135206300769757393955355988549134021436835572943916376202438392143544121055965231759281472143378131456609315144241010916723972873913586979024423300849132744207666364685784070948344315311614758142606588155568750507876740485450452263131886410447419648493614836206363185610438446884317218409167515099638179616693651380701003521929618204928812708620927417985436348400288051273931087681194525554399973552585343376947348531297611528879555887526311430156387971578358314857913181921738796611618453826407164806651700015870162182736365992180555315335781894139502863077946296687002451702443937452315257335263458746456224834465003614751840401831851655406790405077170317808239733743148440013866263113866065185959836138998357540192870032163822805090517229081562561497175771630607895715196264853573364638214910149059108817627497602104023143534977425678775136742499845115650365591006334282192641583945712293032353764008819336353241660940855919369574424296558884079359210065977705236615952509069018568915587161349354439942260692569459734743919572820992840021845449864270076829862543237621279364893154394556514128067887760774814681451461786520253429218417244393161241490015404655390007244707693777748519244253425919835346737777074539137356956538207332268478140319250152773494755936531639206800175147271946462042444612962205971968297751772680849209957975405081937382480149911729415974903882086506375876466134409676845103862422312393176040468144107051425889984882954719342309067307892434219974633962037512201171901780416599040628019305022174994714057536093408014385508607488718025036035115876180406040483781516327971407199787658281410429589747710282663052990323147008084619025319593980693624105992932779621933013161213323503616542466649425336454222567495595417133570172362393062545073779866650081310977912024335337782792386279207085823468643695989829424462857658547535934191347056914974400096024165361963313513821646082965488447118923192426281921205618613628718120633996720531309376848835090174976838187561801583527915267396249888303340069388489420321868350955548628092360769786391111375488084544308440139693971123456298119959279156485133141984809141523372662543031992225240221368441327329386471893316810953830322560601784991026790674578833524989308561511390339480431356513092824518701978467104440690012303074681394463973237392376510182440379122637275448974022914449355712372474090040441608215841387520894316216496345172352149840436530965201124475991705101135156709092593178991817177063551496747849571240085332058747859796439949373030534446403260389948756856534235361455383759757459700730418535088407258109074065266742484268884030183700356612611082447275386730925729516218635036183904322329672907432596317315402105989283319735358784457441901091506846539594222532786464941815757786978876026424173806581496642490437943473997856557457266218595150956110209846710216347463813596253659204978554701115901985009120962401156817563543291578047861897659010818258441093898581355455954891331236523128654767950642837272189997054471855335095887674350205680864858719461928940797766061994427247585162586247318375798049962712969456080034655335467333338319924577319395882943175531575264239505127696444490153328393283405191968569243675305352928360577883790195402085901855855080599963525409768116542675530030758749701469808520656718276343522561594800735621926102541233902592722159159849681753893737478056912459584411574614726808694489349889188685830847721675548562658442296735779220688109351606717800741464970396462820458046126813379588155132134529353857853340126003971865661465569485657594039061234998418003001830696793813959450661243283613920346392620577140678018375216900248000590175749278778201609307306909144950533043647508410604393210701345399042229796228546597779524437212847696853096834964373665093695371282730145601769486050751014559360419305728473431452817792582500146090159455914950901271648414934709279231115928818046809210794374875362877840357629054489636178296137148349883224996844556523103636912448887671246787366780969300971802815791479422261411255939477266570226834802146901452863980827214677054556625522678551760331206751601852324768685835442779363161780801907828065123917918993915928829310746864756967474801900811577045066962424327612848021503741385869260938941785517092047124511334187687653106511264384403979962918003014987006237637010764829926435021215486970478764335229466364191116632931226512334763781386010662341348579890594747461586358767073343071291559764027107883037735186182112942746922458136012296927221625292376770717592415956726432902307960526209165428686935248857861792819830887077775917606571500174858256393310812172320866388074245431452982074584229967235807086268804980402783024566258750730165480423429198013679713235901438201101158478659828056757991228033781037659932300234341269532013204951151995568484815481861799841877358191584595004316200447177957185018218341223968823515893795853040299261663360628590129685569958594517363662369632038276501522707211274002151317713306653933711825973215761822642649980529419427319016473401980322738055000284506750734377888521810009028983164989621494952962136446050718129335619163071496037010675101703047455105654392002786405644659012610369237020163084048067642205222521942573092752851703885724658150613052692288518252930737392846898784095475030829378905456986984815712685986488660894282222847069608061441683715786262905269498179128374461812988222236934143227620254287114625087792124855003391384480520347377912834696844130904494234566061391064158069313470925587028065801862502067815562489983937025963032441261136516118947770694569834004017264057546608982788221635272155810759864202116766737407485482478138600663460908271473417568800931634095382622640499451098671170141293281164195177830939053681400561254244153746284220659943876891781018356814153166073060213733415693033165273914497496414354290185220295382364895892239492866414394157973591550700816716394605466577541074726499914729652305553071098509819757043902676764314051269555495202154696045563907254978586585039682822707873773332429542450270491148511887921999463778661889412468464552332060832096067167963375879479677851671553125215232921114470753603879712513560450926806229640114364136996602905565048951863683423106192551769121442894499283073767306569659022685038160986506034574505275659829706431943749015665682520158226372087695343960131708427951727472255301573027692403969654469584610550364550748370411317824696729701379458143253272570874778261869889984510529589200555853854630694268018417981350257367911317098229222435199209838727580857674823230482351017262047930551959836238309679227910512731500411267932266090316051257898188683875434867646253927212922965020115673018243839503052660396132950774909330063973288025741668538122195958821098148033787002468227542446738656647070203168296103643232875256899743173636811233353859815721912423578666598077679071938434140491014493874001040087378740348399821791673047887360959887447850057414295221389385328928758707185038388634444258846913778991435180317438320577581552927901272964139651939850554985942494644609118617261113552642083855246028277540724942283236488137125706649342096976487683379425781992846333812501447214478345925786755773529320034439054319372206993668617070614566659044338058154210614002968201372360198760252639761823347791603711139435208935840797120013239699515269509993094494118470013380411688542040502927847361850257924881139961759069965796230992810194179213253874703079161699723679933394980225836100639699601804652887007859015571030265119945136921858180078525273913749244886911107924658464780365124751834211338951100575117499667940559377354105367933929114378226722359808623797577408753846034883797847823634345441563704845749028823552332133728695838252553617906357034340656796285083009345529975720892949413021268052067686610834393232239092603210533235342131310296984708246879251942242606395679200318709841405800807438624405683035548154170574119866883771469099765283314130807836745079389768057737566333006930024510950395565953823507746911500274135843935114666864807220451671767849400542903545706322581392763238426085195111375860249208392209305971263047844500930332120600776374115022526551691555242248552644294370523953302347105592120673153473703822928629620957443222082705419930142360969126235945263520774649432268590306569368298805792028787823928808861916017246094450625170003549095979863170870452765453818970348086061266037351357811849014507841351913326057327305687772293592338768083291289338200044136293182060209452548072783390859243826409876791985573568448360520242521082278620447132143530989455606110089829358722840435729529267931531322642276814675026279514258132531556998568000229650912257817099813417568645820816501877093050616301261791263088446646466426470724066985799263343346548416182306738041925291806371070368411637069733579568680282959941317673849330475764314919283441101274870490259894639245391608174725977651605784401737833027134373542784555624033294133769484698414004875840916438934667289978304598597102429479789233597623373574264904766577592824281699827249246312355081416583733206434713713300775337644131753510253941308472309639002559115843397830095717301310837770261131481120466101694411163695629347508126076067792838856032015663990547564251933539167528053141343040499708711682207595560467452780260317410886556405452515812796437664588819722214901656924486455460783258788098751675117907263651901764015974398571628061027760012611631946946421385000693686120357975783795888661378939006230751850523387229049394478350912323661007618240378844272651165990633432361105197349893354010324012292269658126701752474907322630186718543178734093288397625548121689552058303102669693073020243129306640541868953180849282899182266279496469245539169240880204270751341279045049679773761205588212554891146181579542328392306081236243329955461233281735019736692734895773163779626492499971585470625255385077929374926504341335559954295520717394602646908946321920269825743829634018887283474149991781256085936432641606521254344445923318402291836295407366313718497648144526576369802198679148496009600032085541855009020159524029758777796184385638873311282779150543219437599634180759816848930916153542085970775907619694419786784801562610482438555211113996600489317714516457196807824659037095864830392867248908635361265796975115326407488121325088145662898164563767525553749274310558965731896986059846689098350342763392301530019885885139613610745056550397927380860042344651849005146003649453160916015071849639313867742118070813849955073642581961157608766893855249946781049051739235251082262446003137580503337298003322464725250744519986412653423951595797858058603837377005604637864666990646857157958736170354106199273483862817755622623152374366284781591000264618200486873857659279359366073631040087506867878967859451069654032938559095469893005298583619367794472085788679400866417626511363482658160156334165626052732566017162808675270486777825812787611658374645504550037843857358834367762071539712744053306058401871737428779826004121134264095258626086572023778227788127577059968087825037911680103221097765127204802584330598805594948346805108738358321660077332142621245946886758546389365423375307924607122535604962462340691801612516334422836852137723296961461378141339607706789331800513040616124302609232258549821532505586754705078122405948296540899629695075858905342669481233118068306694672166306745606107723175986322676026150104132280918490676166684084556978011761073941676731194744910347841721690243052838968649072225036738631623584374389123219712586558319714068489405326686070681836711066093493691795507826376014770794382779601157542889716716013565773527826512946384991860246367301949999558784295590023729650079496754345034953649870822731648892073783940615543386607183738608932505774991370571753309824364334554958556630556415812527783335242844287244427874246286453423334198236871422808735262773574711082274971667694192618506630807291817862723171013162977995164821310793236840395176388378744444669137757417867673494182349933908143334178340416495515084115124315374096098958901726112619748147957156533355594314660994042482332291870867611981847835030733792128564701865687390225187310694927419948726179349062793998219491412123880663177524195500673472444246588836691717655331173202465840167627856555669064500086143666500114584351281905125525631534107805847344346022327326579568759187011861327868624527655951887992072111300543644495984586645528759735556620983377583586560698069121972100019071869273208517712965412955883737981427287132499286166549446952994434340751051427713006043754293824007888096701731597580368289782464010221036638685903156477984672249625183157557490853036547504541023341437929502554545028837424009244993765570096835696683802689775762873146247176123374431901482400111782890141882846297683302319274281815393768744750932517945859299228225452068788134022845581930001212842722837233147211332481677208306421184753068249039580432336346092482879428855845910917878988532143867139033433048447598382878864752213047653896129818748519983227084469604215971856601363292181521410622817178826701034226343006524459042310961862750364897273635919379104474342145756997694751692877920840026575900422017700368064084034211461349205371967425155659550481009726698549226058370816300133273442680317942745894621139948580746568331068964533733100113446203088659999390272288453615507716104663663709731106321934056232856165990796116714231961414695104694994798493356196431979160213461297632340329266410338639811384958722057442552204349661435658654939297710283672705298383070532397836165835527258903087260701493531396597893548690508448137944899067220186869895451204251112391769228984447211144105649437169540034835426606886612275460321857130351394834262234838765425113118728738141490568064162028521683142791760784848102668165384830221319321687882488662960327765016585812086497508844524474894136995514848851219292359026195280807601031527239454230274881833754222992370739954914744595009945558823668455497732764242422472599312835564678359755053724450766850283448058714485426239930752197179313022835832117032859390397299232794948534057596528387590386788985967290837565030387491470323922200389042827034807480711642737624239597456223093706232125136721125445515818050599619922558463231177912716583177418266245186561417659020808889569688448100273493775022244206967438885930081633099526821931924110295969956268498195256231461149471295137835818774972769139276072213018230253843790003146595460562911097472171989729760692452325641882572362038957574910357307317051677185020243629462264868542576265421095197101767865050450596551302851748754764549476023716192052726375043252491269456557493918653051884836160022666156166240221082960948645351278745429634905876015560330180681614727795083414507130213376945205903690571145989600680271563665445546556706034813580684129175630297003239483292004124003951710101530521446781507352314131049018930851060787152990282507045567893785906600719613261320365678823482289335516151559320821947702949887586568069698558086797294998105849576305660374034342450772648956366073777036110642380225064207622164821898917732601816155157312103885047574107178822199989372330624300827639036869783867455959155587456258287034787548885962982191346389385652061095484154927477235481840318858033317441206748646290689248404986580006100145366734499977005539502058112290535238118816435755781554813923229368059016056698676641064611420025702202298698631702771685793792764554677017864353373661239996762191505063118777661290351237084071754177521421522788707865517167075763355911614511925156396235795917481215476148667558451543279647076142417235026538887298545398482911923836773915722659602188605854836889099996040811101704180810531804500311887107124650888547941406322691604348282822686576933335528453021010992657648923638280328757691001187100690482206323361633980154324536437386591910259532049294007978667325914825574151864546246544134559517115116506744992649438530935700794553896700142757213708066756469461417426443233800003469852349740285237708250912655191281544027872539514432977545379318515394974091168070050120350317385350884475160080101994819361574211102282562088704282714509096161172648336942012123141271413868548477904178591608465150512055995064658633521296523192547345169659639925363638072270836754001482763565936677056355074931769036484599679974883959250852843571944428125443216408860467709695421936051715201212811473842344679027635722268025398064529168025523590015242593105897155467197148336676014644564195703544058050262734368114673304105590278451634811803614831076987723048369902990405055847441597787793757414550020142938707555321819818139817631612339400925744874521792870444327311028749255680546724898296427100030412314613403374091994838384160916480843494720898990529720529568685345297788180024086669044437764456562972918143447124261614376626613138430599334935583094924601506580586534608949004942078715022566054293669500054442523436988026105560633497199060595935001765361784929172465671784698476817810878846594316892315997625528270744931279269118303526854843266552112449931609065315009074939709945006337994427186951671857636971027096702621321243654814649151930405614173847114705388419358151492819546889103258459415592910656537644888825574462441654093800467956693170676458830820889876380456851087759348502557434782747156118531970700085066645617592356015528164930313310367733915306691966625051159342519278258447426997152006145715590037155596412823127433813689859475254225133819421903889909716741181843989783441386348094511330385986837517674408443633295234564303707720803656108123689757365974010676184397474736093350987432555829891036769190260864545710826968097080663336002435454918467342429748412767830097059782251435777590548094377260345868006245779192365283126279181484717760220777920512479924949554393605889792752511162187193777509513383732706418723738805700878075585873851915694523403612219927635470396847384902365307271725025966267083327817907377701595584084536240127768876359570943081227956720193672671075500078948461348919306076819417386467933099235655977973958087676209606205936540875520736976428723333520137415568051435010458124382061357122958664632290810328614092845227350746313599524163306157633624188225544395687493371609427369691330465004490377843566125245723334482151679647812086778055471470025959718108048804530934433604473878091360443725898712920929239840546701645351278140238010147992281473708716555531038690692177329052380939895539046106946349847287194400399216260258148755579067188863023095843635178101233476073319108536317726484537826793178592046560517122813248716719812936206697820020787572637917476107082566285487850564559860242153504479998891625175887391073260441361241658476129257792394601903231182728183083177617399664366678042017436100020743387445491041419281077260013662368035449794478558276780772314858151189190128916112277776468733792210001380520000389575717259479603349848439552818290344780824420528861652485245414778518463985950751247615503987309841156472407290130405590086564924119858513376176621223342868421616505077438549650097938267490587184764453001415851991058102870319625093727372359985434900678287300497719426767054312064150516510827621521870610111948860756162554696007352850714335858531616699777180348788059976740978410490637370158798598288912198000727968214238813593195462720163898291598510499295220928263698157455039846767069049515774635233012427732827053698196686592195003932708734230419346583032772180366780543120385555821144525105967969471966221147518289629295546464248348057743009319365560483969055399183921055206650501048956226090187740779096256030233848505939896812660450010894966764119577015798930969530401413124740961429213564887776648535239064805310757935879180474879180257013904751879484594806088718851334515864463932814174787023607698521455770604709586177362946754884758130315015402097174307049487418315390213674434413331621949546215994704089743820521133288247776969269666403373540650007758384840778179296813222442356380163905475443488218195193029778552163448153207874427549486597158587411270447898944363885575438055091507147251521429401537102794068071569001772651610306503449656175010957121302280948652915759110026644963735824731054725524994398139983037916154358749572086391357751527379056226823890762799699978525119119437063986558635711468872674652486600612353480827089399757553815010190886032160415424407626967030182751421738143808821520947510859545210856489892744754694509380225921361661607042980706517376228498151009815091243533058929533441504247927504110303517290550216855910630336408704118524944695346421577372708285587309009800391050422597526627974253352891327315628630299128009963967555097812090488787320636576233328047722221668965918432838142214335839530840241519582742744811997850654478388266494413194509616875721207975917336765116889894282982920628490092135641817137972973016972820866947250622906535607344984363022191483802401995803890677456001048564806114849389018011568490307715516528165795099076035350827826139181229495586495999832034288374193695076125504770156622781000321996149387009916828682437693686381319663674082179363181331569895465841606729317879477184704596210491979233747696285354044135863241387135361896642729017156633037465990940283562765141226411012999938368268187333122570445723054536384736525753085200842266959756828761381675577284034990596462468974545144286735598483105131364415041416286208658337157743098794774079533772071780130028628207891941161171905042096636279284067368554801716337120367697850131635695828679417754158337146535878693358301279796796643675966419104147910981992312474369325179265461022703397057474439312153844585193856643111456297445656292157425613313130497488957464313297551307533551744994553881828038351838248767162864645860436401387249783670507533688486996073762100066816928497475214808885618456679806267997551072336949663766320211681634564129585376108324053624990682450048740511921467348880113092099828849701823470490664292820878483590628293894099266132468741836332415585321901158735128978711375853736427351479710652285093228579063035485748775759599681399071998118566655529083959704233694862125706492417354784857490495045629848886489315393488206909459856638528246774641832014162825018063637134627788933928073812281961747490172179072815084160021296675558741718064403488172590650981059310396860977349376350498985409938413114446895606925525993781119968307775343274705711605852621987466462832339254331112157660591395277366523365081585708888571272924565781012427865437662860697638361749524209316258074070696555195297141669328579127193080224815780850939059937074054063722541120006328613018709167041318895978974877510641425987751764763658204450580821988851472712787398936503356999651345982902991996967449724154725881341899213803918177199016483897510214024220001814179798530861358531743683187940625229816269018037240876631982426221858471345015948486873519170966993160728275034099472949819989630135999366008786602311491314893169725141029563773343184950363532040579500109673313821774066116556566467136896156395482058228754711783340688397970219254810180185162641373188694145904760874397867262584138578303766678100689657908955357077441688562904974641673699019642095048219804495298685730006288279396260244733530960904024749101152924525951295329396951816367106334722705354153905512727821965747956923554062556718556512396978789597414457774011918851152830099431730557885375278705953027674374067774950481979502844635818088306961430581099509370286133632897672323389148752035204990291743007789693021704901472897507984371851894689201262032336152800631404492432743799062003586844148974721234643306519285513385373390145931706649324318225016591576438047068822327722777652876600875983513812089498047373974111817190289971775538266823711169351714793138987477807827275063961111915875467789645784557513855556319781712612585769690284391790715117797032153930904643739500858624192166248634410307283278071096750673638117951217310061807165292221111038788939964122103637808780596516347932045518666062313461902431876147961157766024855512729798029495268762903589792716615308147814064618377174579698207087551855754721489563970183602727864527403964945565480355260007515156720883220863844797978673853306358555353917009493858737476995235143651376935949651414370224530179297720750423494316074756024402502543158644768747430360752819515154539718507739031916620576780942875466518271785439398282252213967133341088514450196485993602558514753298832492592970315057851729589363697117356710211574576936455407947624546721523394759937819633321837720842016616967845508083284629256826610070508048075817539701198740537048597882942548273395401167329212226741810960281429320678736984308391166412772855149113125781987954134236421574843606621947607988055476259356519104356102936177574388169614233457658015164027114348148976747498417069502205600921282052097014123264045562122993165944999093076657001634512224940209493905862866904964082645208944497039395061022118106235061737266913966969914750078033388325849626457801977655061883955139489832023952114389955152553405800077555359593569129840289599634687376155321155330058661311485527594384282507619582907991467317862348098342459400507291137603228504326726983787894145636733244711845837501118262598242527994138138843378369932142237733880587280833710190726632839454622761869251167010424910826298036782155657123564622239216488111147389118169440159312602314263629577202337932662858728055341522704287919537892730113244103586015328276721539798878571718188607762636197076214562806967768059567027982449248552730374242601214123470720717846093202607927924229291678094686807582734713990899602410445069307083337149337474820545056246311938476571061250281179595752070277087262673766930779371684418268697849250956886808787807221831185394615010689034846073056327162083880149013836907391184503151975339946934659665353357272550273416136826769367642356051098270005380865604628507962455730046666711531566604999010461926661353770867922217005814415498428137430367823229019449443935035537136911923771315540718216115877815856024338562024763249768073902175882372656061322353611255572273075907286307176390950859330445568309031341007537315495605447182829958958857165305134716439450782719960151140078491309375245643933665985145186344323365612703226627330859246314164717181633915256249821162410728443556238017687355008305445440739876893881963751009336056318511472303079109289597462531859173432630443977980670267035657362452836685806476355966382171629775070208007050761220737636995075991552903867939674343751212096759552091651744332151713453610987326954010705957903422071163064690532995216682760430724504647735145587290453755293724713901647259865231403995515442507682621646178240117981640414171930586265126285522931459621484630081878555248719227335653549519423651486138567187454137320474202307534741342458596356510259023563025590892049913096286917368786283164965525487861287182871063338855293608120765267436200926795554597331732761127221074838915585893898495822332002870070363189069583921936861471366258302150506425884327714961466885190588865965699941587310270492591216664214386802089871230725738807411836333768969165470117253822543657876695478066816547331044979166347373166079454260694986587475882148625110302187641910726203046707663191042407845292046703555641444296153759331686339143178226496443315887420573196095905886052048792301454306344098329020965122775053705504965059002468619710994628084115483879352759023689001690489564162632881223879361855043473362546760240824481642308519885360240738350254474017586462239831399428664246274887331092198782493602643739928261735716472059508282952661771247738519178319603190746491839316315674241291215094372405463619412803317951608900822060737585259460999612138809763906955250984658080233692019340620795848372767663045037550096799585756850648673801212277534399096902597438206504625556813168644289248504403456592142540006963665695066192063137817866706601974822736550881415856753112485634007144755257243600993182267517568517148098018867794010544353178782580062330871936916396900565554639838359030119286826869463487205445964550947764269746299580908088793883800100584276887525037584653632355428665303661731320382670513590020575698177724115671479147119684944021388432836703128014296673076267538169432935408249844110035851429698543356132280698375416888238760880724811956629691566749370208768714853851805200845981950582683647052349735326167851947392900015062385924059237950970917081413811773365899019969260125506043885310995462085149724123763742433901164777854224101665399997795103223613625220912840752781291776592742766140139490259457901010522526214479452730212915491229167274029909386908025530718741594690513216445189561961239744249752789756397971250263725801243905507104265115481178172660057793379171200738096906381575961635533631800439076803236100516987333834245757310146281789860197612674033407117616102085277141898485232971703780044440902102438502177174134267052495222348624905210709491789310698062750964865227250251286941098902241883608523893549026258480831943461594677522132855382507898335900140440568871318650054302281452103960164700760265895797093852527868647303647340068979307670748157813397162127692857585700236286772789922200679078185503351688065048157292370481771379796348697834434639261388366262367756035047159054288767089339185628540773530309754500915100050247994086333945870238343838729525299930381183988235274084166333186983603475732626324157789359232658490527003250187218072655373567401522706091600363030092195704407578361223361147371329344564514181621189797795799872481322300122892993200662924333611596464373905157958851340958338841395866168461702769785199086999085624092489915001538950219130226139023876858875259301157989706064243536492120946470765426351387208506357256736008978723529799656906214711725964318458724527931439597973123380082207505638661708340962235094629878567641017991911802249025585788707804549125118920225551170922212083838143222429342455216879282507569972778058324841006579679518440161341440619121075574325981896426906684759726466922994685340590524530855611339860336340505856925755065387965401759089507173881179186692366876017779168014774052022174538364006010998791273002194345389417959473804645332721435077508270406064009826133316507138488676881260276344703599944799626736048865111720994946177168726624158690649384116754797475949164907338177406104920072401858047588747917978513141896412013222693793900899899373214680739583976778121928468343249816770540084164042032013066912467119405918160277005483865571823913482800652887127964872016885560030367674345466044261592279311444576222621316407846560517175712552079197411004283629936529961595637132675435157596999017483653468610194565196651726690785172164550160732059731344212371768568821351595001448574527908285009190110894574748692258130846595388657552158825774384813343704847348464607991373699773364881377369650182075265664798414992640886233703473855560355778124965514369438865959766907431814070089355018567803893679575821046000329915366768514668751444811009032654318325542774773992527933329955455720466537058705966637274377429857712614737413805461189967608040191913177094096999088735440929074084318612522528977342615502980739134346257064018990479376689188713944295444378708742231472314040855796273533789855890557023636864780247067691910058852525352796096252495249721295042114072094709816584032146610647958022161565486744064310679877955968942064505195893215243504393580369581412168128425820030226930298452990146925678372005249046934687867631624732436906969612021741551031071333197925769175698457581057042414192477201701907069410756555209456688662207199095330352199798802702722459509873459873118443410188159346398980666806027464580423099073261661548851272679628989526261059652444873979276099323242965408930483417912231038484003083976712138358961440982275041131110513912936485247838102072988535754990143165232281887684248254948737598843571024862503863958716542049274913525927514199313234244356692315979340943458021486676922492150643806992484169584857237630517374750439557186487123329878388193875203877716488679865557649136496462279387787494911051350235828209519792596217613255816190998512929277601146262398574964951479177972315512666555296017785284072384094064789822345455492853142392217957340048014189024533613051758827807867088808370955230925713204075859180948871781934351924804824608680353721469073371485460120885081732403219892512491367368197934230557026409496494466604639838352328677573749420885228635763293120131903461106204359653104660200914793964073692685046740017398494275055301750586947610251501957718487992443645715787167125431073839416013101017660088156992624224532317400751436791797741469530643530069572393034094908523783829803081309907088669637137108864773338744400467922298733994036117948688123296432976777119411540638619391435338815538070147346717941822210709239248687865494036888963405883864866775191641247945184300651227311727233292382322709346329233312763592004831288496123122589335349896710278672237749582148959841061923498968284569457074494598674604612414278048509316379750366106513661003396563577194542854017107853500064378337296981971820150795562933421688735244206748241017651994328364632189854868081437589631088794898447874058541499204268128404994818136360818452082046120467256738447211089539378658551849337116409774006973849581514778590406879005772560228220316736888127986615848410749568854953483278991867798558536554217928623879401502369869330612024222022364378123377936615689627354030262242048930066348135121750422067037893992003404196454398692960637708675536718205332482797344771350516333110682804019550474508608024606357223761037688284179971490007041220983005605760731695542857299455321156684478965895931063155301140663673593026139250390884768119494078914988334735893657979327481637061220562972185376943002379422278857592081307475011301390533262634027846857345662126456276456689468418199601219951025513441434403909581667066813367588799559303635233531339612209808139974230533255311546909455767452957015743633860775536329065510955671631397537648575982396371981142446630737556921226415880861747185853812527747815625122100673173839032659636436354935262661807500353773262891819167099464444011391954163325964985709235097108757571494009968626566276941301071327637453587073729323266708916157688701481925359191931486295925910351333819002648455817124139935009652818007352447252191680008395281483136282100484573122312654626521704320832910577275376528452697784888522988249319500559054752034805440106560667393518766688112988840397241258139015025396209518593866797662054972078702592674812840550951331718423398243381651252249548498634803915944935734742737274721222618803628889655749365824251129853725129905191179628813487743704036728890520722912083609846239971897424327930683217025613069514854298751862297025686607781151134680125382245451047661060631934664212865275154007427433142071175695376571602667543992792817766090292981275387990451651922031940094968615125645232985160220488757537385289134276989011893972699187337367262164129957197064899505984132625709250727095959961344158250686850987310779906924767670129141107644463906235730926866171206782868392262683286205145871787319727463333205309051558791163787681535397851030769386308387570614086379307638867978157688454586761937340304812986308864447967555452462326872808278030327364147273696912543889715909963669981041247006046625620859847576489663996681717498828300901537235426149446243834315116643941716359556594776561859516938059872367367817309057022735825169495957559462161403489108880190974719575974053954697116758329703190222797484022904000924794795961725302129772775882073840564352881340580433024750414662506673136721944687343690908476330682876315135346658530122205964262428916283130985606923789952152058653013131609922575081013526738631355217334183585552774997275104119166045723293376402585360003822774561581764474586786636174574413398337990457154659868047260138707323387496718763761706692847442417378671249673832880987560590739908331417271020627731891552874776431957262211291962945000532183546280942403915392685380962881547538193637780764846574658142309081926241559723931978998859108343753202976728308443907938089185803015371586599296886062152668342712261028544141793975486963365962353366429979739878625553279626795546178880835992914277777860710332476332516554003452361121234854711131443081390488386216911587864336921476348967071680888140837131088764121180273426893297340184244332551410501305819731550945058242006166429543943221673671273787206005151183892352213964028982876069119461025424050396698991865660980796322584901880489286095838621810929631662953735201210472633568662189798312648029097898553815072894797394930523830649258996821545696384229369237995478799355939923359563619945254569644643316304920834559022681640031524780749064981758734540536602563521636931090669270024324720995343357924820021978095707393612822683886181752799809117809296207866644610282268638302674519521024402368006757273800680551304945743557068214905038052077557807584567196870225809432921241380929392527234754473606688458266554322657186448463311101356577563299723504073669832158220764979237551504171748772964846193557474703190566375055638969317012864088592398667201821701091235593377078909010780562091459847424644155723272214448923786754025755295274242208218340624727624148621116512260260103396870268610347787898878540136240754058382158207646105249432539772140946570817228799388868793499334976581725170233772706796042659364144624745231004960844041476822041244858030579119910520764880990142252592957893768086679938457384983609303215542988695353020182045458459398500811700113527208276477488400062368157492853611561659790435455783242716855446645332751374268181817259922400381990859519083117267871105867424864249464816108191194587826249672986469609032785978464725840335986229215799732958225249818737035876657810477432004001101032684835918902012766291515711844426189584199597937822129071073682296555642825157086934246140541372614635254812867587501162745330022398255528259478810282866053757510083319778459473739125723705981425519038247908442993656482088367337597272798087226679054531135724151760296097943986566126856342862876842282165495101426204449252893436993194478184822704662891927710035872929162828405575537489352452626949092209971334656469678838931741493752178376646988768138177986940760782957127624266553271000601553315170215705313097080906190799049137831072903476227613137488061732737186666143595329738436346934780492927780946482476934433434868339817380020976152832978190069641176635315899451163448065956816387297006156752835622007222355147875396984188658233544967033038601960305227071559010140693529083605104524459344068693158829587230975460062882755087740485326217338682246871995532797896524580561925514111909179940715976690403456122107768147986398241940677595674101770798427136918818323614311921281222972862744807949494370169205914609381115200082612905265977904589104538354703221849760183931007754183747986266876740069547726024007491126366440543232846563196837035932786188677224893137815686502245211800996032263865858661622855687997229434615329563441923297048873620307197777180766414224808129318118852803292399341517315294004457917939113787016435185873483813767709463638679128844187869725266623358616739478247999388282777719227516888117759584815656980670941775132665489043663274641442819652012285512401526819167010283995551017232027797885789902410236295366951109818687264511118396796812617306344011533433778533758903121511185841702884551777111492343310377774517494957849291453998867320078621810151749946568062505941792702518265413326283380206367587008849139367847951514523819830356762992029971126034881399967404670450566788679366356424586586159653429995083608257869704189224955587700343777597551816406336471913992752853923854393889575111864857918702645805718916687497671246055670845025949218150458210678210405550672363257621267649893962280577306002535500317530604455368536599676137031177556478211178991440306130674309323963019844059541880965860280760255342606869660971204393159073366384837974914812798772574612677844180545345223411629287507640718922615069508914119248227135263698573651098409932423810353924109270541638847365429416741094728783725432080660381201373707660851857719377483857616854203962706163499411811551833010431741981899764133565678646442827176215739408002454257788471571121595783766154795225043586432488442202770038534268843578658495949530865715471314111443556940551813670915308819266640133992940932215187318550285527447472424542024668913929783363998531936177947662305980323654918475444084167357822725202059600478319232224838849727184789449874288051553510907635022781530461242675374173357823813566926629398845106658811769892629721588010645993293541439924180231166593233511810389065986615517006607723642116612555596916762949304025215557094849397942714018188338315326027415229505415732528082941280899240727567794839760796297261970355429878810505808302512752166492255144698403671924608740472890812834998405063789316323636733270429438564415469517548642994695081975932104368951300491819151475231496477848093373827047649550572478592161110206526620908901769263726982890340288149466106720717363574696892681224808390088385934689793474274597292201293298684466786222983506789743335846207334383727072890536515902107638670446482957925472948433373048415100089779399916996928219954227371546565813242691845929031011607354325545178796576067707736053332045097669731304177814931804140258639070167021710362195761416613792289766358206345119741496590142356117990364806818457403278414384305081593366057398633189755730943406113669574259375190849182889516254067867610689367399373736130964810190248975683866152220205696551756626719238027484650046940247010041020552987048753635848599459639685407114273275085479488357454541855322506825820179125570958608487565700826123956662270834088235653075703240575139008575737404063293383127876147126578398907919448617116302226007368836125337235670882904631149488502924579090203592274790571203026034367248915299204993768987470843101546233026206204689971445995074525498132349199589763050275703500341819892394870935506782980362585289582051722133544799282085258544348257943023627557143471509970222031426953831926320657839993157231373008096008055459199706958965608842545643823999912376197047670370824769595928828153869010739611107043892416815658120701338351219659636492573167135814859271758881466503447636675616775072393730335921214849777610005898938972105967664555662728288972548388418993076444518596146728126693688672925998824828297788968843740678348902771273396087047684816755135099852813974050999153889014606660550721393531651385034681030289881050531001548302954535109479972931198755559561148207006545804328377027821570367250191081631406657492535317518259400687598180934016560076464146713686482611463072169861439885713339546706805907466065398290184558668341856137979710264731075959490702736372149883190989789238064535327293567986766489933074279107629542599003982339207618820785831818968742239544558031708986401211623905608009195820941942424118863985037237434333571489010145103140582790653626987436343771666366653630702519658415680637097970050380377825382453088691414895558313640337597678384323852869996915364181999227806027350079597026314901924506302005430467046216638331653640310174173880727736210413501088582180402959323744096462051278012308512787335024278143645738526591060913600644396405109214350154188835187768703147477450196860942408646754705400880622108958200003418127451196088031675660267287562255619665095275739865737255635272091959979756669052697819987199376647103011996433815931073600652387715544663807886876481977959179464415084434119331602228421079375813565593797759328545689434256309620957134146796518465007695418719198809367699702177882349626210199626050327681342350553650034198652711440913982606680362703508006643223423509249580260099015571201666500665453276277265483989144197307134677028027322201468302703145586609998165049334080796132819001418019326492123901542951977570129170693091770101192438466022027305443003534839371403222393505597997554415016384378587384261137173551050225741481134287826429345609406500567261862903507979999420779777845907941906169580806504798093573073180503454604436265776092862093699604176559581906270655774823964970417857636049739827804356327689605449282712946067935820182347133935184592727431335211521593146123500022322955392555569517391157704908678100734178766833997743078668545210050056378604002346415785858951460442245125739394857338877855684455159002288611609733792546574629728023590862230865232435068131111285923170131378560287666058715757058551200058013132638448075511932479153486127626091187867451649782161101090241609508077351276216673019932052674205440424664523656651796199044145190249349299447002748346410972824696904486125406313670206437307984694428817714108392875021684621435954517746784053316949935573345629168074016254852426918289579362352217064796839696507256031102149825807892478037535501743839851488634803641419340880397028877390454878538862296828456122661285012185123874470984056588386641330540225205119859162206557480025178628662262907717294647299739223497470559069134259791394322227262948621793038691496602049133358639522867147483225158051361214500484418403026398700426428276928177994004307537925591342874097571936528951320471347099942204280925481577025966235056769137118754607242914515440253598763162385476638516606561940613534007787226513596930401981526675616285891485897926221322754271045113545971874283583191636801833366710995368227491933067670358783376248343018086175656567545765382197885846374682319597349693595752909671562816512355211831693528927531608914227267251887924054959996890646364127034754153211379653667319314222733466826623121765250908227230594247715887984335007502114672185520779055559819825170520828676626891031209566887020788843954476579273778224600065630883710263688414870413377456108060981771701430926001705825313175002988269076232855533190845426560334969337816514274462794325499496588177212489739233700366105870798965009698814423133073218224745936154226827957757371318121121193442184060076483817951784470588198700470301182614923919949738047988960133324429703095059241761075956991761451906869353874726415117554192979024780936433529800211269254479865838723560034886033800520380487235492175636246289475358052455488735672090777897656024443220452033688142175200806265364615933269268999222915835284440834545289677130750322516527937483389807636874097637668953377461730939335376758409999110866454882981547817545588550470173194266345840911500833480000813430049252586734875578580997964044644525641590105514769088198014762909734195548064868832544763106292169937100831635869043346092651998373177603504235994609252468628877394855182684862912977506006621952157712854990011978761064948241822735830934393249150282517875686214936330356305631564083828186177655890375309837172279149762244924177454149241477702066711946692360371883693949195990548020269479715411979800066269454226631099215734034931362475394008511022155200167301455345522723458271631161552307504299108886202756940519391595163046740270713661703694105665595357150928339955001145517878722437460409387038393696828418698680999469015055721729060300777079629034135036155804236559356121355817472140586563065368434251976032808438914879477140213183302527206172677483048871345348811802603788844321691106565258306154968011442880596640044344521604564682086132149314406001930066942895472769578928478767609522253524524019633631265646989925795398974051499828345542295250430501581427358579143045285866002780292840900937733577700371018055953754319260328469477921428205725691360699622234412880909242096845658254325531534457283594041312122247865698570517054050516244322411334506589833892535597240111860818836078833265077985657741628699382858276350209269937971043363923311535119456422986193881125780105070245672925059191375044437177003527164953013371072747768637616049226660628253414825154161434355060417373421177736166511595946539876719203837275979967344035433362982251481516725288516767952808741689200687615510890635506232343481914167813782105283136141613858698563919831194949451343933207125213754338756850748192113863244584837379449390690826436560326708919843474247519071441872297246935055679307251935140287509014982537148599030678338752682748421250271713030939224986885792339749026092848666215424360201822046663753030974527387634277205012065464121779974754292206955491460907943169727248016115953192909349874515105908683652863524428421632313991691668461076664937762870650469885173969069428571154240149277966399802299246113719186201901714736676918822630311544026966253308843441098446873310166360805826653464857684316512550713651992520748166749177342379414610101812939744808489614470073828758601392536904685030551942712573217033952006336094932138545465561069395250362779096481574812782732966554454205367131742317019659969240785737636800267244247305082959453383758484881146929076870630607476105675681084219278892879406726301176874959938547642626812006035687549054247722640497072725618498629402301760235416613134296193878941981768780413259862928881362760778787299555340883276282922088206283518037681265167676098306458063357788969127858156976760909028513812371780770914559009219150975508859562028880411015614678976394534482145022429190251338616453221252300647103149792213498299731598201333832505772065694937878174961912452478285017088097619669275474507579411453933403740052850467044260494574598376461667054450383217328621842098052255667668371562447658681006309891108243651768107444284794994090451296020743717485168348177032479498725710684606268913563394918231409404294515870279522863249817569624911463480306242788777394076211332798777697787821791768394808801690006533852926781726558932820709749164363315659177060025144392067145186939776263554776679777835901989176130017997052949393853589486358505975306854389786417544851282063550663843053443692454609526270706784868256647015233069529877676878168418071831522966547754402754336671083577766756624510839443300308956894392955235626330239594664973947869316492901950186892385751143078714000211728480839391234855934282867906251198218697106019711216170918638725012126126277427037319539070102614607810437008736402759070984771924072700584652697135646543966156232531738420733327297701110952186261324880075951796120137957963021954189951190913948306345635034110209225502263421683229642241106732654141047121348930395889521509761446398381640758840825762066367526229808081027278691582680394543609647385912202117109809325712799381180166372341773230259493221703659205956554819854058789745236170321387490586353682184815413071073736600043946329807664696025181486518930300298998103479700054320599336464535971986124133463263939835033767595288886565146964415420945269000469264755609950309086431538929070520360011640411356398263734510640127970271164013346630179011534684399390675823255237751212022709952733635243428781877382402597811240714638359505122943508484973616243298589559774251128822649626859834894951935801689823969397167997748822973725525954347993503705831318952279544553043277124154560498878310808000343935115657013370288896733275489949808154421585091394958600826679968693367928174171345738512863198333409587713422469403180130724046100109055829679681007568757662429944482762074077389351822525776471259787596989106154686846838238030234660589074493510921400518944358223191075283017328361999332763974521488287001394748353061042126502087738730744591211442523935818589495410912338466516618516940659489489811346995708012079013294396133915165209055473558714697787436882674940688658072884402527455299772857691016456718991871018034093502847483903147701689486274531392219276778466630049861788697723387380267361796216384102684913560377505495150298169829112848696000433162633741254441184792781148512347148579905261354440936142881014875509636646132457041406727118743066099228538915222310455309432943552719932846905581765316868414398007580995232510978445144937671571559230746552797387499981466348053273360972530159167397179556484130981403684043818735279207433354287171165916959337695877601129916476344971073776457370168867736754846020484643536081527925237849209910842508580822080264423990985929622237696049162560130470797751988205953629259449547907305495836760857669218668047401297237088818044396647546759319505641153159697390352488322373477791643464651401044913101589798829616990964380138908565347579884016554755535077892496827401233102508840132950175053905005582283485644488950487046666362904786077976061578330625172852653744026612243150046954202367656512110020103408597701000784787802990553141723414381264860783403393601071444940811226529714037456693847125144331048705269557145034363193886686241766280368980599233539058469961094879785953815348474597976830182738867168079551122607620001175390439750588097630756165643080491689007315671463901222695292344766818501737543778401832730336531388892570219944631004033899746177685516589729912745091075347405265196368731565367561164515020680281405023781591880227960542743139983799820572264087612639927616869674300378441928475791636760960676287094535245719902572488392466492808659939839926776938226037639856269121616906286182328117336619982299342928893195570274820477546764795884216864260413433923737837363215132272285883278291746945509142715403870931798708855233109355879034859874165443289415513884097354810208548223251377844690824497879160342823958129274145825297861082311097640973818108538333845335312002138799317152015521547166201488511150624238517819668308160141692489444856239299849190469901976627585908282434344145660052273932205755093451709275642963414138169107136698814635096025168589745271475847861346108129850011103346297866009556727035486318294091030889071665216284310336493876480680481716333103750799824902979771255277856479023690256425308352335016253306046457775841450705471725770054564718908889477597838490673254279217199306282897774473914432748070740614278578299206560935038925514627583237975862731429914535135933070515381182326275617332789390148983106671380523922650279594625031899983717909581483896893085683452719934697151455651541261382985857260453210635898404282267132435952325229192218115177526289222559773367711675365612235878597461403173723124404790221662310040041546788758787868872908216966148670692662687871835204970460422577427137848027167657733440974394839082388290585570583235258494680541441536142349691048129746981928328710636375433916009889606706626201536191669006222337995926859587453813565426897224155791645854372950250339006245482562798790467516146803395182005222115397481392485109422661736859447005609332281455137465588099968089297445699250316562675909093698171164698038274736667877037248359400656525222065433877902844194827770708051996116961373580747789517538993473067697706249902642973908269138858700197955121453222296028038335239484777867355043241628354972163528885015554645433011481593249327527442489420930093461336035732099646091507126035733900849656050807310886563048206477168375090202095686173909617818914283789546336380382237028549060081159616428407846333784994576366251575507982706559253608014800259904682535230411808310018430107333102001756979184649824161695253113338653713001274096702288445811454986472030976940591344945359581124393523500064132037205400866819609725293555709448326583783240303560363684675720512852428721786137490671217641936865155526866460477151618633549813589611164296728199280075764172005077383949637074929847219949188739637667924178907712570607922790449132296000913360230374353737188847304938476026624609590424253019929574181240440318105567557469549716426313192110874731478949197340806978824187888352112562329190425092544322181612741766654557165860084494685965135446784495165459969969256326496502442892692237082595329102136145892679263286203530210488459029407533024134809899557427220983719239279967526810942597095420662462121579495512396675067118466814064800330509659025163734803037624041891617403324307980571467785368911396430962842852901246155831320184883958301214964695703776657318895401103140202901787540910037030926564333148655039373788526261713479078422203078312189014056437247354716620177512069668824616414831020922864479785266540983967665171003826891715320281280324339060619091852533599064332994555090486937600330760953525853216879351062284054945171229202442047089150104371895436637579807536624937705157490373145632795507625570477258246919701444292975852541833289277253233460729201422783676917927735163573531042541889720286512428684483909045138590479244720532364246975253781102492810896888634337229342837550206354402111787023751089529076523129844219908131246164302463616325118241050549729807942405960037622815088133888004654382881223150413772983112516123585086305913009562679064336665347711378541422542563580842302217877118801642862522035585922967105484174881408309202584016868310943798870016668485273252893813445690381091595514271626464925379268608752379025965811707182173524004610883344643773884169156679094699019592439509789529281908232489428319943391177339771995440621973997844000232332862043529573332722102683992022786748103889521798824850046897847618959225312719931501781764391289202093963956527891684128782579173877974882644477383459850888937378028232923748752641787677541384819552392062891444067068411371356316247802263896445837458828363454254612631673695548295102942078274379822410358138524446355428342149875604958230421203104755931849603076292574969537760324903828404193651847962428950495527613514711456850998259209846175543625741705935895620045488685371163952099617144715925536608433195505865934107351179892352475884892591861285561854174308350754591960459170633862061653376717365184364492913587916913005585022597505359197411167058068084870508639285767017161249181220311890699658941520583133994308751302926936827022100161144376415620565345745306518090098614368726751813092340435726542490731323772709695835631916572973972245863573696231479872393411329776984513547796000759967715868684948972469200202478912011306840131294666097648025661971124352275767350737715787186466510925853751674736904892166749047610422413227750253292604947005091990580261397232614111835118997389949282747642881350989174328245328926266473055883699488621340061687202403274428427737152453426251372604017430055339261704645312063101685280661561982550671549007874043489028765312763460299090592470825947301369900979233868680295137041234367788124448710389022741354548452089105156158094359152659114830145093999124404178069506342654935808263152729675355301394432232298711171442611544827182072786605884234840833135779112107226890989659675369121768694258786160767866390852983375634652139475863645660469317489195990238889990641289992714537571174612708701112391785260546842311645967802947137335817324755259614619784064484805050529610515139452557867224807170662204755052714773454039762376329265424311303243177254910283299684474312720844074201061501670215503188017561889864413158158129568423873573118171385170637052149022263484267550446414053016897241841359576515513632559233394744462624373070869979056648673061304605916738015496447406986446493028813749147724111492488639061284463361691623014329502411972628202491695583383270459729369666579366434791609584612203404483689981622846261436675002541365583116333165431483231550118575167458719765092989481094768523363955768793792887550148890999764122461133033773457571603235862387302449057754679489190882095684056296741489634083505287319734011428103364275129231646717454918921814910340415701113620567102170928937435884485775687230178581598050444684541336405599911330138784587348574841285004586497430665688384003886195394654972046172706512857613617471898608719972764497920666742927054743329090474817083531551113757301465789065798753111301885560916972078126073745728416690231901081032520022786199323291096556225981432417978574999825347854196983520193492989210887885061506017237100812390467206333226189145350967891128041252122183772514741742999193635695409061125856046021961382180540492402857009978439414231412595669589660129113768549789925067765765347040650203921718359974468787736529786587875099616840598589981442660875981595534996491189635044552491924024064516556339995992103735993964876115831006795857590229168004955678270227683098688662500806520901321421682775839919240213246970864620909974986457290033817912410084821921443415923582388662232426411029638947508632051439737333578736072805918795826027029613587325775340006155172702406712592696065427906739754735108763921880812324897175852382357482162019869341344300921103818262448121160312649916365897951490395602431689296476583495780941090664266517050536561098208389041676086887098565878054242802882897497050828854501387407104108956032557153783034698656034625580599471939673557175563519625582687598653687635837941699454009126356464042657854772397000769625227923373069005352598629232460892669404854241629203876352437759900599671408657882264157596991952136774780303458989407267219598628083453705790747381458007958136865118318034092582635470865219196414135712453572357557038242312789903838676900346101647635398600129405725823137426656078681486038283673132278438886081183385500541892132286935173044992235060142639895136519522527879531306608576966961703641852512215910178311914742417903577284315887297795366823820377776653693783678656054652781192912359287267842121682856686475378297071713094461211464186624304975157308612515212857757425983423866445121906805048780636390383340058994944955243787641385667406499786642155877386064722723073714745839920375170739289734663338462434603879177846918149055570694687861362636574156392147182947569395805759015364453131727828682462471279979321817493786438936661347338735500432485700347704192723807835289817249020897879595242889494548074384428876274503709599845468753017316908742259792486624714412088883998423423420503771160270431922072822888949334091091513962522422582137789405371717428462537107815928287585208296986992925004959610538469622890431644376218297729576776176451432150818496254478349926916202829763372585985282258402080277560203906034474696019860774694841958732367960058341473370446275921584784157167236257885983409984771788845821901279985185758429995362642676135068779898745697882074258326198555271694423140590928460698687164944646210749621282606221746488286607184099041521160092149359208374815771237812818338665702239477725944399117167026090037202551960584611380283240896756118376848455657391695854870825551332323645516866766121562439602374098096739537548781977450990348312623491416303047293456822984400038542957158395703977850321064515873353412631297171284273556271131013589693903540888520013495765003974065817144551583815584027624281514848960272019120591505024996990358657964103893276286454674354520720797047741912531122256105470933710276875229601245198435439885271598580153648156545599542302819336931123376460698852429965726742918618233623993242887207824480848226275835542120128599285136000226110101548999441725729184067942288510014189373975703064575414061227364166939618437460089972809030846981771003790824697961257340572347482188672494232256446000725216674684884281180854372240827129681078662647074032680413782184189213993895716301098235291095591773279853010424874493349079417193384525307702802990536538425282032500467820470349629289794963648963087083416632534843088162001963838064852021811513652040676717242418396392190057349660634792868378014350396896171984796716766017640038290154647159882401071698054424557308275150289176901844225172382418183174867238194739984328463838316537671562083088600371058318239067731933239527926519706423111436907020635919594935775261490444225947679074931966853394152398591911002116375064782995354005125373103763251351014375667436427953406789260576763539478329853730403699613712199789641986343109973001468155616263244596807755822673893639512739869343247096631471439503749387336487841318030218681218568120935999674855522547385314090657955033304187305504268734831178605116180135833948265300216037308506446103603754940284051524269943982205572787617819884316937770144933976000528058438196513149135743525344104740302219730266608228893970558650088549119478032485222204747545269134217902497204733145526186797578674640805799187517738302068972019599902456374743672691223294764266791406680956240151594819659061906047213830261672631496015789912960497861915217862836382063091190101267284301942857482165166445534584985969038399072204285550053994174548500652708640717398512046643271140612895723573010727494091970390152917476530450219811942199052743138314336281755732973894185298977388353123552821644967200780170872886227454541461085215200684144352647351266194896361715135116645698514906499910350162765497508662534353292293877620050840388266279482458914347472756059457255144504156119750921877895313797911270655070342325501230604214291021805458217896708055119107402649060807014301957595696727968851125986519343220308961063749168565492223242307630233648973560518600362169561194657553788496677721749386307010552017713618830075907889392969293199321937283162538057151754084826692264689420357733989300506330409052940114774662507315155074282709389404887211347139190912364007469262537709554397930242487311630606847380040836967882173758689669055879882437832163541074529651213141918654635002075263702836534305625103231776102556244713665848511486226005724274048492694047880950710703819303037479064571616486230707514503443681225858731855909433254963976936962292230763010164001547302275488713404934388712053029204797292485581574654681177959047421688071810843960290375599689237073357470257196769260522176158743344967126622290612723946009095375711540568024470959124251309235194322355084213679807697281544680961280481080550508179339743098452813649767408778165481037909414384431988269182939696944839522311953673168258069269932234407773137248521393666008890947831796505358331916729210438792892064934713628659082984961966452912137253399220420128951407628682454298082338966408617880573046025051690442948165513700146331040192096213576103413988046988707216662558076838842041694526177483469855417550841464925452241000820730393356822021660377417804283145759591943233428869091050569408330725416012738835857081820949006210564565933298185175473136903913327118585966393949339997755190785104336425793292616620083496278016408838096302402572182013123137926455555373235782773298142487181559765476250639958976631997287247152726707686477368655233919451060155542387883767935073373634195713923238125251594691912635637222406656560563060033899731984953754965027059953906188595644657221604743783547559279536996589001337332578270057118883977432438304415100682521087457254680185882377522963785514946532001919056706512019517727265672559877026982175448419330478968914150747980032276526007983639289287365466393126554322352119350831456514360641581764156170190010036561425279747572208589669229388969520244327626146448444513573121378733055390778860436786619030536626990777855121334000944882685208884543781755404832293950804375725186783698236308543748210948896969179244998182418166503405988751804174146140758568611956296712462609450526405899525128918610912027250586396742954948280462503623886164841428584981192356226851854150373746352786295332819048891931948501341519302906746003914543005039432750472948460130723056538839538640173950295409072484710561986900738276244550595758442671156658424879112017573490147397523155332947676179992089721558334490291869604316425225603117214011995184880909056327125676409188322472451953123094746929516213563010337852422851934427665837012811875217660328008551103537643824312359059769777611881225880851309204637474330253977847016196143754147609342075483623153726796399569837058792537115576912895224240555246224393435155874267545987517698091536355941365978726734493349862903288290784099914277220165494774280979654501468264296567080013417256405868805446274776076840314533260696577751346741523906860332310078575359364664335760097102445565204843900344191737034762414275715020953259396376945116511307271895602116309506801306031188650589609976855814719881126810387734253303415389216180572201168388126643308127708709928082977203282258093279810686027399986131400257901584926180989780781640512784774743136132134156912818756866438780892074086067351127897582243358513693732036559032967721094234979993087652751973416928091022988589766613062973119265719144285657121600533236969257674564277594547028578402959725173248405606284089800940543939028347980554557147730852703594506396717039090276861385026064549195200816564197153901587412107413000195235382134708099968620448624806418240094497420771116292576038932255514755035472176480619340330480248705859787430074280961406253664146330617244106697159137966639223211279098722708393257006290320331136419902671655589375390307116275478089082784785368814706843537477243986587473311689300169091846051690088585942929810802613722182021672688170393536222338839100247501772932954265260818527564911354968285207238432573395129148580896578877391987057980165151349916658055746664996483773130626391983609850409642116641309620885900176203966225930884127715464087696203560662768595590158436129999181275809643993433223857420127767135419591848158811568905375527784742654494346031355758588015947432495573011627048518257373400195000117834395713438437139622220776323523884353547563463150648789690298472967385591710406386536764333991585560808017344855985813925789813189436376005770033606400107258893313345326235838299991489902104786080355255161694859318965115865286569091331920109105469981096475656660074955775311473878443899245235310628458165081570231817921009934807854925912752187655089732542724504342370134267358187782260555141051626371308413841558670447562565914883311857395572459705868277145809154022808371174431967676946288784531390060173872014125407589831698534626031918820250974570137003131144240402267692749811259186563967166989949547113651389084076499063493540537277372220631825260840305958410427172541722292874915513086126867769520993912736217011359366453396391839982456145346703842372065054837104777381815062634461000933204189197200958532838038042064777828182415169834423794462972902621157507127221980144557745991726654344764013295779352900465930074791275741923856042993567172709087317722566730158328172563292453871730859640500605806297470736003094681852918962085903911669849300202906977673493552958500253797830399634259888243120585796191057743386329379218320404639834359814032452853100625751895552110782470369886098580953152615141749213105526691266944215572852582746055864620289012144188100540208877535901735096021565278671131266690863754601717280291498946061741703766705414863527251522235231701053117030648225203575525259883021658449420707059715544470194531742990453229474520794400871949238004337149460721946253111841396613298425681199991944598895978752626103288524634204039948712722021689549844283356287866075505931397338648138088518035740426247746121435124560258934206155970098637417950889892315699064688092518649351962599487323244877700591558593231835151200804619016363871191600242766994160129784129538140773031158360911534318149189323867821450768133202043519130886778402607419325857911783577310092741451028237874073965697252737403149967864664810243333059730090566425287772446706682221006815873445477216009624585532611332859533741768487440662240159492796352459853870003582235985077537486243978230541571470529581360143124401944096440651813166439787945683948011375496962826272681191906387591382099558674488652142819821309947240619817774699832642918883228232963118326297444038452472444982719264583612936743896488818884498089972784496637809958666734018725942959287513336828184383659442494503414788660064745296347722300836134371477686445728564350502306503119517954676675771639865942782876114296966178820482713729413686862022800848075992242969730077110988897402162783563904046429427837778519474643675962973377014504203468909301263453909137658275109402811411674094892082255354938923697566567808366488759134804315702479726104684720962106683810139138251599811235023475778794836343381158575439142088397969406722247317235315245294858189064725942375647572656743622999954182411388017237040893341599401771586204484180376018158925776518678057563516971436866566748426667213770274749973532799328928245376857264982216746499401155546524917879161901626828158701146347424985250762059389269909556578633541325063727900709651447381697904220128052583419297054256940974528200690804602393670717493330163535610928495964593128040440427296727509108158424913922009276985224743575569028319559437545989415652547419975880448864005870255702085614832020965637051031796649024475268853899472019655306372600408605651151905352072909988548805367737022909364231841907584790441994110475269093518639743128354135292491483493869527946990813695654030838379223161206286115914427020347226687753564701690817250111933179059402985130605435046151997314780557011067663936190957095908069195013644622034197250644578874524394299977043923633530637498661627518231607538858465313541884816498762862840759963660574315612931570117009853289813718238171698799151485060936348437791788181188845410678656235447886356516139438439982653299523818814695161637334405861083455864675078005391969546896664956416672249636751993721912387744642130256439438317812553370739513010194194689878079338973668410282698368558465906944836260703334498957368069555600490168063440830385028000051763386557637155392678455184279938348308070345074481887329909660031621938405398103247496937886433731529702100958931827505198442305043004040827450099970521735046923168358555459663370055138688085527261474599832969447244835924702892153948600980088844362654296369012549581812616989290399325543352866330113822074269331019813317815187968218781377326987097696743192295476175397953045888127074120300292205566205012391086287040970798403702742105798948351787080185531330430904075160990564972139964091183573542547623286765584631455489358437293793938866481631961144874247065518721780490815334247867142141420030972869781184970676314974650610575721091064247953285001035000619790752587938138416755298540232744275354964579875867430030333838969907338676550777087882096346074754781479460696364140404125508814427697622203364652653528848279482943734423118660806235210694433836023216741866088029822185590535842261705306235918933506689794291472535128017470009788398925294686888102990630513145294100971307950037792271326646914333675486367933550574382045417462675453045497732815445158855170674041860701718749499489616681892537925924378977773756676692689549975067344993241513595813994167315165106514481718740439400889818036337915434489876269749297207184908408782686318952132281054021018402856061001891551810864466047738220984153355090547101672116438048971727305742412856176536678297045770146872070710619713644051961187413579667541513815346397058940376461305390896612689066150966990832170100610608769928169363459705325564781395147476959406105081243991094767814260827607924568731265101514388055195886122285142407499604450873027352391618974442570923508254068155602897882986575271690938099736123893318375946759382749762153118424932140302930200454221517725261465001455640581500452966244280151633106157451597856951302499531893756226244713619023613324576943614073590910610557930992802074996733863897669001483124470683918868712922775851236551951179740092866040809703069565683086050607614041013591082901301274854398690970017402388674941030577875298563108777448456365770790977131444051615121768999087299946955835471870491715007478256232375330972417854735416712379674708381436744654488063993233680729992512599779983359898213058468727755153559136368257913007453771604101158037694234087819621397173412039663656829903181501999596840274098843726604019766404111655494103638895050122190575807837527307814566744103600303936954676677396446574743676117401782591399040805034875068644722812121222218613276604073184777237246231173853285642833017723296374482984155170431348349874641205659141527213693997607126927663806691841069131103571661782050287976229534047874406953411691357539883968635919898717479618226978290778143073312407207667988214209236246120755273982204895006585568496838985748298245217980980495153509940534811918030846394970854553866254310642805015675494214495888935728536502246442866662868190308229144166132585903686931349530010760783854327469453069814765770324435543852858119373808511931346548450449422911143561129758070956556607870394711960718238036072037089454624919735286573806089074291135676471465973321882335775166079657022107050052873674241659587546932142485926231953045770291662041017011109884578796758714113249267400560096167780004958814777224466994231436761412209357499814438718823150457012330368363154804691280106899391218681252617579393258087577249620867509163424970134941162858324300584896193649922524329314188930088908269834001332820000396218101811087059276627018254553386821734213799132303568653779019422011793398141362403856658299265676715719747548072464869919442961479492884241784495975083114007337234273680965641344711452332148735332903601504347620355213360047883614004576789628676607726739086670977896610730397062837781458769945234174927345996923815537224996254198283905549447493537280347409134527333589458281580338689181320774094932387038221351371047863711137905590827842090071497499989061685276820776432531819998576572279861461944260032606204019145179836224525076672910837520868974327401330335117320534656835275662453715876885304093408653879442822474370757651310755285777716092984467557616021277739348976327211759652351013761185908590710113896904218909682903927658651645872766771355253922317160707307265682615445256947469372449759926011563910052727566299629799625087667700455906659517353621042489417474650682457791739106909966154575693657955338819484405388937857009575601094005444988960496340510559311275705133608268935255192819391585907291463976239698260869226407248480189225124847545798452522738249794971600768806787717261464635932813115806347321193760437326229142584543792286114104771892864308164766449940522936394181311592834501579580642807737163294425310488955870013584127278195995448877472132430360415470258293958887698564943852262155011756387312204642568378203598577758889006019343338427537912365689540787087448751952203792248275621770091767898252409017800210055035438813987608847138880204064562107971041980135160619760992929331321296309121435237969459649162650593078952054435935769077383187511191896536122060956794403073588906222069268809392041630231220615522383447166065293220495937455322187049742154485845022777043696512210992895587482320273831310184726639653303104736487055929492753948503287849277780649548181928474937181977041073393631333931298725332094410861567646857033156949429167390908700084216702715862563326483132020214202783593686831027659522338494395471503664886260121129160013911296877594900816551818092502850666565464505915099426870716279787193935838230907287184586987343735588620344699428220063441072630221286011533513376451116571122469361903511565626125882079463005034124335116379605314145239575249092227773615242197462326311890981642287090336617977906337278136636681698320513437840276053390520553150971882545885436605512865336166406381340343638579730486925584911701860494648139991640014794699444606364228850049534527192728362568372017204722687835846784157439486253823855090194847959118967192744652152643383213179970071420038646209464087460599890582807705488405354122425625558908870959398063874284252551910628288641422944316728291021914605409491307792194258629532606882721712574079044844638457075471220431345744852784775274019742219243459526673120656572527589197751666688820368642223092079047214781883658310344448228522536386460947922399835007211273573548670787527967605267375741115705987034710548586784183440770521771109160064748104691071159028191463625038088845322243101009790460070821345922407513124278216708225576441821295648599741844074524254050740541050581562484526355786821284645049326932201888016600039715399785847038713296547372226055915782128188273808150164885653680751322962514842921173979377353997498368584920903236836030962206380884722349323031774032780168090701652466834274417514440058290988255305261347815429051196838530385346695981658688900614664276018688533296203159066146792396652728827066894787608387766412540675463901288636448269499966227144786002745212791020512589781117727985955386070953325302830133760246890949956023072359114178039884457302350288120070075755541397055579110189583786398083924529460793608733971794463255497272442642864457340300917650575053363100260233688300512908037946599634338526132553407283067709579952881407998999315001874974767205814536463242084972820946145483518872363732472574647770676902291887660401940262160894512724059164781586778511472956578973918870207678184356622120977109314556506780057850897834828473812505225911135244674230137758660014739348087565446695406528136421380518538658739660580697472825215401115432342123500558722060492992712944680207139789195009648416161055817944072704336261049661852519787278702740596599335334881482858227629178937757229530016890320831787437540293101212868123269810852814535467968418690510690422371968095755930275638037148386749169133596473041924679766738559697584001302584277271996482645620383997484641350006833662977760139140627459496046008914777577681685493076799061542441956229712279357657318761197778082302169372961331889071864395111218562168041539085436855752174509445670628930421275841897963742420051436389788217076583877065948382372361560297685841419030217947788135853448890614700424675676315804035310481935567121863015587014306273477300659547984659850492523944798371403503906650678581403544619625093540058917445005477803268914559327512202537612892370352482586346391276853380970808625116252063485504525103973064586541234219654159789037809373683663973106226941549940824677467947049446762323544750353741107879148552805190524825380260506987794817564831913853744401625295469026167862396977664020957179500593542325700621050877375590160918215723794581962587954989839425760144677658505616467775097523440095257971378973109060038479232031544806077437075468382628300700482279124648850820106730457251192564806111898993517087756990250601184375607320625838494347565609625234837940012481364263066835070708927644477882161302474704088723241279926722009436142083762970851707711854979800911880028973761486358856785834471098940740041061130645459948788602339419851759475887580809642577214245530818082394955510183139428329259835798025308097909590143842333461384235391174109918055725743522288090606188832939849768710123586105805254601389174080399814566438373660288158099138802759464603750134999037322547662015659409959284071782605676366982051888542539112579613927103005900208228817400247518419249924716118999904366143529437131163744712271247506470927452929232565541767136494825032940309991988482226575731343018278280249379112080518346856425226143420695279104914845278789899315518195892744023029709420802666630906889793018626229776464665637839354491720027933495852285783474741789239465758147512315690467370671174943656681317341056673409446797321004421887527736928218323485116838286510910003720535791773591200704549360589850572469950582036120036265464956774397530290680368281921255828171039442494171096116994208117322460501243477021634720734998927020993080904848402583953390700435154870831302036229836316294255681672765404120213802297591711642556937263861594165064521543091617886607530608783654105440859966263375220175366161688921586338770342928226427970322449245341414355500943437362373171588769374784192448563786841640482530541785425209972568355736100776444775820266113884213416876508043046065591115955753834835106799809844094977965583873688510079730893609545176379239562580545117153477617392991836179466130160173834558941874976776305641678928185252353758772107671036439913500904677533138931073665986863805296899334102609501574746605237015743605997486025224703142116415979352261157519479076638704552949465410491387017538424389115704143108723153649913249767148339908364751547496569111211499143589032500716495680977626772172957597933441669118750037967604430855036255757174563821904097034128637458198106238568433023845544156699745639048271346304071433906438391180734407279410172617259042431661915138723319039496639397686122204411784912638587145828132529995600624683681911364278673612300226026703346060281522605036569788086438833421589877019299598416047474924511879214701511972943666036740421262294473210411184501622719019376507885508569226775570257377371084654790818039494234843769794392086088644192963239790914566577122697437108051593197403308146462828290634740651019027734383369734372275969429350733449820125264347032205335548885457539504038236806023452558733896713987016350797126063462496574740512780335219092855776629862932264300636449514483088199164204078121971087707933199627453597854863538773950488931051117660500414168177437797587164295704816759698666914217234554860036945747026442529689219716988740444622138991345489184175717160290106471314195588330115176249175933300563909385731463123955562744352034800280406578705504818365913170004061396469902670581436808124916169108945942539440683206318720043789513598922764695702123439888580612908850152189580612760224094476334794036201923232131091361656430451763860797423107219764450649436735247443568519519024670977949300769196901560338371551277336797638422964022817706561661927270209676819689292077654295360898529303477254810211430309596439842935942326874609199211603990067126410282011222207388166893277039533174726088376645871884745622596250568808206158168185711768353637943709197568316338882348482855028163125980539095017669852246600401372430666896929794728944617339320768291450893098360135330820865662725149974753492374887928262197615001992193668921858460729020343373142887244395865467334206191061781031567897547049527278020630581243829764726189334887632782887722181260025915098323711462563231029753650734206556802735391218546653540301558927456733233534983037662491448917530193798006769887040969524368568842319078719520602468449157370674048529168074985563954868990870108033453210473711868330952189343730110128443931175473964929604869406081144349016510049975354488641847847684470116986749900229349269872834583174627084526926879389756006400355421396271258331206050614149668890929078059192292116194510678554004848767438952381671904339396456210822594629448491865458274588703160167369570441543567251289567499329501729026647959107177203542166912804320722230588171122624464531274308702638927217157530014444510796927191817068609072114292316859750839606559127064869664816573575168488182637243663751349892863469431381497716893520135008066907256161681378995782225586975376865150785143431559586565348939335325584936685910811166345201909057706165565607786679834699926203675028563433662695896416357736369052893116453999382973713346306362072783326606465168956352619493437917575103235928505138167621615092109932602353517287084580785644302913020903701579075603132930840685165595043203990090416396723501097427324106030789213425113316446237844180202294796323699260289942094747397139512793070490776565292090749632008471961566669802723491729508683351028542793972054008121017553603736360314952610136998763240408028446256417112118235176859930564165697760129037149622238300431943182669610433838089188174794497498878347307647478023679898302171277213633894162613195684838057987368048770458206186558722436852620863522605777122986387610244939285851435950186117491902393361421430989772144215012585212404082928552625054519450132180855062164335821700122680417163339123166082812316800632940768119092795831280920373071579824054971137351146033790629232353420276740754131617054204145163834032676641628058478367617587736921299587385916898146052901931787604896022496697934582829482907588618157295142633478831659619189053614342168721898446787544636655048773625173131744335798601611537084645846481182744465313928818034794841069725723102005575675848853435918386984722204895196259177012881884966556407756194704713439330028709341196121481817025713385142786628306843743856509153900205655707898411442443096556270246262157325379122297393334872062846134149002675782965517392074694049268682963012195577315407926321508755109085812880193750141435152580089363673692128602714070327060444094070722075119768432318717306627826250029298649964005311231183891254923664802538608479270490289336805331016992036023909974341347290563307363330967705760832586778811729907388308004690694076862401254062042179219702315953543042150350517244819991830914534141828351515330972018884433889075638647067291789904574305601400135642967243729014537801138776213633292830982719168484407362508742354674626974158764748070165620173426789629269700181096091468611890308264973002630487510722634970655550875054665505526377045289376475346627956585872180515360295463542028819090287255093998673125100464117652603263969111860076372575904739619520334983408387883037515666955701421773113073789501863364876858942595877497800923112905927766830048190665005683746766570058273217847055328963634932341376865712851205774714143088087427186063184127768789637945780087116856071366440822890151967678696732644748127448618871475953721411850471650195221735309461691189277139903224054850939390897533504601100259844104041910346620583608183406394395478324488630880601707593538828454766965809744895507088932762401916970478941986058874789391202301756301145843836947156025178545632278248282283689261329083935362748301687216810170043809123726308592629375489988031331433390460644042151536319206575742246496886363822961383691359636904279577360350421955300385857884010044506334644905744130305050211428513171997035524752482629695800683080322188552099397884021298964871957517930485784369336680575314483922064257982141906987243094418674253099330221392508933031552920397813820388378383039006853735920033375071070616218600133996467665393321830179267979844475166848614318535911818270212690529176051076874759866618516714506561336168646167501037731195775939432543311758138794584556018307467670166955408926782118010842813492158703437589522243974259001816007566930107091159679959632759995324218562202135454104947591141504590189264435051540674054716258293886517260966107842277509870579730806888494524061439686587275842306655035795904283794476813079525685904951695030029768222676566514858978009133123905172551999834514321422537870375067733728096068138082703154986561959267532294853822359303667039466848283160980598515620034488783292209225511238315475255226910926316238906733586782321740179374912657619982159089350015100464058508404499702232414338965022803421923814846089211964467128171051488918500969544170121264446190993657885037059257885393631273526383463240852815804760019533086604652441446390521246765906094868289369347129633091023559274587621341035853149202541138592071943971226187098107982860962910025579707539263641595986398057446409235757148860184400455432548986019254715454439223610430533805495756876916516471829018732626757612777003801219529356247969288204880060553032163526117642217673794520932419681915627069945074251272129450331927678549554598799518321322173920743284419500310636262797447539235694766716249714811891597542115159120028274746034323713920097777025164848915389856382098136452883708498413585211914452955349586165156202604777710658950138784928146427649967419241378978661122604927996750358978897107090003196018359805437887624613696800297178929077106006909906703925749164836733669070573284950047378680334997326206761823324241118916642261291175400835735136608251228764537591902568683621518306038312148671324070131067012756254667849873413743949324784844850996731367150504399755135909452088749525549043073042425949231522371987215945624260122324313860959836982928382501011354665316535619646912457528973273955262576366369531836954109573804755877722086993994122277747324137208718335307868052162268218018255322070549282061546605171105908400756446438883581332622872622118869859326458189710489871804060653884638892428961416278273349783003923871445010896339870794224386676385151280928410428508063915796012839072962768247490629097342242989218293559376587619217366887364394759560771329507861046615410765949172939940707691167126175753266355334245743295313843193233677323281163590048304290249018044224253002387379076239348890285563988838483006122458191172419478533652267083278770662568212476005902144438323471723431938326629593545281842109273311608463184749666387681471904186954951354450631695340579780652992361746700172038175057748877962468668842167182354942520440614882766571110895920218915284643187767155329838340191167950099408810177110977471679839249040401878363221259756023272812908986102424940735576672373060081861823972364203590876865190910161393761825082578865971989036098986820620116165479707799168142999555256835554552590201624316039456952872265236499996208740371619751893081691793370773170123052553945183646218388529812769068614715510290911230255792362735354346078643618047055189979610926328144701833864924997877360458202849842865360652919625120693940068307594842530594700837092928168656627310474881191329196376615144201172864981563246059431580148751936487456382948229192041181919068059953088443940371061463121557997876216409183645853312687552745013043040959082152062375325900524666946084710938335713328963267503114708878870167173367381674658051246292110944837317918995319098612760788460696232205788693757443273015808994843150422265124269394871479337206431867619393029165277487998355838439555326724322584564563479747340563189358318780233463424992519667262982068959852698034842184568340398635037434834073388601121433622560247441454390495235734806840724173281452178755012877802370340371728478972565903681231765910092039735568460872225365550790370920058589339109325200276505697235545638501961788740046276967130163409577283877328967440974589065287418592289567554849835711691096340751191146771954632508071970977506910464091004552815791413676604173725570478769932405566052153814356152272474023693588023419125396202245649460675890113798759782250353198841097382452999268714197874563700786868000858667778075788356067343667512277404298123326209515696263883751218225440359303095683846294705874968352925151473487586526792644161134043141076982486270480128620178357833103221010623373649609821501220146353627490026812266870619122957682971686854675803360603352206303188254885777511479835475251645197983991035956578802020547171383152639822287684793536841046748160659735169693805675986313748230980798060503686847926805206438987623593717132378343707141098387754867400848453244487506387142985520589788745448244401664938003334166654670285722976129834713200808062209932510769866628536429648336701114380457934892996182838171387552832977497598425236579733153975065549382363534242794828277813848804685464850448252921450855394968196745106239123212320247949907325380099079688864587288597819444463847003532157838884043732900966514464135285977789322749894519190563557302637028310194596193543419726281307811562647420587071047116464409486607709293577648604670056573786867012824009609110560126403336626430454401458193673065692744190799457947101408748899388981969837015845973504763838471107107104107598854415062840143674805014636478586823903502703306915999953868059199140242347510998238385703625973596855546839307651087979609752635364315535804671215639139025347921274053796595716376088090284672986285144021889628530522982560385737001754335992048421199324427334536426027663562236096139679512916215834144738994535373980549882865662492550450691121211082312379571195964845699716981256073583055745944638325168173575995624760733642766518846095065586303540737657020775825667132410569225551566685647857607014965287640488509967686829821163346507204790140050660604298825870247086744758738974282630645119581894026946223020236894193807942194041253887413804211000501885155449555869202625451461209760491436657202881139261746415273608323254137757026230325360702418984115536602852201083017986994753336317166762272665312839117093988060228443923177896393460337291675637942819861126765942319630757494314676432817619366645220492323087038083863434761752570138720893762947287050962982120540358873412256745578958391994043056121128369988623778252192156814812124610840242605707263367211057698544559734855096300290485266542692602484726193091253826835687914318219515259294020974464035129413081605578509368347072798886783682123284308279180621869407559849973380191551315135659848868713709041343057616834139594986951963895345753656051878269604221335484411858954968237313610206927201120302622130927944960950937546440627273265673170106614046199732810267170276471601204931289284381489397789870352045697834813129376949378946257016484316133170354080648458363176360328928274711228263283959817389877693967412387949972685694309510916675126261972478640487939627961963042113210460609949617948176905980364255107285601039865857305054219180501564672313178991755252295502301499389722563535629871519027233889384610888651748317114545402621012757873440107244111545062875553292707000711338820336942041291655652889688880934369375103136656226828498591542043931399858390605630554729225926465931216355713807718619209617127365700284526211286004782834118473122561188876841729024338780096794596675267831218470986166546133233219820124080715962226861784079259933445179386301687012646973715805812562806950470707114584952955185580492899148334211577249137455689807763317937255750692057996244782708243375739003698752120391303319869285537436851774761141662130895151848564754332054223783119917008694130539577170480161132942113899158864253149921507608513619586487989871098122194285778093933275405139627219337493196975667442675725296518119012358116053538096485805245092443731019000629401232740197550304437152472356414986991940948325832533814250893597452939107212702081353651503974829988854247184923923822905323014192331029994494620528028283254317796746465474643011097068308093546271216125596300178974571589651018099395385914043535732504682088799562209345455511901881228473059411108092310107255735849610574038262268989513678255546395565992323093290583199650965307942088577483017380400406995602273738624755787719884587827324469200697592477433303159224151189988778260904665555463446420263929826735511807682663186982120060992486488706319872629894397367706021723726301660244470906813265686005135509737001446674429973554743152316521357806467632374870452682200082403855859619108872641029633355870746754567840394331987891552180378707913265973420432105735614095128228934513830496621339423387663603245773125870138819326761407221613152513367130325996436727688058785123325902379861625216044839701321087886154265905134791391491343598615759801408709249733506460497452889541641298573180937770930753290801632709139724946106380666727645507552362088760907894144543554577431497639508678766127005879581027552439590176580985996046255605773445707254060201612456693395910678188568680552440091215900516940942151239240904041668735534536669528582401250785062075700682944541648299707660711882862001775264385685932240649852060536752577126569846093217975064654292311915714683452288110522397166159091475715576982676298974884982039097192983896645421644140363728912730369785425555764402098982191476011607896930247152371949145461157298996984873760575705764165763230307536006581851113215312527454930853954630050195898495228841871626227854078115747412583433566984892141356062980027780634747905327398056361476519198949635356644198611780407293744305094927033582970534088172552331868862020841513642007439991552175500077019950825548924873389242747714739687204051251080181970716264720368771382051564993596701233953481657523827158617484403162411424223878502003975522737660370961327647144482392174846765317486079775745009778444999059940420201744490545104140575261761762339598744425905208804939467561590212141479421266618228403012097846368308483334168389852523092809571182178344076195504005144448594542900347957304453668061689587954104443734936880595562539319140599438636828744534786111698694179771541501426495766367499563833338893993721115763428926933026738455503604995603931493894554153608464426447655345443644147785025252790202807878552023375565186044774161398299993046238074691904094777744710641260008453909812706625874239639623110407170600787920922893462548481574384241491155302302041272444520427467783228963352429610667799299229030525173320728930989111295383623496154099018333728457532365357015507045682641689846610511236166213387659309868593369383480376396903856388028416646598764755364828490270401181130269620886608088829289602984944289373196384029588817683114352113952848037844368068645320669997594434153467820982056743262034163566520629303143167920513116585118078051493521486032923386724187053047668615911390307284298975748114320329928656839063101631903598308292780356927670039803019061904874963319359563019816686901604274600164830713492342649830174272451341642430742836849380912900229278043038007836393083620994919450132300085210834162206598059427039627490026319511555517954532144383064872021860217545645682304009588152251725563909521949686588040441136569975107107353182512086451896538119443165524406399774120913789570769456611128062318912771901454214395626734349010884160640083119995803692019260466672878572800625344483721829117390097658242729345890073816321473418113918894390120823850121096994295203249697088180624133031242920809594111529555425994791241842343995825965663547205263696253857280367862403852165603128554288451855501804498013616717837866991171153175408221460275396263475416608913284078546254521183901426841302197392346558836160655933375072459388711590459926043440323151143010531013613424156789408403633275464400935730904375613754650873667366020658960907025778857504473875888932602325333177579160615007164528859598119879229571109015848798061876091712508497232678689828318075878990470412000729669742464015146856564225136162872952464289101474151703465099739892914565473765126229642356667506879639749234274822268370570523414891014202414530035794684045439939629920028206871707635302430363565862552478379875331676748181024800030264698733445596666879008646220291414132225852375814289875822082758076526207350104346235498162604475750675332198686773388084991800126486199104233907553604724163153167038419150796444659225812427510719743520804461302931689741400904125771854551488676485907196700641884389976531408155584479776383864909785107946195897327373069554678407126701824746356767623693789138061103089005137568077525023873333316594645635626184700509710930207813307393899291263274423022610555725788326454853132928835334641896168094655831395913127842673661126159249328869828145260090261602866426826771264273098334768137688760686556208815458104053020154541967322968685580929232525641799536387311245627275515762826021928533488277849308854413732516110984850680221621669957328859099869034950968023274593940321083430887251485804446635568401033127469220019156700163247639109160181849395351027751412438789714939839453989820597457314972938234675237687922441383702937179048505743370502006857956499889615936445774862336511897257720403412102750475463281210466015154694055026418845358636970069583671379784009291246556737666705478451148448731049775072285828389816578828622271886764588107824727160540921577406304863378222332515891267233170970542593850482968225392458351942425357867610163361436858580882168672587566802601278816108518132623951511476163647878945702793363759541560217423144528241666264855699241214705418170972989367555763687506668236426695090193116525751868335618421467723714548716446715414377665306852188127286652170748211309338831162671161872205391984479207731885589979305248194891146787134404434433329552506719493278042208732718882703998114089627740488626823862545424604623720351050009988400397703619135456360789466636108602315434429078848183883211971269319092743239584726711613848945508834685934787221663033531338631266229954199733818507035910480466384648068146599861158800926013467065707088200632575500165562771200376704515289042444763963591511293873019978258423102093258214681489674236479583043187683879552125940548100045431112339324726747841138454063584584482889443673066203146748461976115904563631267113859635100399571445054758770666391279790350623745810235395439430348292649316340034936350247518165351627689327421730038307101674806595447215320026863036038131722039435758807552367284285965005667860977142755948395693685617011157122807393541288778432382354729344589057067192063567530806996223831587357606452342587057911889731308724549061828847568785492550270108855902998522294526052588659266070938824324491849505587432554760921782946404995525023703083800066852848412125739540633621162534016824489248721483069898459340323407507721520829637178893841578185850119800872713953612017088955433249975191872625632342725232590093307118336024971293073320473996643625124917792099292680248083472449123434292143111513558931286409184572151898942145325994297783952421539875688318933598594083746460800235565078268592992215078296222110240548490487774361730974856980605865249682926033991122454912907548352523489511131582053228486119313664834967897491228722049295846532190800558214383799090997779196517768999280297616698775854517286219719637839674948158328573339416911923062247535808377632057533198818199051480178924726165880115591519233600521673697909805558981255358592614474647903021750927107689223672767982478800324238668885263786682312731408432890135485054748555127569247240833706986636909749089541305451908079232951805490650887823551635689857836868880519796341115008100741870434875409129504107212749702719103028094534695170264876536913349997680102737985517033929966009425890294811492385127745834437132104223288155561126948607280369907597229376916676795816965493021882011164832695645346567386358872409479972907303547975235095373464254568739685140074230464389562455974513340969457729597349880600034574972579079651671527610584818877561442741603695283678474978349849155964818677268135334910276823671394265108593365541225718956753481557784932982849590308345263199811044048668101707099617602040284861386743571145085858100520837199338230313481671634468802491387498497970053198382064690789871662083057277090478254070370069436805816763778693559923801695967594902003137122901923905116511168559155230766177074893862366798746919501321627997737102805275753749317137047359822746061088304860233550831898365694874404472592149698323890488040588160652420089820377438961317905997029586544297241730744683506197801239270936151568989840449201037211837517203682036129366983674413886246752618831003653901057918865520234469626583481783029758083721399459898830948763663116400072887098114607245807614523671664182086342311164266505431035697186727407068931335143830669124617666119297346312404629058493015099588192313339189337027206572337767206207154988887177954474449011049878662680924730752793875001318740444624832121197171186149129278882389973500921161970618316380148997086591795695113783378766266731830265061881109462674774440155487214447129658242040771199706457428919486177660302818774799406121656949707906245309388946711439019813738518862093168548906524597847620690791277677559271992028574691192659706349247817496822199854928955938122508917356580866301979185477809471134069554659200360532529647820433045822445870659316796780688999896999131008218566884537414785477518433466071479137730918933397538709348659887135080425502970410311096265184790207492973715845361942130713624594318339027705692476404391349880956266821061819636350382204966632399261171813870391593605230710358924822793534846747756797706115184057097719834270283692490285880512844140004570276837596850105906150624687686094724705717543398185858250336198775094204835885698219609409202996413525342261794634069779555174569561223395690263024272763921726317161404902383034554984815425525215211401526793930713956057443763613761956840628062464600724425656460657080554431365155360502300059360739190993351566132692494255462326229259087339255526399297787221253909463983781586984166852284624206505520056919499436775989274912262006997776342516669863365934427060807545199186150133629562210344902603050729350297406860193830812211918494427769058887555457367650529103552301159215351457740255948245261260761604187482000953696981854775362042810461042280911892263294286206198644389630014768615248174076934233814233991871465433386933192379765893790663184514354701112800586130768227274371450865209623580228687942879418658521209108484323871060369776515917065351094098432672627676461951597525675646515473900292432381729776866897503745093655227284431700605779825451527957958807245760372710457215145261177176266672797614230436416171045742364502668664666159552039872465900223373149539035115285572833251043310026141785037628171662633188921662197293409562801427918023706318238644397431630627936616630682070247994636210471815402403807448813842282303443258096582201088619482736342740423893327161905916807054746546343013136491747227573451305672088019697988386644835540726073636080971567930817754992316714797518727614533787053111641467394351082664943525764704126045612949758560181645708926242092601239439808659554702393212804883087721688293559318081616942904047859330257547902894912041887969492963033229093897972911694553439446840095126501410076153332825764804362284295233851422997325785404590338368534086879537396673216603734308228311445112817903587799080456636313035464362999031394355954467677719536272726290380677870369971717784388818929939012938061338140369125145825521160439409820102307968029112342371543178849823497693960629981423740768498577478907484237441511469463009827576174370024089975476021650405538921889725881120559185516244772205674647227728483709220607903209857734334132748815615009605845569965244227982988616568775202653681983448739247085991577838468689789021351290633082674604355436734685420576847336337054410311302414933058069941291596125703739651780809107639432207309422798228659100501822992348050171081199724552478164819246455225938464182849187918895237930657160397754832251964121897738699008895366939318076873598001235287620414752419082309783760690479615303507937463834423134442302923967257744086223185739569368274224772206748364403145396052529750508119213814277783758299377417064967288679817048620264418558757458754491239756961199210543955636743158971675206083537824312512854058520648930174084484033018166299823739682208535340136027285855777538637061706580725976041274140934134938251481996001044155636936691364855375913179052209588393145877260611345042200110857076758591961077988685436165651624792662955097411191229335443010843114797268201749734128827746430834669131210806308374362814468237318240456037928037718500100745256353067168653499238973343725581056276821780671196917539085867741495375592532669867988157749205217439445789438859823518779474496440207298390360006067491392170653168922451547069111936965569114584508137104154327672630339519429474666856304626130613221448847115977118411342689522596172323959967704505668609479529931484816589339532078011099682187556959105492927042365476123834667726372821452582033058220971255785673841636778730545296836022709161028745272199615669373730382880916182989524121272808418243834141929089983632601262814066337253501064941690079631038594616358430325346631844131033157627342674028804652810643658022358973404265062120444450103013033704358925284699746605837780315994761686441323741515046685393795902232906213558758953354089130630006104895129427549661952937571482974782115925635024380922793047823980873519727105550487039772547427857708925869511305385215684289696797885679046415344750786949772789816286710199273804132101484334845890744240192221715315322749381124672103425533365132345945548464904623983179293247575445253696074349134869256062850499299559795155436699013075335483301507560658836969665424012178282972892669979980530465610912071611901964756597897109271946121579952195655736289525275961384204235029957707641651382723881854960327598862981677520321300142156452522737457930247319444734244589954382771007365753878891727212794209227999081790435036216205906584516756492020504435509286786628237935336254567070481953376766368603930348591783410370929027181380592238803120219827692616311667831214109976157345230523726837942252704809592163951284162328677540264387799637540587968023797280923934529655139402553784101801760497908071476998561592655777664741234394096099575897589141591095013961937457765093039534034977957211036873786606786261987569430246474736306025468289786692040044649590822017993465188807394486237984376723525256537312663350234354868151765627074376621606623603348316726405387486242178400642692186452618097380900086284230985107926129012583822374022189633001623301185005482167057446076633932250238435932574099073290040932879544250658628107911490521637905924056646852958479715248967416711699799687786842484135236844884185092968611701554213317125981962013380506192601300076664605992666683934905297934344267759121183710334980609568520107412611000901926823194711423851850846988216023977652683245098629797851634191419733932221653110840673203586378555361136226409201165696327009226238092246196120627957974917974813377046748105688204104697633350449059087844030847395385139684006058659318783222206854146137999265238754263958428531185092899842154373069415439768961128644425634774713151371736799126560300572975837036200304792258722120609074420923129106573468611860427258395212746625781250797383496213379867893798128120867060442600896587433783673257334656677969225827698168235883303629129585720652576227871639044517529292667644782525815104371552205383817538705760237348098137607980018327847074436204812812488500872998343619644655970300810731172734605523417001674131141268462282276681024849417194820787910052911920951161768633871065486304563942845479265358718969387210407555916903466806285712098562739469014030232841445530988790093645952625978346909055687890299128126660491088043028765620916749560691890251987822591642695195261595724611468509229494821354901789466648074732345223282998044574555867542797683191196850902660939376297057412204241653502233553902391184070137848945901335721890810964788047569786772014324307383140440587884370500648805283921865614958255351382601974387228940229334156100490919648688312377981433291074487927916968140632582203640405220601800957942881343284297901942330224741098124575468265681917254049684638456397137879837512435892686734477694521709422939689206970214234923938804582927900281151363192281210726632608666371743845094956663355078936871258175985711450694109533233105139475681564263085150886163688372058914673912684878603326068550971698435321599905449659235220983852464968635772648912750847021811493593384457068446585475227544827767615674872917743417435529868835463429937891478866503042336940573204084649122530159283242135123633773254896862456126528959982423909926341308602444049861608196711265322561202092960580646237536284489623943211460395388384701181414373344396113735346902748111794748401836823211869622384863298961453857940813849886301997652673369484018362691362468983878502559406678612985780743462565058820812049930346388172605697203750148371634836132791687015915661391176139883589439906542928755296599081711622824055537513287314423205344928924018865489536023732866210580412438539070850239518167413914910917756674191078775331856042292944370220455418673321826356193987827475383852972774464148915218539888567647369586080990056570724505003114156468835078625292051850287078734377321381370613405655617062630216961778668819907609169922318745414300469540276469929022609898880358342976683905101436739103778379860024148440833049648381554493909373927644577007930309021692533301073302563660464433682249018834753149171314901194396191279157611871046424725282865513553739649124327977030591982409266030694343211200763254064377777872540076098773352041809441624636503054171482806394444561544721950199026917078373091245428988449791223380842334977691882900765092236373026964261783444745448022702569913365212127602966161289641402813145248773385462417450615193554035018777764149476854134116363048741392160490099799896706249138875736432498839198027070552116794507728969283195702307920360491921195043875165419789048313379058575961197982228632248434043839133880922059152432825735815727209638464946026864515985061393946781787539541505999559043832700666073948242145754062152067866520428444221894404920408800301186607358201426982526815533372370512974094493508738755725008108680765627326024895802986358515564606475382868258188031159824311940298237731804256208551782171234327575622494271230676473233532680632603118035447531202047176396811953889035673434984310115409230806183978499694431899206924774780285049440608162214961511120685800493144430066841433095516412167275845388423261089475003055730295659636865514180584670243952898328167511616460087243866378109394909425011871519897637275756980441695269126080431225472030700372684499651415269322834700572794493398458671139212824256205210681209720099990660113223143632412496201574830326200192469321020953230025856277144940927032721015799992621322060864752947409035891453019518008183058373835857547175067172106053377936531160071298758676087174758977191195820174871577565182622113636281187920684750590214271011141531746521337506413152057342503292593660541394657971416920609232169469393639374865825521959827653323364850256322204890388852972445190035202603237254376464976448285953786944441282276698680492089683055763504140629211724785505424139019027705607446906006006406069000701809531206391328737106315690767420251752897931952390118279339384920724121435496891077387275785171258853613817673083407378822627609746072636210296762099745712428284131487998644798474330037764779187246407311590818870751141132630975758340905208657290885561943381506674721749910226555831740508594156205698639064492197641568712101737750990558278821608454217879606201377448484593812515414587883681138642934744499082455290695279854234533041380551181545438968158352180419182817696704136797993872499609193809241965192861737414388191371620326346820490055893845213589704790236208845536126469512261035734183713835881800410126651343488581812981839593698219745482599695728650873722984305802186752195281905479888917345724690053459912125510185452498680207047746253703098615409807426217742541865570796390562117863135588206423553920284268021664664320954826112165709729982304015610887385935092726045946780177092828591129203350127980204022606458068186911301116552280249537786533433133252368040319324396763784104511876128338434235212528915440536502178498597479597609457950447838596679356162999966273027230536554129930713044520114340424234603591923897038912412427760912523238867486452779175999096438898891283600261402580078539863542941131887178926430552380372493770909104507575713012235962555349120176290060804653121150659126115769313002831685312123714104879037373200764774537542194457795781474942108089568572711578392261408128611772502150671535870866528265628903916923219964660035514007354532235476916752935796650936691293095130881029161665095460892780426267451830881153634404916460176247716133755943072921427057791382653979416378349765729759587330896353105682977352409736611610849784755463309554195800218475836757141998698875719690288288011696944037356935901176868945349422952237963601273911310860924695444923387765481206917323704735447023893186114341236478363808395585697880761558732504852824329221875765799168930057541668243085596003332335668838711923676291737968166870898979496361127345012115758833871925025098630750614857306627536123491053078039449727330483353864949139771700342883785942491781072698857951211140449833781563372359787432574292127016988867311285092047910925889514442874201807300312620821954841746673051428462975646347638334905849522632753897643980684094447760318368054879317285963162367710761327841100163917797228575907276353846904101618141358379292450884344312447552835335290582780961026378575445042241957399806850161433548422212951357422911349891324176884069277184938424906874754099037553601819538143121625238517069302353946828582247975080222709263471039511700213219590214984500635097995633651922975380674811973180163070452435050829658898982815631728670353179293198162758382041157272781904477834856194039944808864479553342305912518519781280181028503714550140348902035211402288836535376795667494639118598780834445520920502119040742466443709339526178857514737549207204042934561750893860783994206233950433581356058036979803540656823694519176671933803453320950105941616261417379694009389579043087201606373658976292226223008932075173635202848260112421541853358663721224101037170327035272624411399800865944923138317594050777802436602749467700171338263801536862953472757556436781414272194978927756211942442311987838843666438992337438451476440123984966429350441093934231332936534393682675480376715051155463329105746991144568429751432530437458430091773217438761772665143624567260005195277373679661945257859892691145729818530352584860054418423851853876899560844319776768232676956382834000327726651728059128151594961083557043565437066877346340977693122714204753387419967663633248295790006797123489936248797000108191373394087730944101919135538780618495108599598175228285701724736740174159539617426520009317107444877049249104061835758467116910882893353860210578738942032927159045761616383129980005518031004281757575322818086188638934494847939922654309852265428018761124730563982792980558532670538592725605594763292463337816982462476746164365153294004811104363578603075184527439688075150984230119871857584228887388845446988073603421257038232420095459429365340336674394941732977669868030787743629618270224036288266399422376592161006154842481411113720607087508097706922032853072622404219212012579288905487438737546966802979875281755010468978681664323239264870016243671415365994632441388276637679669523875273392341449190308099050373575527871168947471461142001450657642681301467564327139642470205561340169343135497293881766575977879120156735742496815469934427322700270971715318066333734924354219909086064376464502742717140268026372175627392377190897945416547063666572547055743387950062203237726538179185170595071270964183832485920974324372930141928670650494648333956301716293311268879246711165922698968257005788914765772391363076207531977680406981194326628145035996747096458749027133449231509339042362089994903482657043365793353380865888203278132521762157315937525417927217005604894084499284507374031184438585458005716553871060719825079410514549397361939671425632015322747797662541894874708696033604993114986168260476549205942093477272656889247012832409810729442092042646420994121800629805737131126243702813957715581777041294380318722791616909356089864186977204108250291730550679416474955937481425629981078502388951575606864463932759570918329805696220979278921381755768527063925594295237688324108696302738421443890994701300012141649667905285058528471006851925093726944871158978417168305296077947981754937100674088350396548719480496981329245360712591291216180781453964734561554600274950385340279628204125339547219431483226453070167215215840315820204480629250388303115690599514133393435863990006468345387748048117450681747402936116007078775575257986231036645203244344454305841628198433648338544974068401985173326099734770506439336615374634759385994804297952907310097881824441063009438928359777032581929260893422582086875771916492230580815662541238354023060205301302274832006925586137601839986656369977270866218037287474503301403792036439877694681266030495737656127057279045095484940239381739914994672229003788042668950013875893910979787604407184725836798442353008092667425131989709526631117449253081244420136460574439971103357853422559700425331954420510603495022298003216440954353902956279431005982978481121634812327035535435401421902430414314534242069562585074823391578169215176527076730213568012778319482146085356619608233593355256155006563412462477226057861842167965020995998269311727304343799388818889441892091761022733892309485450427586550593974159468109345352134929947555736377582305191647663158345885855359697440918382112307655180796589267440400487865421803548217958595861422785512254043021548814314996311236827321122685909250807542226831723957710188371336735896341557702696036688534757465741903714012331605880553035964618235421057897514854392493784387477993579971636216263428007457705232668476246490731099083184223168799536608168659602645191472436054992247413919216888221162595144786637414370463080082488461214659961302931648813051638080722393590577701523083556943272398453591808839100635364479846999527816896273059832364007992533710575645284817546446042536781273918176889733774098750703553062450236151506490545247708425306895077874483989108494285589696663875334880757391731389167454850520354059544480312517741623593434570825918068093879733653576810423553699703658345191459103878394285907841345233957827407752172814824536638451680697450462259924765865727746682417888773601976219975122763472673964347986763702872650067258159076482730365149440870092590708381526421711509638497162560133618205831747274575797629098910774216001549614085352507114864059295115315922882075678563971095610050129561036296896349353722179682829859343167836335525309931499271207695310402667275910763780706233830303918131996251207432102439404770740015858912041213858303172485734722236237149950208987800851747113979000337258858967059298325348070260455238381633082310134872660549311940164163468127391019587028223166918027839203796721274555145922417988383924903754880285662823620529311426268921192820000374597965966362984503123251682519091761490657320887398391253074326888767143367893897835407698547019184463206199180967457032693852515672774931590589919623350504105429040463628571334362067769429602978417828150343235425219175043293751510390857572067674903226241243733316784761687769537294944583410072357500337584319512606403552578456520543664975007169034029557450744136834084393014916868736342308603670857222552355434158571442384978246359201762048492812433471056771574009181339343972232848808059338292873689921723413036723625336869677820062348039185575590575047772521148132342483900645274208095800272889438791883236615449028043011439255261932976296893606543749872751178759241837378936506400456492046722180336975313865150478197873352723100561719807158206918348982321897758984900285709090896541444286777565751867746458111720195933490182898395102430376529503686765015374474222088875534641570379764127605149782171662116821925371493620582105699846109948792017007511083231900922003753749550540541901044280929381061829794084123751008530388475258039097841677287685024414734191805242264068631484035970699258817417929618421441538092633818760249026821838058804962999612906584384122786852918124199015272564931771471211145131197510011671639136405942331205848637039525981509499592705941889855505521149230265336821624877920684546129549005580986876197299918035715644473408609513153586204289211082645322022284047123790910683882680509693436297982372072139088939443011561715860190741230495058791451502063677619680545498019859055234852431472643501324287316456910290362701480784104090211045027278057749332283266243272395206645101508067510300926161812199818596878004693728187600407607888118319420483379595669060660888918650594892799096594606213765264295231451916236534066550068417034777862284222958187434185606939277799342705986601467577725215103748460215129168747304685082011813927184858975968254839274993878055023470059890160598299224217607868489986800255175995189111557957350867841736065356083890514334344860372023154674863645030119054711283044255243268543204219139160937317312125664125742358643967008798933731963630969886196682276350000935573919785640759561415539889085809382150382410462754424006796514382700389933894866094063346632070290413994779055396931453432252406873969481915543615201853744021626958284784146819546528699886282906692265608143039487796586441543234273617486795865353308870131128551913349342688103371394504145084604208316798242096939518853853084512112677657268300627321131076086842550775665182224120872606878636408733979750232962804988173481656515448047956964657231853807082680540962293844468773071630949385413498031848978221004324840530461472255649947209480677588029200738403860661867033114312108950779294047105869497244126686295293624503020854724058664756708584020090263406398765649378528806045251107715331078743230806966947613734183174590399914059582501253785775714263211614284697517480537369206561668638359970727464326383149515059806840982055930048214204551067099475985213566349231760305888956592692417123374877259702709627623915525842591732010883669694428942933868173330437869903047037180872079904177470834277648516607257695676318382381521365584863796965672152890899551901788574122742489305889871586296851470818443413442906455755729506188680298976749604387728755648305465301273214041277312038736403792641036299113389102772054418664515546491959575381110666259940201654173012322458215076608055257427165430396480923808763884782934320235394980762537452192618364478158382112938447885488297226462832585575246381903556551777481247993643638774811601002442250936261290421904705419907632709047216803356619133605864179795042165602730082476021907531835843571374982599323105020581980577640773790458407333602131450715492673540911831006951439849879211352408375956040063477217762763540768988473238128163901263907416988569148246138105261656837283117098991991857729572365071135851462225604009808953831077781699133930414634227336015951735630529521913862849780172490141401800940788445301333748386740462802904101226268415473296899672676346940233700008268658979682964807573686394146699408111209696525385703932197317029962467891435614777674885885799517014478265409979213919699920815149223669126248747999526456234088340237839240869092155822838127740959885317765406134951239084286740357067498860354013541623048446978621812852958227305110589963611825864288432743929180095952574394270307505364073861684663148126447519020048727620608293437909390966901316012107176084809132683504087498961462507447841781788881339693063347045236137612714048590891807515018828998433317398190938751599806515334550418355482550786114580685197746275261515245596297000130157840430390808144053460656113855189859426938332175426133937325852781017361574935259549983461082104831491743793452420070858816074527145204840262785208883213126947167833800300196663131821617290796583063297743461637043819555879554027115173372574948269752399153543092250641401847007981421170595122353144611518695102715909995114332403658400361134127792995186717258658839948148937334561565799317871170277525182721158768648594013873126557505798069500481769946465208304677655446262451868147362747059393313026158350519972843013768255649431566396520295391356670714293294626575478138088839408689782689506745085112948772129107544973678569841491290445701816699561031727557090745041826069159536483439564604108476031587529624152180763944577584016527794668326601273709703513906640052905213018361717008904929123359199729349891373565940900577077553676092027818737741539748366717093244054570808654771048662272556130322746659303373377736455287493972787370681880134743647000990196134439154163707377702494574071092938389270344938843998430044373931584400905137044637783854696628941599934861325794106538503300896964476537400571202820723894576161049277051324545926993932615808494678691217381758010871492399899421281528947581850619308839035618580535389518211576254599741188400532393947137832336345537920698464695446800552484459921688388778937870826634646218981390593573227929054295897257725671967830942136450562225792353838581848741286595226951384172201927062522840534884031500375027853806370598795304213781742476174413070205073165276844555413826881353795126176797540633447323792781086219776642835534232943186241464378369333632553968202869158496140168722547294927914904512316155594779364788293967437379989128986166901567510993461039874345739355908230478072912292168163066992433912275649556543551316710924979456572088193272235910432066211795119449133110217690837703077681127564001980663002825386353663959506562661101198753112596462672782676745115195385860482229404163122503209210735350191996250618983730863396907880360109978485304565465216395012893660364677977233998822180076181742756375065251296847989655823537395629947910794538197169089168542246099947141605478214086578757871325784040901574307712887864187504649024344955346787908046276969824149145153592279354219440397673532999163244641433245010012394444051080212213182276393410866966658579860147501826007205798199881551837343297373264509416208380455218031661861363195320940256596670136856611021385952142060771477010394933766669576677679287443240610028820195143832903788851803717796046955850328939815088503751807368785122937641051662288481779383160150906565451235156947856553016112607792331412123314533624757620536347871035708728228055008958769761377091863412392035157090312675835760151497007567466645505608438835386170084530518750979651043080128582300319590810375801057886879798513970565535350074838951385534924658283626365353264155693562047097817469388030192633822864684570001208179508776281921484395282172890636599103350286740549148463918350973912918273596245442045626366582962811636664133815194824212680648756533343303762104533198453363128534212757150055285199520801097258634947435574261094995108025432792097328966577343287218397810967964890562834163224495898387089789459840022394115386061411600910274947231229474169952147984448034533002456427287251355415502709490664922808264338648605096114278677981409221773955471102450396775545722518695539511645897378760153398213000335715704892956078628670990054013932784131120931756856638906055772211252911969625943681405823304657419539030420516649391559690117099672999999594816481729491995942483324768907052242903115539564270193980290052838478458019223867789475667749744718594667438042145908846745668890847577843033575471930534231064237121851856450555241369372644857261693352105216581379458419149878201990782799968017835017523175663670169214616636480603674597351741601963568947890237329274458018284684054910657666806308361071749064694379352261559855940914102796025400829301579080229210238965107023389153304689726413543354303936889817850309145652892577103594880945912426284736215134643854718590956049251063030233063476316439871100629620712687207236877298867110497037372735406814773462922919226179798938751629663583988589593043161104057794336534389835500571533902049989353722498949447163182902088674836430131271900027693345599454631985341689221358750483473549381485057978884905846028876925136713279833585019632796578485182133965064844133832416140462983768051377901509628187607362332500932262230889504485635722306009740378554342555188099561475078171747020069974244179410927201444681406527037170525503336129717498379299641567904552819532381629343558424741511034579982818245933481034138085326507754258920805443125995021290110266871974323034928483631899899786223025136906971554012531519152564172143544589439597440351825758441178201829504892349812006187029587058090206251693327572573222939469681731369577017472278972639283924798867945475193520681146118902529839533839238123747521090162233320449855935736538747518591975130451047509779001555420562099096508622452346880367434731336776174088246236460453559914284317773619805950797025484729730958730977254337439282432078836341379943838676333558417713189417469094956535175534926659617085298332815243307870555426905445433314725445922303849022923021413117827611033955067948516438590105423458047855789362880167186011771789800213970180478179896045201077598162654627019510621330597851057916159379656359401144527808058265749116233917709683575122517585229008632679101927339368915945302930028227406897414269461498279662637378218527534378242042971762615572722576363295216861000268318159577901722137100530277789859745127246528563462402470345088211113900986425088800220918949727098394073122760459364426728606747676313999536093948245930911641696127128736241454694137000590683220571421758763604907269904560110362652935627464326352935029784681488433121841383600684404029354557897347151158415906600167105476152050083439449049868008432810923264107094755983055573334757842678145398879455118984242221337574166346810281014764756263693574101368335221357687105639951031933923718059906872818060767139712391797576097819793794257970659683717372555449876357534072399875515370868151848570578176482511257183081482707678012527204272152517251171614626154081591135800909724252089791074021251383278006969557718368828284647918752433166890435603889731614349531120621304738647932819905644455854036249810211283451531661283153825126879271496110959383634270386029071007549985549270477528481095125758826933204930292276995794029387917803624440849567861233690070076776980703932914001349291532282634847192825151376023900562759944653487942511723650871517485822714887076057672383675542084296563300372641980633060847137739063578567284644897688369072492688312339867335193582181716913637634274073387510037810571573717568815857548047365342199540192009974286683163518485475393495102905140902670303062817388078216360958189524621273169770911254061049389031497947996209528431918213863779054312277331799591673621528057073579453431147225221117095158729917373750959987944028702865199063273025017307064019544210545073916273652566759529360166999661329264856540159766326260165799863803885598521615918945722184672688936619341401017772005496862647146027764862147416711585201284522340088125450484474846151300773702388545506581238342883446894516240297472175511093818741047811457186167832176441674194468816744565578756518082003059852660487541115825210256349485716485609965866352575876611973622116389203200383151427776529986401918233925840033784672127217901256518315746899555531701182809903081168527512500215666063986959771582614917212816134042902284083466499915010275731306832656859466308290211667325975525275610097398968922041244551446392513836563484899037330470927470708186536146440070134797472564510916464206317480441612473803913171274744005549979160243821907349728627454965077794085998906716604876224527189411178348409339973160952203482153187370183458397105106825466673830887644936410079433612485805288645294419350896441493088424657629816276353211945651134765726670326116781248485691513723115871556111722698641594388409715543144616203264088381836689269830218232984355736787185124053322955334437217525856642517063317122644357995051622610836165899602532213715561032486250398220421793283648468106331431991083067554513342797844754214139997515887761460212521686272720579137580513473010802524238222601731103570350327994327851528909228249191700176291120481951649105505395999437355185367330707912659290363454981585431990169015239239083739047418791296627714558217445126549981156041392400160483244402639009601838260379292295888383040843132405537279513407954131211077029166858591276591647962547016751635774173525758546052737234116612873993873755691492079132695773809320206604636849967118177541081392521070759648740654810002007733582071093640955545062192904902511076120932922588782896271176061131686535031063449365968318269350025062463488208023186248842926324049341318165915532807664722400204420139052714603360807475839735640090706440654477518337871620030720497936642326699913668771100580864457728489051376850690228638381788885694335382158361490726747214201285656860058994070167190371240869845674090278428983629567658594110151486138928491511193881043286062639325414882404933154928782858948345139900285420468236344324983578561836356278302705343401501104624616946341005616460613814036988947939473748077218566403279772095885064381882751653215965796207399521235713016779298174455802989731652167495695122189953216643349654256480371057667609486798911217850853981308583400315461331037117553203945358741215795749993080006755749420181749782541132118915146546897994947497874981799284701695093979238394966260171253435049812366866020862769391574617981634207289408839921781184072068134522494820739312223860653912233052332968098205111617852786388459593398654905494358770393051720051708563681238447410063897133412702881161703026778948114227350198519027990360147242255295534913530374438710285452440914039086078717301759990827544409474812697572531618909817614215503529289406059919463682605056307614216935542393473665293668915345042613993313259494421055005880163998000755065966331208304112262615947935512152591176016233872735663101959074763098230605250304111198924643651534907778410657682712473645917386554526429130561113878260977610354662076696004655698533923501406859256814775710214847408637466453160623695220783227583400969879384152282228348557386332087762302772170813544283013842485735770585142616554493994583308249659671624173731496383167554127301874422057929322359795909077857208589447254407356151061939665299765484370910330832475381066106819562584783869998680541609912909069467028188537959418997066065004170093955945617260523082806911103886646427635178395536073590599228447674224142189069292723044754139112997674162328532689824609229622490899349825643638895061014688323332117733373210229996394727161400700271834408733213748122279157218800892986772028669840636465067140691372526799660915112188183227909048283459341924710934812226338215526503086802119028219531021748412750247026198610152571176205382456909216077775854649368891668026257226839632048283200198938495247076980564089615719700253309522623992543399828598505182686441287150460563949606022887460393305463125524332534215675637270812619664381390042015592922323519611657557542793168378010884955657794584128067292607580027301360070396193002375754575169456754295957093201032370372639232741874097037077627929661283476297296904185689238977421515089575144122512808692189425989762518332620340071475482013203660163090587406449643968839175661933281077070271126608689387252312879219934286546483032498939722759061269013233465811635678713904121797811471085983007725210279368730138200949483185257949884253868364274774686949040061276381033513688867103025582852228423696586759659374732177612146370209787268911270351710523839539692120503281915685530139845635569994810290703010005525591311868252128269657608162102120960784473362323250966461642859724760474724445280541220888997342790888760716443984034502589077465822604295256209649611005599986790898340191158213058458350985205167522760588135112082828432869653519901884832356995688997254107891707191396508288195807528352202137223070879430402158101227161436975356946848185443497464486020297628887858535281763407087473588068304830041826869228778627586377961602876212613154080804197406219167912533905579561356090483726744508587271517469011298134641058000466331629928515849450734668332934510566419630112410965628449843240392958614585307328955258217300328749987009874117142266004335585593970601808303174601142277442105537212499590496402818945591967628737176497338291591831946103543125321946852450290984972922210539744990679066096923652994289128406671605079510375254940431843349939338500673077943353907394331978437881498570941482875081640348922081525905545470473867038408373809725753357220265020533193052824057561853752746001562191888127919677706714887049003393867407661971447946398692708615825461319191718137801357490338695351915573337547463353607050913334281238998100189153184705449968825842228380423438598708843188714335971944193670580991275600198346097003571869359779885875389067492755676931372291434313786460825559749475299248887954425046973109190614206018038458070340900494695147182412727959416846678642536049817882506417079578630186445373659478306323646017084068793054220833615193848316655112757244323776010105768548382390474531265243174919970107005945521993383067701480524373844417529164241823784186485764067596600582310643522828426229693629744523749860532830489840568131977415041200886578138374155036939094116710225868177245955704521155171849433972387945668394214334547260850566706874342228350650941685731952164636627550304635883921604194111057668820310126693660453077765410323956383967094231353312538258161701111256352388076592570930709366822998784313318838266145163085178589641682489187151998448154078756801461556167501033885697246929425260449360435297150323773251143437791384942900451245634476870535750203476482899637205180537153431835529754014104105748345579987678775909657816421713148379033448325607461930072813653397143531609016987893612465391803717315031125834211342313075894783316087798624039127731415617318600284717541202815203002714822592370794084776672121295316743859649666373264467620948579389231438624809424381544867216061732818728108752299507260283638043632716825505767249943737643369178874393519696164694979320645115504561013137764544523939737290118122697439535130385014847780742766266201644499096075542683110047994753347100900832920897401558195412264124215772690592375036390792679288375640150527537911580836469236281609306120262649919521957285211429694174724641204401301595510848551768078146255036374297055439821465905860646785027306481666993018087404738509275414697312205389740419154077942420001848619335427122278543522256583140726521308993168431528324288619367290001504171992165299912835615116382317377925998025713052469263705458650715446512274600567887353688254414014251816936188107600723321740132972933905473997916371895356380349453795706963465065646776611555709654040089238756567747173544577210318370389652819785293711646741890692961945790849912069804457224814132972924687570954256683771031156432012665747274118605409159010195504633923001634552274715489380676378080075297719419468873149160606306216755995661351217800192502461330893941903507633410636175524303050167431321165890366576654413352276068337094918383513817900210392655836189274772400989723090426274836827246494698655980847668900093526948980170855785458646958273588929281314793934259923036082002183039775008222545848179416683449720245183808089960940423783943445399287215949774013583017618673688370983567419611005924791227685521836381285032079410309783362626316424040888354507421379283314590547050186892736636034504036570210265680071086349971001424077308050803210983304911145672326906915294766814492802741664488815692432199809565875564897430143880200113219952693354674231111735568801820860816708670917642257323699811533767623080929310005445331081469064951126810871070222558879243247070633314695184746245319759314343873401299425728776177156606111105399311124492674905465936114430466916387014027783504342920243563466526057246124520597203386505018989072021285013761881455647105854884936146371862672567150323868933807001210250422268622935499754617007938072195898934636734394906187314587165915169977650806353132107846179136218925023855182919111017749264149035494891423397617080772910324990217729807601450734163358813332255319818686945309435297555078745747941513706550863346345053009151973043067130504732019109191680496160770310188446874604749126938055104698102994550112683587805618026645589769938302197786842731912261902221074312156701175993087480241941737558127886323156074796965686848408104778745098143053088293293026220096413763825718509967419131554070372487305360343456824922218099145226577719680479010157006170804344640912454468813489005318042107932596204184891302332452694520637623545171990684023543227083209833690285601984371581188243460380599774188438356194670068046366512832416732899387965238241080333948706602009480535045567138132673211227558911440062664374589987018698303896535978279831110348552631416440427906411717655783860781460125339189533712937346159073189114215272178192623800372044242411068057830921984497266051538223676992183782652577830494508029724527053587522950554157332610876575778760601147719418401314702721400919284895521377348480856002205319482871866640542489821939662562518680790804526658881074972910402402125154994404266512886337481658443024037193852874425811279732588490355217384613898718447466111427076675153276658795525438169643939917364348319246544541552728226355857838617716054156198510200466218681863860554716940998721443576195613472299103890958230472004240087756827836231109969841076431755498313818865406830432390215033331703816435472917205382778519565619770056131667362437491513286530568064004937257175729767914395756334186999788237637933154388233412096684008237779325693293799329933636684043587872172579019333143887367337011058981115769950517540558398229512335934654721990725798523440991602318349135986428666235164793091631881802711819794463938047206560825137908698929187292336721474945432780386371293770132323425780809916912244988602354455258568677341459595507069250529447778003443057029975824865883816032383399196856531798432313270152348492888781894512360923251499281442455897712614037903203402698694028963509134214303476714232101445269312198653343535191121166132876252046423342463829562298341838218576407032447899230135083443456391009056111604446796188474814298742106089893368528423668455073946204725761367859977239228646077942352026271488623357850512416991115506863960546470255146496616809068050861247278675294957603804529175886172870355317291504300352507021943928749070654605205500810206321543423780577901875049414391201772934899139729020200989319711999766082866511590884715771994420856209344717611093410908894636177099969172030526939228370643391347286369066996140877669952238200852522269786519740381991123702086711239512315585933280063674784487723398846150359257134423758028717942880306784404592675250681033457684383205754024398673076511790875698073123133020636009117425090640825477852968337028368496422912711785517100435798658016692314264936144640872622524743399742605641967548339901900397745642253107510548364561424936879905412438823024773516004429943349628065448255015364450665669286838603910854805075467020583007923850593825172979827195324144338795690236207586301799089475227962055500072359570319444387203497155249109170615716939121877068219252176066161138692771799413242890814644597098713984912256179616538344817427932202618578634635415538774594793458142815824049234227713539644890775794091679168950892226023409228441502965412690988100262165927987115998434452927566901490127678609607771096582882186834156232220173683916177775110762179570445740460905131613187206403043832937739014364198805094195562827398812381474316799232926188250172649911696810211120867420592640373663292274044278692288598215313364222928393217115686483773290796184544937044076517520237200224012634451869160728248787266512616331674144250675815497994419151477941589556192743148195502000393505201626317650028037562267077373634046702111898655798543766224237315520267204899355466509654538651241154046292327440811781517019269151626038527819152910114324109824770513138505846760588684629810000558573038494259659395644833410682196667874659763958431956217984909827292877562836363035267824425176669456205544665767575571837688309718307795948808776220709170970630078465132598974813826609321621170634755215448615620733241706501362003117578078437228132782875756555177217319100862488473256569405798046752289901903852593015375745370329518724249303852375108601922076043593891453262921972111180121892008226600221354279565199944228241022992413388239840497228441105113737121859864157764607416483536589181690382279007705281086641658505431528537756704183374332511835061532978781358092296351081055627448357360627837219969639984078118921247436129325324335074089761169912801365416799767401953008005054090290013831903295797381924055382630616458403183988593917328144813816160991733645481159369088671118937559218046325649144357105183289232736291247265557453026186834254781280937725631294638054031261386677754077701242835070991943888599065328709750873916139259307527657179306305595421407350438313021214159757092720251851889563437739123852828438974369487345949252383599643540449163127828212947030359057187987330624630089026416965715315125800865866336706776278319956077297476919193445619102769955813401883959334597352858216364723057885907901000191158358642664861822335220737156979286500782508960507022653014913978271680167625756249064875247802410803237481651216532249570556678089186543050757933706312793898099319185968351129455801469868234244016264235976868348847186869183626044832070528808265433310737391113590072915694475966753046450050444706568369910875245062032407949147702230242250090173142517754994884755100867429918573449731001141042202889653441052302448478374240122123955803702096117138178530024175006336503827696686157773134048593184691857586848250965463539157717644680450109459401429224973689116057079939164986890245057604105062073352282181599609046119313693795089874239721108665148409306570270036610493424051189955563897494559163630973988837326705166625542617301665539078312952393743769778616185395801629302708171904063394998879422918611551387220910169559480765742350705808578773176288743837652860973855571930284673222750149720451216461888661114792299102715914584690088452903429022095659516681296764951728693966997455407856980312510856954689373429196573416956517720049334330075645389890720907138636800220355408962738969266091670574063353851144899118202280065581649039581575245891706361581215912899455330757446311535616563965744116173431662946213702002425974789441571605774163167749288307420330575971385339002433160881361841247354665724436785834043827269002569130233446046887958390002682476764615427852023990511620919284577370508384260883479280249829209103566056715003897138434959670976842932152390339947603201545528980774702370218271990584305757950475416749018161350915112843862561213940554145431699911939670026493778085336497850360401240134519818276072677959209478208266311044818023870133245458542395261382266508040846017937946356104256042919661303679960475837231366596842945703274495455613326339873072868954724161297230923857936704405056237558723731752682775947152045278822894567892813817735001527657793590872204846390849664074902145365171168289335873220291501309962942070718331165148096550821997659920586616274173323082807460020108272949744099881655138827081873601988779252452169229794002829393721731475134211206433745820711804413707925755325538023758128603858675794272629801695561111641893902978874376370490100700598926178415532999538449991522950574802596661856097475113832401749062224670575257308376417262891884651644721248793165354652836862493018515161974371335844880551323042497268785430235342821477452253337351100807643682371768195089577517442034803047768565804430996943292428020652515098659691430380553450909612696250214284228398490232284053137800085878426960149623848537866898964078079156023898223364035401861500026637178649000597861004632391081219026517846479920458017916379491459847819503305995744898748980536297438170945418528622283380870132257905923123916893970881878811752454292820639546896485394673113727836832157111777155215785501209692167408211622049573098597696224057034704934247770289383827738331881477971777063404982020701279116812686464004979372785963162707763829145953005227222728242253730087223857842651929543451372506816928038334797574610095369318022941006056776016006217990359781706852432477010462236572553745329429994945728551938052437005319579586369687475081855719685166263123513818789310172510233166629510876392674503600516618194563706289604574333217717330889249120034057233456195592855272500006907555331870801631818570709988667295027687819435723448928285571508140589065904629155400719458127843817675419160538634848465513920610255983754303183897009635966360278139358674886043895081394656528310395022391136782218623833319055738951964498818277061536260284825806056687250418186847202071386341900157758590723500217509908379522176512441176845119664724713335601195119539328398138622557074810083734575734008071055771791780718168618807764923062193560179167655829447239294792678208339471889196935095421404229361802344969325702133489783726732819245698319180219328724608890198924546473974817588971429825377316021481731118529165948389205186325172135682905690876104936181146458497256864657894085983742158794708039552110713100394892945356126403637933418417121106635956279646651499007820452365586790324292433159151711976298109716810940330141382533118656262647441378499041978543697424502173231102533054792815315363572474596114439553424411890641743707430002837954292178491051990012088047211356110769243190980444216391120172348579499226410671334554545743789210166683168655401034715252432947984994313712610756252376729368336269064649297086997357099047974498620685082412097412577135088565771077361030785997697101571091304729887148375951760698531559062312076972347470640006682012488627429277362030017596700863346322388506100113080485350738197626031632393670619809289536854254343532412666902887004344610105194077690382662377886527239360483424899661924490014423883961358988628324118882048292408499502583858524176738292580035467045072819409822462934621875774107907790232381597188475176937408038270654447315280943504701287306951186569984133716188547353802696267485070464754360727209963337741660260326262995760445513073985634038352552978510515104326019581776874721432444184116677775293092728903474050103286101986921074519301248128874334024223599535568475512551004698315062813300896578012193244046047312079116151535152050120095585291513339493497319538630038226962190786842282111434246512466500391902959316661264072017945170305864829447311819567168184785280618782713147887227062167518751505682561628670838070129581051823461484128095826612041347713100300232788648136199652822449780404606346189815510672306383272908270713051135557032034868189581679576196134748885760779141713590004728073328782416214922880056705286448993939777799090281660255496230267437568870222422497973188834444405826127285033215450752939835248733585469836810412275750682727708532902910055150503186742037579697536164672672037885993159390632931226104546318180530622508132996640132693655929062792624164608676912804575753383906055705399146076555472072208332886470195504466998566048239706269622681511786974181312760865983391343421088580629600359381642661379819321077530153072622599741494772688778086921683497880859873886532093014421735293090393639527042725060592683373581123454057203378206277791291876823907103855785903814091111647959053486512338325558066118015062334003141946240407061512200166363504713192352917439113801128721582454819029140999223948852500906452974483879350849199049604259610370760143049040922627861038192643367501107910497868243330055244962283303658414456653633686749123420958963454174940534549653948396416474674722464824663089681932998088740265046892038327955488889425731680716142313943497626507336459628435875717544164165418902450856970657708753366041564266633426946602728964756454140722674755750563177044019688988668554263653131089457444076967216667773256809624285603918058882942642456287735622728025959794820761755031533981893765858039248456458356386521960446842087224951358423124523024167253641944003980288380168377577346924501665782034132118251771706403540432543556613456691222514228917896860103280574168624517764344439519209009065658645164752317744377615856042628407052862411230392624872647077435371431790590957920479060884566483607164434644067747177975603630647077720498027729329149561225109938425637919705663323645417365283645930682640615364552521189829234015323092054266874544892718515574596555867729722227682256235759351928962671883024566679614274945691977622067635574362974347666785432566336910173019919700521150524591964908504811500977586870747365476472697098346246645910539894751000012591868032143292471956588679490748442615534243798951301458684413156510772858891131631802887385389251243071322770007048649996534701806513996860968962505235202735478154703115097127563160413376023687379197347096014450146070793105007063572930965372385766124522415049898565546503728537396513302518859881994714241668968409754337001468206769676033633640795357882935428857238206243155711600956078527692568581087177821815835844419468325537563241584547699536931688311248765849708186047746425090228918339546935757853271409354646666889079505278491371661297969402628262980971251279912922535208184957630243886755668662500011714321249205686868060564693579072682107340264961737877788480716029990845094439030280538313114473239893503714199875974533498311249243333592579721511829741915571973042798299677891571845689686363927577364532133878055386553923420104403212328413356571526890017923223095336856111738343371225042863007144564107620019962414151403088075191333509351991715059897096006190169065113157903547838320033137044975587484002100053028248764341477202204144674237466792445224699975473935182577147281466354989963905148644484155549106898108771485051181567226036026097562246470480362262381099005333717204198854311811140203826726922229800909633220947920564390320604161255136100942854183639635696211957622861532497738013239758591416589572515529582525664838879809263139921118315904019899303969344247715251853765741538582079085200152656176256800184224546493348090263139808509952543788063718553689800978429466304523465930504876875628191644802543393003801846473270240964300962955883413741545037575232917090446405911470995999325109621352696121506443448014529465321409027328561462861311610661585046394267569052682657109252129747964074987932236774155458377063620871409316295213513718741352355751800743847009190616377966074682030462141843549328543396664969446251315287581300090228366741906507089394610223919845095227471794218757896604660227723728779808327972800528205135913142418331774859768778964300587285689807368831620646046895194394239885225506939776635884577701603332678215940278202582520680505976279737967891718226929779667648398974738200385177923925954246936137871548445268891293922881287928164236980379986992246097244572884466084492239937382082278956912365478984808827390361632956737226520238938921357404840618874552771863113691561561291800891036212263514892872046187228940591381628130520015093710043065777815632719846248839415172464517226165547218602354226472624037404436816774849040208614820181158965750544914852859027424499902830874225130106936264712314259615576944480305527043212336367912753864130250231490861226022497368392602387688815980496691537480785364865534032893434095415713906018361332194883574313641388756270706201365047821549971664021751473744976798576612121216999423817950885127927955566433140323641392114515168129610565116299446752822233404509571427805711845174661312629212687983548512707461931660471483308323824309797761281443922642483907988705410252613767953510597339520053789673492662469574390569300341119648204071697018943836924494771825596934977476354953513203325941842003534957975337103521996515068267797149957908636582172198756105724974213254738918795518866218911374608754525386784409086963662590441771741520362936533702704747067497280235465992908707561302297092481599236041689965284410154010262868170010422140087246635027464594313688418573660748670583460621494581047904178764385562792258648912420795561607768429437097971950356050737748824307251459820595288896873266607622784886004398741473727240984751552043953366165043395662577384725999950208775521702301713720831542220100621562630896403867543672519833338781057240885939699660304212015590374453243022694806997394177933279561992552298049811394917626496489190828821315939758276606155410848052661275915915379199449329562846690786776312961270622908966148109507169324202507001143592009437657056700729131011508250252361027061257182099723830467909945987028811388641875888010740841019379135849681846925333686778372068997512158808545755226076718588059452031668326767573622135783347709485200903896931283925464721776036461399280267206408418695474166995190312969477981038681811864417481474000220239369761684860523662433794669087880204468734191789813874211249612257759897651075031458828517742891332587342836135795486878951594591411629836141773415204122149850926263589164754935973916049918971738303654391679923393823617961965017340496873608192754186152939884202835514390521969000525483005099162941728713648147148096624260122372782999465810911790436157644593109440530770276654676365304971230038484184158860826198255598789265483178336160945956371204880194124597330816504481588795357080892006086525853255044045444890420712443761818054788619949407247242824532788668954274106971203803946684952981078825679729407373586495083759274811836408454129274247533894150624917672892268350520741588243868175142272690881899310025436309526587570779805762743615399281462689511938781213655222720871515307860918077551076494601867868698206139944379455104085935214727579128087933318500527133047101923233427516999065594672045221495055053314818425203228094766398190742125878610256382351462232869583407918943744797560779383109903880744349200533598907531163182245168828975029480165974646365709873999291892896569276364592081052557441765868885767445173541925407741224205875886046992431123668012661591924138777926589667562062983442697175737323039736152607012605134919115846286497815229221627566598888268988904334821049452519504923998963990084884389308858473855062251465090017799771601138780842053682599570098983786469521693396400939566811537709542409301719575697845678186884197145252371354847017303362841253513703702792455153322247157591348452601651314012568800196091218547205771043410139887387992571112712711471080124415451636482797283877311924743854824151614202546953425560302213840763282204077513986381840520926098263752235078776484658185463434254667407679790062054350829877197544888479367694592444693904425033554332530226825284612019490121413185028535583645326444933269005301143937635955682146934303595661161117226122954509555690825026724332142208985462815685373906461894567842697572285966854590827686931528379386748571338524101265198233174209951850589364234919256749838768743803032962222793417818144590428948331330196299392049589414777379330820450981502607429279129445008887291411487529589201474694329521209927596312771448075159974537094148965545225736785066917258207781928007977011719640326494982005174687150307097837624149603779207064383538251356125446280026773294691875540794242825178007469294962120177207699042206080015060644632629367671216490240401076807503376827644845935336887804327576189100886756074265683833536349637124410122639282120064038988955980914496886882276983150379187032739061619312786508941447529962000329940415077070102910855497619710681338430606306108154846001864848608444987184863273914346560632387749054439320346180426515828271554664745501213276640176810263033474462077508177830901106124764691884406859756478273368297847851383509446120115894630846992703263728908370194947118017655722657724496602114466882285382930626608339491506226615496646296776426694730912975875894126175741637880407885566584637272631447342864342657433901310432354800594277098882269991158332731277990739555162296432597112541832924477363550534027184075484417511829287082094200546442983293417439862631797048020494514011522938327252413414681014346194503921755808209859358705463122270447458989181862174672683272612362018272993114855020609179525952529882376387674782848781338064195061289932468125859837494080442726729481841244097315966220933325565078358137216474656720559595073426476810144613332497975378863720182216382285327525561876457839551361691107856850287325670956837907647400633313196246598782933159628714381892134372899881958713094522649249984874044300301228160602505538670315063860262857305581440854302853884034304370319601824958072494820922221962195369406273173147781656187941969411998805971653332352136155189404522528852663629756573795450971377229225576698044639063162127267390820336521401996719504935332609987637927222174376889428856561694032405124739056333591765828940009868573332530748644631581373593766735007280719691939719299625966467454862945348275287231005722945835443979118801038384565132823114455623487089850755981530673099758851520564289308470038247735933747878842864736721909748369724438826559029066167267501587050941362408531640318510725649106977083330179787537694265345905202361147571047132191926980874971840713803160997516740366804382353371621284169580088639680246453919449171416375077261204623298392919277244776108053314354318198671866235530527844339476152803766457163978261882678116606129690508747017125423796042203295716694964191705063533725880539929249998125497948826383589108445879716411288023024409469799368158564716827969921913420018505004932357837712863354983385642217103865877641067176858754640512518056893525175843207641778696764829443152591549714430524947576318261910585886267936357735922829552133000130158170408692565551917637846130881162269742008033383261838417993217327044685899227120260500251406840797921921015718131521359869659475288645427758555243196753404283221775530184089613463277340359882636824476739019387553000470161677839256961041581088140483205768120874667625549469194390572677752626869331611467477683101807676445720260948252327496080892105417062489103404011679894013975114927557999613675297197591415334936387907457168828465444115271525556877077835455915362211317372315073465228561139124485452461697608387530070170448379058465275222581287396370383842579753347940480562025767230077294924112285323944252565470898572643306191313989788116804718175019128831276190764029850477100678888377629594849975462340992995531708143305943575415264202744409664676545786145296568941995160239017105774739016253012200750181741974683905540982973709142530175449778099938208809135545656368475870642665805813845220172198628273325767523937863520097344447174990037767959798651260427601372077554835673460136161008656376957526417944372178993476200690295030849805417125189041796243447865958007111525255262803919098653806313870595970483581656961582007607102494434941163568124258006106170318924532414376694466780725542769380061844746637433801331667911223825225473587904088066470067164683847997302800306313481669388690899822569251975358437528271021150158363789497916212359203777377617132861124753233714645999547922148226277096010315492966791064543458418482104194253845950722242770262988158875320225650953642281410262061416969228404417581460812695911210552429959793645167925931270875844354528834018039903047095529304014377424375221023753077779215770927875356302222305160076532298355944492711291112320442972496105446551876240099711518578224821388661195628810147291636439388198875199909371213078240551785732779084580102890677725893085539088402305681431042114440688477469098452595615992506915730247910200228913198976932826253129001901372893074226083430918306244763344539128298906260265116025096203024610626809645503037649143095150765427230948628559594465455374526887484384561210338339305271862882417817882949289278723545962172534055363421850811185176094536442156780841880022585939215428668625641122010348186748641019073954386970303313970186098444307049631986237098275004846400120242026566510040665812991705169915482652667877948130118131231616570955502719744980824169383782843541332386212770924211096525956684462045808628129516096133657332478795707855056504896874348534558224177698782856176493204445202365117409305255020789726135609015413125148898120610534358314524958019480413532897859353651508419970437195598197764541455899555350407039124966480706197334013644086343805224355434453821931545811966082169251972832417264038914809717532294800776190226613084780370560727099885150904739539931020258951883786590766064818447662117007318770936361846757441330776314326988401087379197208758533549447097054860188680070036229742487730037023327339807064365750562980164651589400488547723099084607964251161874208895801707359735819942538648035469161631770071291922613731729521627387577463129477783690286598749902352393761626816696059292954009014906681397256595483363466201071582943254926558066186254896040454449874581276418531428935206640190401948843576929796450519859209450285884014834748601709685039821418542305553855800484366276375507865179774577276123388131816367933175155241254663214350042494115434739096281180705962273156169508204478726708458976746174517984954838645227506925873456076945597588542553250504142118855365811098614939559181186966591902598714185503480979546931817487987419072479322331039161891052692108198446060135901520943053462999774894315133876126715394396486379553789769310827784441863170989592602373986868991617880502579683592239327651185152495561361005548255501327592926505471274963347390534863924791468524123888854067537669845680029604113739735102997409080769729129913592521233057398599171402713912913732022164238001237061823571621494652620729026542912082345282015785188481263599030346832778168064887566864951174603187952674731809415010221332065136623032579550948289298609995847733241510097370154829111453273956323321450751278997521721020146234875411161726419392882387641827133992786506847546731548724265131081708238783491293002536447240436344411179229643617732650594660637843506660993404311857642290751686084242156697179949918319900030656940523740925074867530754775256481062690572341213184543227240676410017611287971316454245344223255955009126442769744632687373694417868202975504206881255290025157092819847221431798700233820681917079714751554053056611091941984080754343216396761795608351464783436997667455597801077895454596563693086118535106652986847686831923716654463921038597926068206968553846633859605725685168950080352607318618805838852944091628591739669410272514685693718431641117014599375488022293826790227653055984842619384035647333241200467335697677686449259321878439362468170629910843637238004721355727792823812595880317572192449742665392648157644726148119868937213255144111731669789042129354094977111396692245226295599566077397866798092265613229787766519942147034966788032695280058981848380310506320147142701931616146993876209214006065555292474581649440366085888749900037697866376965739253683109273261228532481275829306332753315170884152646523013243007609541717260537220044299473885960566170399365152369675313112773944405388287935868042865952610663280621295344749187329003130737816580631244102168366473317469969962896787379259089535851385533611592463451244153770629033469942859368883155551551739494319050501566740223481020226703238761831207833246851734117724027390732888410085127493430174834259692260264391680077825628153942074557932845403917026102487656570043412947024686469852278598372328767374644606693164155717997206939748561373241440442142955239634572503675503894255420670634972394366012556055798244208280301596788912828718138607978363437398573159695572703558048019973582187086694670190594637815794755580000924688774972504151042823390143114212986284749846666015428965518748329334047102051818410422372655510129130063920647485143093339558106793867931194472528797085687238790242330809652692515031068473683550221323653989207551466399473170124858893371879922348065230153008763929843015665013947471031037336119285113370912304708523663779773154043318583926492219083850622451412076595287085333136931366908515599494016803642491081084670588687917175973870760338092670712576929344913467976950013390674064268204500794587495594708991140194647617936290989304983908249760962161243565873435329878380189875098528131599042472714001337009965355256709957306618423700208001499582776451152148847171735416171164591712196558178323314693898388983437051854459237018510565427411543155615986025053758057270908388518729380839360398318266636850124724828202055423576704088563636619794243565640565867884116516764258198856406972331078170489345125410274180118437877680962901608521498907032677462584024440072160259772854852457850267336031065931425469122006835015032626802649162848483355586068129506516318307168865707859121517454426984426358837218372041237766733921770423395822251029350872556996112711877568888444372481324605845510735162509191330053617782892372048104780022849896520888283192264055143463285916361496567082642628172282912338139390317735941263649672994519020383926258677452026478664201736115522886750189965296330305358364522797403079330895899899325867783575974584983101061745566261638143933366811409321651194239699760662981225173114055321355007589371881610274076306050326538697213587076730778773140362177404253998134930039541248707389341081532709871154136666744838691507893572048845072437206204397448458519332844685132879643869415403345471785204648676325379679299850578947645735530061727141108258549641159622779125503703555030392204640165980808863630512216847268730631328982749791281836423751769569429736488252704852626373572028426664069325546896208885797764897897390897958453689848154037483271484776230565490812052606231971207701512965958677895409394481919724067003368670643512192258742403421494102915664106555751796548213089857245106610429890095358547446094646453942969368790235804652824031236989351761083038142046887689032018734032075665532243421152832276529034513489223891250337715509860230857380436365486607136177480508970153732791028747228755004763121721736860221161234912347315731497516230386209248484838336609160663064396774667236393453272639321509420888981751446552346637106242243098378190978849423387751439537192132015935141017605235075465540017228247095187697853412405919155619170102994724528251512265453293826629062353769739912343076163749740036036547682730148287391115099383828359911341745346776252590516953034170678482780217294176686354298718075791763881005565717926995544631587446678948499240536232458144622698690173647491669837258268091069651902267595435356081540960000066063309004223424974482964204338686732934570466022229166629060005413242125040072418377330222699042840367556842587632556175685621256627319750438129783026383846939104146346664182555626381627059480247286811948875602887866914674359118849347040187742344115455350421741878847573804425024432033889351309425277343412764100747043378924584296219036257100802341468384536755865515137156645029676467558348400597178616873911361368401237524251572657604245611952044512762155195913276853230244314356276724451810771359484041435978043663956401310090730819768972007291167790546144744982552048265629528949803383475615164986147969263376055883402352976864282793864157515073272113498216214576305648914251754090192800550314601210134330875160831562300287473679508210620687600390502074039773565676834941782674386198492438719066481751685226131227829525696791488537224568670912466479647823591905888763512851689693085802611090223073963199818515181113607770826931313682674496851044281466493786052132363100922976917012991292009478841264202080705907058811223947699678558399071710736076349754024432879349462468908817476915077270644865025428591475731835449678583606795720917779371112745176812405876110856681380039756498468606581399652184884408149442697325540834484246322925723208051193334817096273324751236097595148671437637919435483330939347046415352986295400796358339463703582149508193607350263757973563993535790851345790850410752274761684623143159687405329657040109589424175181539200581842903460873709635156455531218423879674968932704556227998957859692137394649825351442612910841161666001134794522540708060904646666830688635697431731655856909369157538411133910056155052039052375063421330880859579621748263990470588603515291861030420534435293841311742227075616921298398719694921666044082674764898006500190163355356877939155586145447852174220840391547615838383519987129694699253104827467365255211312635488260423464285007781560416054881235723486655267812351721889257221393107665621344080037797889601905992766707456722614589626280242065610437223484129220843719575548021589280392517308054128748360223662004587128578540802291659635387550100190236142777394778691706028523741776511365902214018779160649787894213464295772941579916624408547168193079666526265247521037863153034997870963104198250178574731599308560465738677578977841999105418635476136295142236174069278709871216073360489224433670048438013960893870022762136424433997971436249529381121937131938566590650032132068821733892833377534713960435725841682959099525496912064978270119965086191584304940922301631086346594335209583804323479579327935327690072401995821662264763152665554354341237047285638622534740508294607680514587317369630873283348686944126156316868153698554971192721186143528106066105680946017565429735137038642038570654971407589010229093895333593028553153720324591309270630427553544193000481354267586559403301477006243951840785497604863610726721601199218149822849770932077792432821869233983832408866599755763897875542337100365540593322015583585412360338410579578220093491981446608487557180697927473547242026910178685268202371834589705030288570340465962324880634116082328959579214798165383955411344261438925363612589444671109094692560396776467012098782605387163272806572552745969272586286081961862985717298294181704370884953502593810315819938190476804613497101365348095938478961130532403105284262040442336280426029615428441087901756081257469581541555679235590865744040686727755304756168786325323170355450111685860830692032344783975050438401298013149737333867443923869248816736438861793722805193509518540202033624592199537543134940742254775684112394273711314786683483868873501229289644422930578078214248900074608838166597078279252393094328993851073023865603159240263155323121385673179298422991471294169408238852015303705378487706812469054570893242281696083615924509476255831699171327507632888997450450557450405597330419180302417432043895241473645188023449831687982301151924645613200867079531505902132393786281890989679928068565360990189506896303519646714015910379234662786268817775457839992478745045431258312539952591318547011768454703698275226904185484540702932361476350030450428351186435454336332016990439323008528936861381256501537030501957491100298176265025815094374194032684768953686273266391115901755516623952314220294958667270131443863014684384298003560921823450795813768795847385240340736874708803369510405134002479845949233030057947445078647174201985027519839041709378925834594360528728169980355008261939623118687865315196494850307724906760829330476403374682017291135815446815277678791007416067953291022540332445314655883172248854027831067614895981448610707507771235525906442650726058603904150625835144224804354792002184359387814522029587199197516499115605477879966326417979360709119844893316811190345497911175951120643821921123581635333341817141938718264806122640683999709413214885959676248207441129657493257972013485808868598710595299813629686700676433445918560468143612749753919856756423658885001965484743176868981652130391317771103883704472580861695405348351568405002187813039221045446505549821740741204540958219631335753506921753975483008916098170341271849410208975361840169627248410048487622222633115979607647746179920009861478873222798767563508866416772994997932263445505434212840108674464734974220587208821806721427584284372218437723416961403015910747442636822074411324913727344976668809759592494294101335298621794663215842844788852323697460465480335487582274874337809380255590723916864342256010625584528630013938871491307451976403584318688601834724743593821017128851638745576037619619042945419634521285765936294930510841743872822891546591042323005503247635269225650613020951727570740315163749858244063698493983011116039141897583731143929042790931478764521394773603598174187762450462928561735151599141544712657506178733182565492351175629037287850032591844174957146139837560279830913910167719332014527314443608313028185928371699392036075223011498033707659381694501426123371914470563006160079386860825596236668763021506564179572625157227593334471711412608449575680323326686678640598727051770534285803286022796093235886616452446760391841219674243921819300040668236092496654202894022477780503331092955227997332675160195155578526214419523824753648234386331330015110831314799601144776275802609533719481134341587261645511803613928994508950981730282614424779723704987834261435378100725114808742379466817890939235296813701553922690869718803845866042055086484169414768909998466190007749319458873173718549307538151827677957964074081631042596831782069941059928929018768111885581884492030716947566801616191352419966117391680395916774331537513926951276857898852504700707440152342751430065289777984330647719959385894820210351662018488331882174893317189077151649385449746016578018107269695325652845229311263245816100405379697420648989265973079671287340419645329187661159811558116318203467315296603855451703688202587148911850820517003468159095546044014748545730046105415599620006294421891266247149371479408130392897706621215289651616800567711796984414604621493077490072885346928569844201897041492118641555372626613672595705180323606850850048973768576628316744980054745636715424389549905415242241815840290170609726703448410576199544730349247125656613855634783464332319309597720847190798041501164776182375810536463783966136679298084095525192566057146916085789083670768662148000755207058800455065068835105498968208361123187433530236423547433214305881946038235681406515804327417271195064675628150201419817750879767558477341509755353786726938689468325150543972937807658132136385337383076532365285815577437843739656916041814353538100114523845739608433568085971622784445205367385583832368269314959342656724393730573495443983838676488074960565601427223497595848005069550146707733866490527810238106166658821937720968154156453501815797289959312079291097184845649621798592306906483263419929937001712691031516816867607258333736624184115794215124796929690206042087071506549591449842034275779008564945745495958009436688139655481774664180839194638795416669640721756122207584993947885793540295067607378618833369965937973013037266384359846426969666076086486680439522968726107638102997408792286149819310497752988672182626027506116168139519312351899381125120037968222197375201904872199453476752651038460413305502859836753681556260024904983218943260684119320144619866661458636448594553699085368885462641190569419510110618727544273696769572363777549381624220677681932989082815248256794750149770411160139664652023666641850301223284667143430519962337873785430631809392516224946030391724969087867347397507357948804144944215391824667503339761195258782095282352064767707578241343396292236890510079610627664609988750921103191338390925579793686106128252845334296303653333836967295819566731208008895753235852188826007237015301810857024614163771054276186854929172422022800580175207247850291430272839310938521541116574382266665994730204476921647327203924301451003737312832154306593069052930267626469328215102857155739507089616893593400867714404864858794403030729034856895861713232293380064986849178083388034471428500617145523930907520107452941989568929010687048316104388382615778724450112908094907543868583840585564548278256014004850528580706820913320434816594364354949917694845874116036156223894109627582830707522325948918012171292548002936202404581389741054110603767986580600385195001617280772947011006979002280905348455157247476761460163694787620598337291586787299969560273621552620819737688590384080681017596614007752781032069184720810473740339684529668646204171971574940397261877540502328841727255244485097576892289233590834953658837896842677795579391822219434829386186208602461786899398913529689023879546185371416103054543036755745541431984088070556952794821343595841357505130690510017630515344418882542442925730987601120978895557682968841061140970721067784275593364417449491042182970327956494515871791799273164836184188164955408729038998744744240390085268692309893447179935785302677136249030327865043694044475964178997484869470512737315546911212676647796246659987100802791057974372152329196230018011754382781603934076461629262191906481740454256361863034449154298733443584059558728725103814048622466361330540428833350375551177704165370723158581504754091331502534483018310260559089379499602438248560273326319337687795480509303651317497027126557278288122296319333947385791990705573977113724181259859443962692552959646219550859623674159866776190071741888230615874981571939982285686862449621380679233867692737530866385284632362096835183888029981249516981331278911579988510920904073218167523608376181708300073919981393864302614646128729410793121962152712367466814718149201282893774717446568719339463172462312440519060900490886940963242728746873558450564457400473286668583339353141820841366054864175693436457172762646302699450846025266061729158868603316601045399091989999442526743032387427636719692403865486382231611847283608017315621067494858637924045330691001941738556022083950252426557439489720428168504241832055651588319950831389193441367739590177406551977847785920553757727942239294580926658333078125626736550129226121887389796177603716805396930407610054467859805031527140841817500075432083524515624579703192207929539206612136535076273109773131997637856892948774436180458043515605596119812024603428140145211973379217668978955421568718267776957761319680771996093448808032759797685743746510953253802414741082464159027649162670048866062759444937045085485201119796596240809918597345287368482191426084318787335316077603586358821740831474431698725304169170340219702363673149188500305189590457691447477444230865382379351671056921158376127425828881254555026045303528139799327584306633540354757751724559992842614531162490816893786861504481127381774537552418760608021798862420223490041219112449102657733697770213779444292598651629620988176908480032928681178060664994279387355585104510497463479638122828172143301165071824326158355134878577744424159762908321176741857066653541579823354512359736881798046891804802217756875113079875036798191950429746581522292213473051633460817194249848812416220417328602662270017576413330831834818486672888340974606720878507522338047271143225445441766772835028759051078325525353984386765337959347875681823372448082612913247772845109763661768410946207104208960572434643116851551923874835959237089631829217702539171865272628244227723154946154452613756342869820493305861771134362706093173641572767940832243028032689687793462952705831290681549019205358751305884415900211917023238535729034879007110867167390767276277999617887058209686630078195594457120853823376759978860030458092119877173498433004746706633189094802473007968759305859953426602955793240962735110459532094772552587061525859693512963157523297017230000187193332952966835569745802731976569161930795209640569835240453405885053562701607331033753384327219257860396992618212484464472511593740784560045474717431964805213195139083220970109962334892994347175072066841575255065372142219812600107839471208992893725871535052158826248590572137680552554634921136339946846412526757015660545868074631608347502394279287604818210687567702012421952451246824455209649296238523930796798462204739913941193671107760748992270477886445482735770562768336405993310867729245046641344362511913809712087106375982335694484750649945461680609604981475733332468468223890662741896964408882294794463463227768700277622401821074986930295387923485830841511364832188269745714469357578223787535517671171190805532221311648872410721317114375818685630951708184957526905609798463756354243124830446711173593236443627726595594348901076386850751482086357192158512576870496828077329844174482846469210349801410471496744763023843979131435730954919151987506026230495946080781150957789115644111110666936271376459030760607904845783675272395638151461306371364810583897326958330571697364598481287399280509717868707616503703324972524368666333245661470961733789134038956584312158426425784003757424234466544072771893679170100474327284265687984146358635221851687480766911057625271282525147433596311354125741936740505653637922192367047507768928182080342843520039972639328944956345619672931591643854202631429404009577116381690448306276122056866339341765827228996158275476300264587078878033114668053330927725171024760935868216153410429536140279286209228392983117059896151896357390984934000733505391226831020647446710500702588541009965944120477401190756107612302856204859099704702078773927286639197867762958127239409483961260218489032458561712516392831712853525405038317599071692845098769298583269299391776012162845319687827105472333878077701536890444733838752886608806353595146003580293824334320148180987768022560276619835894920806081128555589331193275358790959994929051688850969002092549899074772518778377032578607841392632366629858260955780846399011591984096289181938955924118974327298781096381808861076758637439888088359111125824189123245395751680028350953041038577283684946598223162388892967653189141118857209305161790331213494039596167509190790830718685216390222163227186152380242126057661710697841149710388829262136097113397873569592489629953062601226043023087702940142826358071822395865003693397886314498320976294966457057460553326781446050746402560631305131451955210420963221091402051198686870325598567738517839890350742461810746747949980003833767120226098123811166895077158094393651898230657685702488439380641622054593046800905943094401621202814311762300659601269219518760773697035143808312443916687886304153795193179000942571907045042107157106918782833457499045265299480306209096199482937032737403096586096560986186311866894562675974111843515153310310951952781927338091306767440317026988936972728519145661387191251847118328395372077235046852543823821161130205337176361009712067916536674469156505383039925598505506791985243795712148946917340537642766927926586810651240314718713419116703562706167944421985609941257033795991137589590522658430433503667235936974817922240562027535477946844739132662926614425205454404580172222650809600401167124721048570015560785815307320016486307541187266028047151356515136414963956299211097801539188682968608130505440392711624836955505428906998855099944531734200426152122314588137853072765750702037227377198781312902843084774079289257150205526823477861390074655793883276804869184665656555258156319307949968250844609242941146115058629938471208176385702518824188838543401259921378060468460746365893918489276129514805211962127580139402157238809670645564820000570786510584417005872111155837993026764723492492317810862136032677520282948470997753783908745602724095633861448875171678498343505914943027596264757508794559265021534628362479866275699247553762147678700045522689125641577018381203994615000905595801782275558314533489583802559285581343247296004070697380635153458106382667931359912828368831208754951150089899098454631683127584716369432706759520988011450182270917558268388859942600175359595708474138971008950791662608034863776128593174784744758257358213532795191904010407355635339863615130120496832485605644044427665297697324229940257599656713327992224379281824731557601632406808039421429462449328468736213691253325226708620857942846027428830458504442538682751176764634013105216335781829290749303273789720663648567202170146707079190595895563906611945319998217877525009158342719287470039447694048737976116845874397024406735108153778864648234712686348973047221194154422605257992772773090964129034615445220441608922193671645720582197085782720815813200417901958194222721149373372339495805009064556212434688650241558541882238625714327327174297152095555875069573453814794588327389198764039868492005003958717306895735162043099866126352848592149727773825950110949244802212438730924858179046324773270956071713191967054735317849512760255592941788278280613176433276801797674794740471652930909920408520113074528878323270519248870574971879595798204215202499060177961623891818650420564247948939685527501520390592570309122947498370843661631024297413252130516686087564989618269429760696448227286608118442004760357059740697137472245001540344822182100554680599601716522396555517214432818567554011602068889497828185458036648738180133996030747347828494558196328849758436217593630500376140788493755792174254988579197198026309985556583595635057597911561884684658160093742529857699487646700038284961996811251495479223909356278675542766742407807511062977216769287164641476972470930794981313085575941861489562704771254182541304538984203033276379868534340263467243454208168626155769321685258895571333759222326971769833915950871249589894770891909519552176666916274041290627796031241100512177015845472263062086001681763846942913680434713233731523496474509886642039110083828217476850865408430367108335364472469293039397612134888134898532060764061734372852504359292412178066223252848625635294980467434566384063398898275169456770586683916133617528756547666295480216207049560346959402498062481643592914215312935584373538487565129344103201351724723566757904277543554217619780589834139090084119533108341820506490618147416962309466610326792269673528817510364797485738815785540652837795109105534126242249924940761928623321897963251855034466099479278361460754265338061516287690174857396779527882671578766575616373287335898692820411957421415101557338003633943155075741106016766619104222230176310834904678168007181274075124269575025069598200396228447128517471845088523067735824561187131214811080552516940369370866043698592242856341385848871280046499315248304367544793902259936707747738572246333841230326040813227130119880242506582350353767042314492207017084390601661714151740407470762521410732104952643984418462079920742375252117227333829178140834087711981129451803788708410061174071972800410778429396257952029261316710802468678962771801338502983800729676153990957871836505611157265724799236621756818632622033202574983017543476918326909611571006818293500173823631509738538919408199255071472788470481164594547456622697308884105003420349040199758368363408802931477549252388347812496152744029193773586934663164904094396786847846601094195988257257392501749026964460554360751022480180614301148034764787455954789110553324310920728340176438656977357234920564895165828679838801966572736875505614006222581639893947965447647824910907370582912987064627468107567541481027212071966391793453675887711779522975705615678678671592027293135215042256051029478468321202126274597722836181840755964298673036458009403577576704089092775043940696767714710628185921020207676069582089584591012586215364681427057050022421867015601522911257271737025228592337546849595642192518964477002817169713067395675273905176754299229902609225504809278961846222574889788847586438987782206567623664296326651385594433228266025637743266830731956248719010128290788798530149224573765910955304410198012430256530912144064935245157290156761532394669338964285370420432239547756463238911815227499243806123120376372974351051223225757911972046118009278296570315479597104786549829130251026226917460377526789455093659424414009746280851637930287548136990793314135384516092465906510778884483657906759234497094981048059963777683393334569826662280278192167734316685211936330534056917775115466258423257789223943985414643466471895589180782226944286101592768667796877606452588042145604459382615865892760409957337531786436671086658387005648578037335511158180811770325867448828397930986600763425031727817817980269429085143331423863111905536441880481362515255478555213730286644355814536673711374656001361189724461176522896985672904718431925799877145195420327719661729903125080349635455632138503098356389142259285267313587444969474016261060391060763818899563093536476699893345087450606909565981908157200018529107738022143729237354789957895866507462875816148876325152107255555858240137842400451781913429167015807000080828524799734414376177032361348372961076827490530269162942509505588356468033950605982040521700172100437714182494552410834591169772603976936735263135734185068886853434347862716313978837454945681625977324018545434335291436623924570907425780458361701746519792891999219857378518065932433142598768324516435277602193416707629383866164643435896450416665401225107456391286392183207206680799924562010530567878595652393831028479655803018256647902433504390772555331562223258324610764921150037778697022191462186225975903460314873348992251754822734224290193215310316995142283152380399164151068542472157885154799393429802955360609639150274652828922214537932235744496137018836351085932466667678386138586067627075492406569691224991054955565389831983374705629623524947712696712687069678015963575408639098950321585600133970126179931959374603329666507822733197432382116972504783498913882118240765712441126992965197379517612795812427024961122923067097605063769788975673988036345068406129200055253966858836403519692280327327658933224458082066690744614148153006033643776678406698230929511888396663374473814929122830601795972423943580489338082932736350480252716267698643034236374505081003442109416785745396526675050972712193416050233795583869265445375776373666210012440083715884906697181426823330034344905141773615431406532447506362269483533134271998643571658902775753317991419502318817992837164758168469239934798961687528367097087962433656178712420430069153429272702632373238511055454198410964390152756870161094537124674281300001143897928971352559435405763188425540867237970641296041185441173005345997995034117311753388080169229971211061721380650236900571713436687790160347625089065437200024550090337674489398377916430490662745649019846076943288809780181744454154818192681518578505190429411816170100547542664907126854635090990454941264419622037884667947272826457106799276330453315388482849224597145092289998440012689027527304108058489458652872327180566499250845764864061250401571109689211467334705738949761909109312803318453823826398204881129673423634349340490867335012303713676636963699362159346916475792799488445011192353420380760267943292368859487060003964828851687117312116588003755531874906451258053000881624908545335156454042706622295142958012741826457712432875368157074397827152903557471562093600723241585587977298933637283940764345227170881270675778506197257849484137221357585093230245785062507500864953228172620710156269901092454481135700505079316500969244774458112513078593867679760093842832637260798114730724159018776557791079838289339698677923496636053895196123134665205345552462206972881390130664949509723326085764429833412993562531181752293437862850712808496454176009382150497371899516040419976777915093512030949987828410498070065069970830932535255164817104892281232344368753653284176324718185968805244591134819313162461291088994654310949052767319930006128902897379624483920275629408067794696877505245928529202515588576597018494240587273680396998199658265995704786546180222140797225905386909906881911210055431105347262001671979229502393876779110473675341257499565408744512205086001812410713575353240054189538832066661535201096871230687903987827062479130123698582154364369917971678794920812692858684968509393766857880762794144889623679051216402257486251920887628391547893899571348741648472677001439135952362522263641284648980938673496744486416414219194267966680290488527009611904630148504191603400132434535943969325793300288662437458963381989254002323587450203124484384030182832651745878652338749778276498879741549079602506650887596866804132189480648782936779281083217636485905755776239491499395945853618595203702327541464280225569494895123134739404349686754891300866576176967815721248202828171995698762517803290044291289599704808442664630269132253021697893022198401128767802589086094380065868617223626703043003991087877569011850511581626165203866347587380901069523975908056281246830931218593442974351992831140727623796327540746934323692127095076763238118948577007750230352362991493264466161095721013761720193395258352992749355299898972447161669096945318583950138159067578544788572097474105676313256465105782587151441062660229442509528404169633772123286474836631496904394686589467988593140876842767955874292899495679506371086438248932205030714706095569835527618231582724307348387667395362405591060784603826882947367602496639099771275045119342028400381480440588367907709851856542957943655701836909245470266485415090996705200368590934488104248367557662209286559934614966495810878466226565345248938970717910996271019212673482924385627377291932564442061431883884253464151585673893277531874646765875980781631733454326130379173842488867170751333160842593333682234136555728778601595897492690958612932787409319765598613237195273890329968210927731618636489795799616813806114792872821284823715815871789998476001648172949146741206764779284554375091567770791659426781416199906525878605033377254758802629002245768547465275405832903834590260645601506277568572360659939273441620689616104989874448398090615455324963246285122879201355831192839198976219601397444681152682271137293406707566623883904802119335050696786283876154391873372605497528864853810405302285884534983187910939631940882974155432332448559465318281650168923697436759004471070515911645287770855080514476222445784466690554648148970057528747464212230204290625512332882290862674287464242154668059686409488043234521966260419417860727470517460265564915819571113159705746066794795092932796332661473118434771190533361331085952950854232359082579596082956731987979264535836479468614405107754881800655922040150333222611300314208455901279667051979334687333189922758806039100927739142258441058314385089834172632747183596463013643883111336411980986783504335687317095928815623960786762517163452644854351855220507054533330483316199402140865749276709262833146383766737095437412275180327464684520173085715612532514693292348951865627689894687170453478012907935862548858739589604272321115190431815041467779591695282721627738384719233936624208188867963026248915641160469651011979382145304559636503009340694472955071159865482689187313910533093050501671937126487029081631915830481258686900038312557633435616727616380474752546512129085105297423462273917527171547884692608962547212560427319337139527820095852038318401193094339694021278980469401558835701242900896222484451517367507964494350434550544700118300571456577995436281576214770984170230338049318644636918716658720781547490916262412570781944183279728157080221533736264382744530424002281495172319848818084168838902789810875520721106049053009132790380090194686898020371649517054242998423542391740513512014733441233490532936990721987614197641620279805298349646015870533700161763995198466919694961231454194384191076281136656850667874383441693062944034326996166869651688925780143544929624105298493961069235656163122516123673209283235650763234436725852929534842189049195721070550608615725979877172130052400223889001154712683941069582244905109643094144058280877420811792667553380449415619121181950720433403947248156246639897803489545508817350345030194441196930978660657813053055821115891111713726801983450225173796451391526573710784811541762464667514667417144143933113628948788517343728385839258916368472163571062144938102837749090229254374233071008816437056690642761745003920624453457749491383684981455286950183342336455969889087859869197052060589295770853112095709534196302372605674703047153991981016232685840113155381103494803639113736385630720834951336556710964464329482205216276806199959752200768861183026340272183545135053951538124170439944188957623163686188829496871305156583424575995896806831492593383166190085557787349929674269233978125288142637052945840666539592910005479595488624728454986210017498312229581550663474568492369629961222040603201173808953694183911722763181857510926096388140379739875247633878990397785471620948714936091855801228230640947527956372534827191812884802669235126535012021194131124087928824159232448579003410592072558268328792266517050976877367727445369937972882258522381243632564350048352418212455617339983836759628831939875619445381469206362203532909911846237641371004864068860522533188271107480055213183747348956101118925299918800895966069901485270452512801869129148365447937214276449654831244872169931857449105236963117715056250192907011618347181602373457207997368433832276710277897286079037435840664272163407275480008243859112500907730336989429799698892585438698132308435421540641380553833740417089305437901729985225592268652112422215360038087114867673222053370220415316196661886003909048918602161466369030739207738746038954730563817825158415525916302263113809587318700055505764435755673316967849767520427633135694218810268128424835708221422066494857697651986836409820901346224752393423556713297159933101011109356917121841440563987755610477114247620891379925083403659624808893681506164888794470625976233581207489667094578416345538312345678723785854675874306537621892307562181191501675289017979212260750217026515267074612598344053908600756330437102126988159455640283979907104941572511860713599693998135849001264697633420359449667616726975663550302003149437472401350818846632611686881609882050211733557850984470685613291027379965218866223594548237409719638099415408352593393094137837615620670081597525354179057274789609258967635049396241298561933491064873095600306800656726987385448600476668916491421132551753038945504716167042053115588755622606311490989706328533413725905491166782205095508699976897757321923546242156539893284682341302286193269915716639019297152209022849767002198502518229058877145882757982536854890775061906586174940681210149189748553274685464597522706586519690493631632198450412158461330141364275494383867152056426237835478013504409389192099696640227080126587336684184301413110701650734015026990188808765883618412116027775309731157268452680972337007463013121934518996270219102023705619761093470124587334762998882360258948547406033137957552215440270258898602997588071348891816719981742864215811950104574279651276389966469570441129627454443872293411724343306757352412304828915684573367183811426662089589335665356283604232876097272172748111280479408767022898830099654546070125200679928740605120622210309277284520948162076143813704077998537003246800463539552967419647568037874184351454597885848073352650505711378702660137380406988395490409155395092538587501532673789216901684280241738359301742362205650149259963158538449877396455585438457205088306320020253984316072327934215234122272319178639856446436775330344423725999932599926497969460850465084007893722460637598311761161419531764729724088428409891250696522533500291450160506400628215836196317902896158137201582222053697149748722962572349940893625213773928792092053494701416757721769936852844491180091217936400926117093762860453115200458856103459279410069599461306025973525218803510469170862426827692888160590329419690262602471660093492678192587727237184193448387539550578335145388986587992568092741499515637427474898207147824949870968240258208637784508763162406171305246660254714485447349440875283107421210354311498738463422096989862319470501884032686018797822788857678689573065698787805139992591339796666415879380008883192126564403011754556472006709082567002611034964866296341372750068141364225255224029909088218464028572335319705710187121883293027053884536162373599104277207684144682860414042573645243257894984078761049760898735144496683540338465295072240979815927609788499550642383353530228192823603996847503431980885988034791712390822890904597936894171832225512566965560515787333111575563390293824415579978180634312524924167578393779585526995362404266355833108135984164574742230060011233793204574117905794367949804430547053237053151563791884074114251081636738729766188591746311125301674430951314431738948865109656527684917928572970181563730014214070722456759495163033281816868228268905475586447001155204091934936221001200753710102296043474988971578291390083438340365503776723542162561091105764178834860663409549552840240981491275580228634804698258963367009369351196368801537593119578067171043929381444999035240643229928961644429030716990529399005678326765659903850196181286435850014420471776304976820299781139747015561876496549684685615476994183082330644748428684600481558974109986386948752034874776834648629400713143868989404564216548937164056979773300496780109826871282304921299516854167268155894754217320303137492560255450746937947133380760645674356856101514417072701439489422980155558779813386110874697703634718745638449816006563655802367273738943911651593251752407239258126884904844647663899898659878029287192631309378585180110342333627262108393096234536295369205851327552259047943256117718896454556946783786918229346888806337642619543121140743253168043723644360311030353965927967977369598786755932993505172224872668805747889885100830833057592140751652698062373493064307283009734179656646945586188095473365579802263970609300495998164371808469919171273360464033633542637641373230312013963545105311135631547072441758858322545448467490069944221184398183123988945791345041991906202169376469813908702756146244885421067529912142384829705342999901139570598777713084499447510925041796161278701017498601929772050768546255134188511477270839591938201423733714414758889346309212440720234218304136479998421002544309774474717715165097052423285355824783155590068005764417104200924272817544201258451703740118971220635704620096009778259467786337038828300865186588145660969717758142014455564197433787339483922040397991433059791893438075186910676980422133120526283589626882695545688615265319373281267597548535865456904487942025456373893286581234852942256044208101209203197104603115881580931452982318380331495087404835067366983249373699349493792068526439550258512734405867459301247026640112372472823889410436501323610856006938837033673948255196274561961366741053303196047126300252369030137624761093354549047288227383973749288780196030272332524034986532163031311316100966341473111042431482755559120160401072442237821507883110139233822516745189763157025648403603192050213219485440315143835174124068222773239290625096888175306765857290188883520265307409104858250645206588705087387545777161920165456526118219883682220263492279419340297342302468646070592203385322195417301911610742946030122688047218048700368503689450768444583272508754993109142639058326319896308997093312345282387388103057596680263040615753723477942580635193451049649394048280911505577045190591125057370542950956624996355910033126582062901428998636324613865888633695998072861930110882534381970218382614369821410003075421486989115197953327231577003395292154328517548826457922407522348032647412712007577799951238183095839235941899270402242080053313207130522816021723206763756873929562793782643903303048545072230898669398075828471236991712236814186571797069407144540924876847709366147584269723877091195598258891458654830558406095870568503327214425550043792927776143001406660390476377131343960023219956821266041588076986294870951566634357442986152641340944920220748134230934495870710889209609451680265041149376703321390410793889558531810173306745394878363466818731372941874387810518347470956500030847304533812931086253282777267835414978317308151939539332564811209629705506516604190107110071784819672914944936757681506784856541510310550641330230430071973441652891079064528711776975066620050918377309715156322589586776625629813088728395740700818762972613070669278762830588282328893703177379826033898094088607834343968379859874217851133623945520755825465847176148520208054170337689370031359618290545991926654537998415666056830314648985648909317260119996937297498925798284736504730560808643596594834382170524463874218142744959605083574806186739368112035182739519975430835454743335381465303916889334681919443972165071798136573439764994733453183491696744016910362043531404494887926359845998771780955681661171940631002779747120863898973277593334853720137263417928229290282022865103886697478578886274088715451638818152302836470603992589945426856607182346210492922426343895398633227816419520033449301836043475765554896672645327706745025489443022011491369938103211980928807782801310552336696371500214795706684323290257956731494758663504035443727709329008159860424190701634318103395576008150839875561814428000630815848405245676975709991404078806354337328521204583183941346431216814831423583548159532506707581605806231922695207384553259330571521314382389600280074943743670525106957151128664796762234240157707225576992046274953392658830425381914543173838207434371998401433504240018218381464098539879141251191910755029062299371610803118981268770491524202311381957738834350019335322821966085707641389782151529202521848542143397812562395916755936736849257986281029858879851509966289632303818476108355482614784331251758794365994760347570189969931491963538132459916192220507518530904713412041573510721905356242523967737789233548551782578284779361964892230957773988830450799656708885545720146084216760307678445779769053378119704195036356301753652400316166690235135672080012415630640529104773938404844725116842064071267836176473978372632466236965880880063906702598369820939968073589334256800351792892106845861704150479983667285499651286584828957363826972472171355041465961328625152486585015198210696499213648177547236407833453193616435772887454064497891845394376970643803948927065502779132121795036529240213345751326916199922094708757897448210189535994181307280426527503782072096301146081771298823944202102537225801426645770453250827955878027436897812424447278450549033447391975178901950885388762379583828286779717447404266411776782546738804664215277477852231427775250994573616170092023621750442299705932473556437931264355118262654042998861879400106678017527723590516895183600020730794964187715948069223714906356373907383096918369776588017762298616014383413714990500936254518501178806191333245419689620440396354983254961081201454769353901936549746114449026662254186696877341601370078355618255821179640546929618929764105265079470393245066001060979940701157323962248674864957754999062868498413443195660776993811489212745398908208709301506808277423270625679465868417147398737099553800541154824998586276743225992760007006017994305583449803298616158996145616427651493609230796807635620238883338817689846859302534700980683447217197538065342807560643748788617028385117588245982609083897617616674535792779294179089903304591416647453865644020203816750254227868671572440648340314550825097224867991786221935817702923709982323663670085618981843169842023380703986534020624622210711597060285733691940831071078198995313165963562989201580832572841985850128300206195130233044951510584978806246712559047652640844074231799702757133015127884890161198082035357325596324868382452857046902846538422731851549255954674305044802781242348049499573471121712718242161082583417351168149654028076557113333826406788659531367645493545342717682413816295220811879697382071910514910573229124416263364585476511801246123200461353062770927722147181946890614315022791331518979397634244679464606313241952203183824604981352974770617197801590023427771127147702261503897088869449961556151833124612392962636450207331965822532003060724275512860527707461613329709567018930100006768281251051677908268877807098128649153252638231963617369655785128126933698074134361274142014881983044885625414755598813447182737797910341365954329047379579252564831929594206827374507646354154480979483523205322765386971793809677376026344075929921117739162331987231262717519767967638364403852813420175672669107793703097767276630572969034573806188380417798565695968946973799936608181207865792638032355628968222681670726968832523109113423965106213360234683371603087427272026752506313845607271030500542198293497687267758493137056856415387164415415229455384280106956916134008574633640524606846095132220262660463738339548493408171129335096833401549915394760172706305379693957228928726849802209940394212416199190997621997653618009563393759502928422559717836622570236745926310663384605184250517482001764928957206931488821409409939449002530125583017386183133516319636207272348087906927371258272152791240094744172530393676386517871899651479438088187107916049201472748426064626287941630034110332152626745029968339378307430249628190442889671571300202596938394519114290613554420289775205451884708892967933742146946029110713812106214657568878078364543129460863345267226251482249991369514928160899383135636022881394048752558678564252091746890532301282612190353354634104541810259782842643293355515865691577342538467849660344534196665629307402383274956111778089717651358262443314668437347017078108709028980063439402717621221011008573406158531629118056672010024210825954702543727456723482199844218614184863720257820131043073403180122440302057186592684668747699845162396043042125118971752321451997514621908304393283086273282929685942583017427863501336108027093389326819166054209607716279601313473394838875050151244538507245348870250870108455034305977899397465912827711265093502976968661655862371392654951626489360548041228323849570927106600109827847569090611456798745312700338446764476148016962369222365700973946450133832290792133941636104613046812906404706866073063026835139100825164404012242968258887614467497038557457875909526271255445871013021008294159811016102805084742545583346623975305917315940477036301180228332150146186157336875393579434977137082062357726315948172882299048468633899675926022373608217737558228277859633241797177089857053100624211710753468792283784479777301086597683384657820305388745991241192551438649240772682494825029803057717243956164308348769305660982171910672308502853969184299411625313438634422807406805357783662158774717652267615275765084376164369211726188306251029160236793991654488994595777815292699875543025330298456285586352201964503611822858502296644440584623593182760260895004726657883303531026811796114150120957607947724127669440955080579246455901639018963799966299706108422159317531822850826886921232339421247377837966158780890153808602686750284366795907121922687218038831349041880002038379137020501916835193279497179720247553345129598105219701882372912191665104834093416357352640602742451929656431579895665492124891957799472630304597923637171376575721763853180087579759492492682384167116322673547245628056965718437738354735585780913643395910016059123347068157646071208065264418047834107277189445689632376640185618691766817926439008868750102880800954167354573224969887158142193629341456209839016127472496303512134437845366065879567416233301050278196617901150352124541232648599675366696717208263644639590973137129328720487811817077186246272247684028782575113830254871377456682229293508687340982032118266222674349635225225283313901562939125768704534732970941304476344709879633364557167438306455046612652542367298032170021487015725398235839603574395376498845494340106350572105087743417157050677165126418203068277435989236547650759432587475546565858347957590625196189208347480756167616756970378192948285053419437239613751275329734761481836807588161920852510219417898180718420660958158300730807040766949476705185165315137810780198077363735589740713199101182538769180654468616899618939599650482059421557730055260490700061610270142181592540698550870222413077497821698843425050722347778038670503208789601784051646192402894855580675472930067395909274403290805783849212237463192820726864076049493763078993080738295534350347555859990377031803446699980626406713875264482326977488268296497204783958124982998772938929004724107587635412771784269179187405364456083189845823025833971441394936406772051278095836717402277457215742520591740490316855446984369190719523103180662645140156465953064068806470931992710242693979491817083927454545733274937414579527625868730728780006896418924883979224561330721175796162558318390085887591435270454328282491998009942795495515098208602629999577504549584853270385436802122240904170183541377697113642811850238010672913265815560811930967413599299320020072185035820827161398077760908775715130086004000232187307077412852185831194044551146261381258258076549539717955847430512226864428696458503843097646699705054527041258198769323723940690872618322598057131906522775398318729583446684024671312073610709624429489928858168079511386264067122413177791042194148602812850807723093692163493726764952146991368955519381046515007102897077198106484968926265504444965751019758322303325326329220968511364938367461499343182346343400407798283998297371626226463850304993892570611954424860777787228481605019432143232859986018923611551557506948229201491655804150177999734420093455993426989153921572046164564361642518976074662952186582494723075823977755581686141530342162421786422431300028059098232931794316283544040786865442788154977169121278622697492202610160418989163329145230131950547740898826669789560076285150667466688043056773606102097518306203909731329622310168104222527509421842454940052061414791402305779762275548338373822580402313173539716145651936414838149748946517584847503848458425720196924892986563455134331469462111791986167849309974120556937048924166420242756263247014110388965029215221391847976181482786932029747289981257576176391475372270544611021623877888078442101828013826432889042615345735354380510484257556576482181409396956894211779368211276794346180607074199973023517386997216961443291394133923051272399638261737761331063568882228066834961663319255298532734742144908341707191747104807248042042952318543685697499969561606351668306872894718261057218485813822577596290400150911721440182448127071317827162422327604309991548801558955137357373332296484141158679198791204080159661757444805744936489396099341686599338131930170490722455455493113262135804176161349481933466719214712129223915978500276378077727157605393595319076376175240138241833660825158640811347601979235081530513752171642416903116881468162052288747127016536434700767989558431994156484225855156936922741042503766708289086956267781659285290844799015575315587158770035776275770019028791682471565721275580762889498238110064482146620502356594769204068274691649390854412064701353830374618027462250491058702682803198411045040597178815899730875233181856349311400155558464623210791564130227175043118750410551360233973105722278390158903787304784795269190018389724289428083586430864919842976178142890032091756760259457057871441020520854784853300413722764385340177829530448529084921022920725651458175301069722928635891626821941138478498619018850575431175649932028511705591729153929228190142684261493713391219638679859454785318099246337945138533594322762522876707381391786091674243496359848605672482566096397118676775199686043716707684819259431703268482082949615506480881627460936019174982817017939976246382433330605849853711142257092621556008091990726972310546771508290451986614201753746243040929416204698035815037918287505878881595485705079024668369191849330107178996756156875975828836077705704795055980006749438406703839331498204105625781083760668504703357136931770324323943107849169213950684924063987975768307107871933999714371505675502047423576416081459657147750805308065939161391881706129022245435229782013333940314458251630637753452610569793772213671242099102754873262884909738885189285350757536917562465124281390151263315337300961122561835638007677922444602011246111277882308906920474688556448934220097687001630434970769114982016517651703271986551116252551943492924659947093227438028942882151132981589822717967726420905293885607541889447524600138409512987497831017691603346089054000432777103671428663199051118799121508141179617185072281510909619446474017019879032043396113543447845515350520192272728624605653423321305228577872643325448181550644416035728340662613812182579320016376636600818932898722603004485214024303790035504865538820813975398565916731487500398457948182785748577659650553739210254874136589716957886910624043895244636096830348852932335817433570698564986613177403485429470801672473195078391566148270661531066741385724744254395810729414328432348390649666143423453539590665795983963602726622672548811740155465492864042346191061130579434729544563486248413743573027754384065886446601724844921924574808921593639624020434344888023855844105620434818152840785689228589258571377700944809865600748849395330735198400325884302444165820692472086891425232874507174047309532152905601838379232452063387410068386586020734203981174733130335549516706037757127580669396897631602981301811049826232683553103022301662051626049070193949497732360324826683214535130498999875492185569562743719441004543746723867960193657193528029439266423667006959863266128826690452702690850067142607474776976491347890341940597871812247324296297183783662539179002285645427253487819133701690741754570014768615724311716017971064007822237615762028567847342511385162779449566660784298291919791500293527649259527040488481035858981093343965365085116452870516277935150441166068781188024159015123103617686444636688437507149447359535018299993773116098401568349520737261504512382748910572065621527032874477661631687339092932603244527276548228486691103654477661214860055207169995326004939294749110592148460693185420740260594398101581097925590203868849707587818325670025091295604497526567569777317792324998156417811484718279182199415645197933799557085275076525829280409544677830648529033611828585858216023114837692074179945360760859397393202737233741071758801584596201722502950366325992844574928732467073678290350410476651155835255091252352878251647240275917949076834094521547238297889889223704844066418302624678369492801059286218295746353280300470137157312463094576667508261904360204746628630084392901722220485398091278303295838704436534341732537958723991718025938727785038125404586629419919640097699944836118446130701768890907118176703437282785397256309399940855390881501590434965361375296279410696896480356275081644919120728242360628999352023995730893276468085715666297615688115800731040706291567322773724942117278880732780195633325375475339238737020213364449019230193096919825403288999015301507785086716978098146084713366429228797907959666183193242629343949754294510871821597069193338757784482692778827169672367800540926506651194939972439223548923876089148894277694599127983606321049306730262160250560630589637287616962675531128407690962422375265944032905373287302302455147260615866118146591190199233299861143023587097687063231158199467897207216404277597701991506755539294120798587508968269207116913592980759199870425874317556295699759437940542085626250513355666739053201947262332744885997793302490206373975326748909289577157439280973195935102457123413020666389072653678823056204502723664497194542713764288520439177637881844403936221218307106908674766229815949056311798631613976421449835429092611460119898378740127518873022238282371935256972778352351461358220264527579522792595981207741179897472868789050882207484966140746522578761031562557075398106409848920305597299681143222172814503345546588660545851086691202277442379342016182408307733971856393251460188781162200607951856931987588182419596435194948989881538463916798905428741899608060439899909210148774529760342633131445813706928743363957046899936696877659189253143604521393208017342075465817688235307720224381458949224554491978469867666594594958882390164812830990068360914340000519178099488026793688524667318335453326453455589793202129874019797569057548990269170575339422564029035051347101506162253084307643005339490486155851479985832685182524582701051183938154735331643607898868490084024900479726559636175888567787446400979726752250042446914028860292396531338376960265240494047775898544793515742555502859483205347958994326150357506436123585895759952699398112286718238901502513431803084675386440372931209091735119200047096668002596964498382153767342547773288978152570247813524704238449699651646449100441677657270865803220254380018599666738880745282829379746449605175963444856344182306846826764731431290156913012963273202177375182570166135214125759413036505942758501102131686417854437253399680037929536584659587437875759002183499873218934411874951696532109106256009526809069321577875509222788563301575378762067173360805438503106489157923765568606183997500582817434888206318205400285496514582013258472719684931140314053098379095952109606442365925010083712570775789382966706877533358848294427343114900577370321214868633640877260221933159412359940099146159378938981784998089814874688584037007716263008926205716476128115335607301420204524550548122097419844995773323868143001464343679214076092822773511645853957186128860487446122957883515544848012047928945762407482867140813325321392839391206531705896620882493655370213886515612765482729439997029918841020749056095117113227707039159822203403147752033361115539582001506816624239555773776567172821556994187939304680609345559488882544500176173221674881773053763893431102310090162672805108665844685548015551746047838489186509942448574170875843606660856752994359845571975852708300783053137901898702108283647248992275022258778656146201538707183962634203284654404365348461736387572408249404635499656174012384322754781043767876633844266570760050253935727775263673944354319407012060869068576319231075758960531593105237940631597060378344870594270555298675340330214986210018927954142364286176865253928152328618801294507769649446373105165205052349950799040325472249818370404733049238673449290132892314463695036108757172072977354626880749503218752683438809262094962331670397858219271300853913115135955606427046437380809646862363949356144663555447462827330374539627648888214987103292353350421187273654285609806565263995940358932850716380864341005007396324296783887968345815056894170204460867443491129475324280505979793626126398547193642159641223920617909234267125374907178441583797657211899819500168323622341244578104732941886556986313914303828056540770050906147801223541315499235155833617562197189584511720266607827414420496035257471234957781383442467688714125204995246810829070508940618725847499741916492846128356978759389870900088533820165339906297138690072547446152721738450309381618482341550453025087230346628344694189307263130654344172157294225345534488096173160064974220307148970389696563081304227235899645787375078135106032826346255168499958460201071301691257609271583807005067572590515171696232934181437781562598527387040184353812649316930083276543174620858208509574923868888212702652894925260809379167853117746468685986157577384154424337709201248725365475392372803665274890363222486138599487012260685787339418266184854980271397793604027622233450977763007015532423479889156160456439536503910550244201578795688663219870871982780488427190626502568581332966737215941594155336597593800835066922378277388757679595837773569899642321529700977328911735194651976976808248699946870578416849358269869889768837052292808280331227996812621134518557325006046713047969494484792642015732561038150058665650568445280952657076657450321760055070349081339721291214875660669044048311078741872473790260798506864866259445307627978435887257341175506172321252263506704673828665910522231275223932547044338531693029632008893209195834351845923820698004229378396779854633720448607041736185077793929879268132257502261918857035722812243235565180682487060147999890948727341100332839080469250237207732191805104485749313342469504996775332027113935628645145299431935176557817961383786475547455250490761055250528698114210544427300235364304422386140052327926453077733225938283722195040896571975136886897703968897903450481531161012789882326866065631342519740142315746938266917407811943427596920132761831546175576474531856010759933729263080864868170613943087707266270840540030081155838161481443252288132575164360995890308944023646446824659629028537610880954228744941738423094441882185770135739441871277428277180009258585896477958987487308404772327302191057060548380828864223981089188790880882812246080585184765099585831951979918483744391942554167984789987902259160892752450697581227492926918201894711351594752266123125232072328070501061921416883655329873440833865321431421241548521954982098823781341170573429095311114411269234046150209569654277302467705188638679729535002807974320254176692441862397686768203472096148232330560192737760047072900446980888263069418188048193912035067680364772185399071663425899429571578587041812830095533871100865784440356104726250767689914522519599491670848672955509024725773144878156319347423190830707964910868590976232631060511139844167378404432518405771381107269562709529041708866113899457215658255944270166042007185526970269514041722960752212288814279783674352770008214201128141933054856942860204361066540178195250469844883078783927860337681116993986777554814619368372191896806201386764357504817270407140373659694096091699154002517005161755832388443058485030616072954842876801135695036491042471031935892070249773268409536024065566334245806709025176842036835707972708686241717688561484275593632827453765440206972229281526904768203800492355396271332901962952699370774301384762317817606173133008912646304618529066889291520099130486117702699216999071633968414093400899046015278209845428743145469910984422925470947731537043131432943891995737424094954920518788916413876493221697753808681130795065921642721413461080144796113961110715818910182475573617077696184173624576967976238082579586837236092529944170235031993248458806385929512360334703009873181626271912452621576822021587254869116552647431054381979815993127461177361784444539852194985114430558923447517735825942489590936254556419965767321793070926217307502909588313118863280935673350134053724431539953748920920469328558435053395789159584104485560970387217524679798836208015143504644446266287271368478511796551791570952261155912712458989835023603562797033641128052819272980526667499538439473843005211400766153443021144570440152756417780386873935813288076702339186966592459718335237358412536524592633878180729107177559554855291875418346827463600808451956973480855657527985153525223077767903080626380728022943661934037825115192401416349592092020026750344841570452677936984422303920922942973528566637558317534317069428871613541762659720596280707578421591660167819330312065895636583938541578814354096247731897159756626813435432652682599032201415945785122578015381577273151042481248293848439763475293975746893850398490588568975436550721512007681039951773949546869636766296984375868566389024234574865662105436185475206467514122643694514080392053011048909009121491570584469137760522738688351186281829411080141984902368824159673091216986131560631097482102574708247471380474374045459634624469725214560225949823061492768430141392942279460958234368897817687853489850851226958405080098904579811171109133403387838619139853040718770277510801244443550784109308581269423307093234071643429797600329586213800840011166683009449313643457169843289905636931106690112133947372022469159775633031333185882698299374139486348752424231878607221684233472388069348583242000450716241495923294084454396907792247821482972816895826355224811653122440859228629913960127545568637850323870859921659384033673197574623023317868951971927604679911346845829232639165658485136718220902932626067501713651756243194098460560384293684978730026826840595307628303186737734130205140120479307115431441377765900352418227723485596034684008100839454058984959144367531987524171874251157902132184854601931268976460606769653548445901110442237232129092240750648288407073532101243612347503580876143563596851079232885136922234233118879823518454258842796698226964299473403460838072456923449517388003101808733088008834413455942798938491565838020420070173424020094809998983048313285532553204362755473934030203331792837929228553475305872321272931602159736600612425213818904174986396155283753487699396974061297437432033971588246589911718286929227059294870986995921220995773611892875728208637258546552551113539946915932048562044502131640438782132971707928411131001700821908589908854064908504958010624113353077591161750045202099402419646499016856930136259003656638546859824038942969849406132058947540490486126538918449891997247819156623816142221464155731342469356504409195985959454854744121900228378129510363829656340180322305008770457391734017945118877532315683440978650373649161954878169960779636132791605884134671760830096841708575737298589664233858384266939150863302919766903150698274978322572565493186537774634762459845418218947067423692971760815544501693483612208134880271894356345648552213559444422512940466269856723188097979356509289440853779886341241337831638940808082888042977851952673541581549483899394653362825725528048160846315896964364760301108773552737022827483535353172428618284099611633817520105977375411433367843276987024068018655060597482748944600522930396032308955535797859403568973711262993949051734507321355319249724927990509169431456508504096131500091379116571260100501099762509186443055354456080513277568743513969964405801955306146718712622091342581053853756617813322560643092096243941249049888582913976286371989435555795765300069804090166056267977357744516694485353662436406375813712909210411600081977162371807389344862260345988730250831227982026045543183109244875889849950089667708437234314567019532760078682852036527756988148838610609500029720783352328359558474159921892771860331565953589158538583138546904116154210695245735019978930706923183089839815371557561999792759570115511052122661616369474930623372766699764550870163905481679588686181381550251666795544210235229356886968880743144050387902169330292498360573411288410688262141939282763138392199101169646021943031406263758944806698538201047542839981525286562655052496474838322110426418517741997799227659643521882078082813954594556313581008805230194973788843587041258545676872097813870071930017114142623383642241268487457596698034728985768747257144055200958205137095550077858444011777083274225497751401960808552268892667966325731660089894339463206845238684607810653887754226148897050095342805975667944373748263903417759295149360496536936941781485073060334927253354180227998175760727115429616585815197400425627231893235140398214163289577968048746556340402617205419729380122259023525489305609903920621975106995677179885930884994736636034652814123531129249113606914647223130767136448668222602734133470589090404097818098154042824389584063416839230468987356274760546015048225109075733791761842137104080679736637046375360256445542831223112671585500596192613352317262891880896911419364317471194435573638926358134864596468409476453904055034745345280083070540251136843932846614277685422822772873222916128061657240966485906788966789794955215674166061314943861061993381682802380006672326004120140275801935007993593871273645216183218668751011743830548013737580787341870740994848180324149339049589881667257845885565305618656810629197267595584692689469909975035470054704317207932056250266294387105959264779317649163175344066504524141956608655916082175099663968009356019622090156308204178718458984949596626573559248191794309214284802693133161467493401712764896102013768619492223535829481028452681242712048221498457061268342449787720473456385319257865316286005971573104966514752950746524836853983562307297762678857965280635454355568981776979892653012955368579297547159579493800165107706043006505463984359515858335163273420507948611183302496421630706849629385067476494358435431608241096316481497253765216782341817785194761060705437216519634502778470317359792297601628058989918557932494510939370768517602553252269868331493767099038038317236102381422645713070166354410576089592218192313826993069551226853315790167369293648387651233783079467012532884364054548117354552049887208470480681865165411449697908302762193767030010540913263477546145749858915556049541297631574017735274701228683727498817715868568826545122150968852275004849884970054426291707891486016754572701267620058482051187339877155420263195272057050251031884085432718771608406038272343487074604214029530942356710892547494011222895932965065240532550746989945476015461300521814045208198267434332752861196113246803370403493801220531422518492383151086039186990312050772244439740380305410161800663552776705703572387230672311167920843189910493982793850057254735210710476031162903005672812372063345943790008361111487449674040238108771182585844895897361308492390164346272082134316952268173352145757385092066620491254024370516983008217286733666642355884845222181394004299073277514655382374796658299807435611761642908884106166465565070491320828299690511554876694002329799224574226724125390065686483612357737356728862103834683326742087493104619407072732912094642010476104562509906308118843509860557793587784915244460092380429833376439245877114653344054438574232451370260732949272908055828800808887079532732349981510898957420187943281043645986510391563433556553349192702473429376165362917257122259596705612665008214393601346208567083416848248607237989017371316939906038680124079858206871373704614894974243725255102604832859215002006311157031776636476892093030773388217737911437688187305269061500847005580789186944598835288979902110418521655534301527042758042279081688593408771735581603819750821137848811949901073704233646953508055976159892549765341717717204450309273155021518994556328571828292317760033742917906563875063618983403062417522193012254734248260287369924219649582322775780147552511591636117973741578240898450067619803619344771240988500865596171875738976611658956015009982825727796589077005255573712224241186955716385636396871479417284658336709137493633384326433225362897631394520687546512878498934047488707735862654569033308723271502054238873581371690569182885556247813940888934582458631127420448147533551791260720429481365688638589478506476896909373747897552266105395016857451731019233835770599559739465783830236416661017220200104196144168320102844414101843360561146971726025716411088008479357988060937135962579292464981009018436734945420587115838651136839013511914315814101063908598742182338753928149959489501803499176164135784917602882835353640121756648293818265290612381968978384426526741727133576256113497374831519925052629042016428752034202679007769126624626783866125462373156773177069250350951074746856601976255987610028779887650639192207755487558222177962475287342860071184667547147054794837626634354335118307232106713822989389810513925649530691231555914103972139950513962169467105797340701704435268908328645243894260969972045596592911685344068361479567467472357536480930213901814147800292050723776289649168201485553485429977589299119928927811814149478123826928769367009319706824499067783051562065856525913860655612886259448431350047802782622103436442330827984774151213230764064932911519548006051963478060223294150934700659141893071442721838600742952786451466809899551124765499883617617167640006004140481980921360221092999961604112663960371310273826633056969336047697140514146749733229846407052451235618550546003419883707029727457590169185129053606353883828839803190822110146736095370930915201723879132483697400454877326520480762606491871738831450132017984872395644281795832774396823512718626878900426785559219207773085236456134129907742599682980818499961707471052351444862474161389605555119388911020282683199857766664929773868684472590420146104953409310892895679361258231950202716076841974237163258302396495034181600675262629890923842279235684035650051843977200138196153448900672715855858155953843851885710794155002918395131436515485918492814434421350007556237255528530179836905112509937583641538251399324930983443747797345722594849723861331664752566473232045753687751856175726386278040653495309569735326926384482937608722813540772303410304824638920532239949720509198498526640962225695936415586914228514397249275635866019051974426765492763294803653253978036886042575000126224654787073375900674710572128123190935038940136106366029979835539129462734479865710923907761382176041783490518605140337162185856007480670103985718434745974978850980603801254034955662215992379132092330136863464152025401712832795381284409800404366488579502090354329690394593019056858379560378461924411127222320967739061374568032934677209176403731942407446860014623931705085225552128534119023340942780839726174087912902032011812033716659507308333309441782730521393308582376114597144097014169834725834009083649835065319553564527911496738726322608066188361029974101752745505206076771550678763832182944954874243933589948433315837972390618058749036514152804053810438288231722191317199989281164499062877787022312166251984542034504339490764419087153051022626265533835129811248080288948788481407859437261033895371405051499247153962278341171700105263563006274328791366869849279456940616572193569653540230881643750928578324812030250407696944564467861822581096233158577174474268258383298572472674357817084458834178840987811226199478696796938628305155611012974258225260034430924107258632871414033633356213705038897322839162686384327369237380056967523223831106478724063958702321902106099277504329925130677379584896321211719994672538113546539515583900692422260644918629284760804695042059856878363579585874884900393084779479868322071501940914404875703051295898162690960060596702497810701103430410528295435791467210899825237404615229551672407445515396919800704107255766679418408968524639688581423641032030216665370401575871514276755623302717331384680963042457901907030593787805076016845795754429099507475110261164214960896794375027247943214557782362097395853860760212400374012774155602630544460906482542736126676207959575177210970389794747672859948049470810341227747772413369344029613186269219808948829376787067029545462510869229376811727133816074948159859953654129661958685573132185743678512597669947856736496859556487377160094734928946897289443995883696487631874171473966301715099926594673532297831290957483465244157071066271132763906866032134949151193298968708526005184591964059802600173906599062903808272759707209756837957321381290016993024633293199843853800843581382792204272295382894994201321529171981912158106925405028274179448531969646852466486318677947720693120898346771459492951612435430837619850699352737790039163165185283833541606354409075711140133325912765535794601725738204866442988666333056960794373685895079160265309441621088780439931313867404110542522807422387131574844896172907074351524555724452190081662925237329288513596888590697023393684232543617728183510369250719793620151981726584738743482450958224220512571215525155975959291826641706224880689122059246241230393283132798179122193034275345648138530407192101929860433797383422339719275141247234745106544926411355052779800660435078593056783650102201251842343458048838895404853916539569499014507764180613221058348228647667626515790129214887946513486100549861417152728990047872434813564439495094311869585052927238992278135127768101392868255036718897871212099937630346673121141264546500855995233253110293909468553482212857971579572693284325527000817030508737408372812041543301578447570470895830507017527962550911978514335809079103855728687730904327102314754944584486185594187441272422306856230715170390304368676976300454618306317151886579294699079085597806720654838767982772711603236121758367422541614245019291495249301108239373784128095522126481577576011383251013343592295803114360931467802212963085549118788852198696507167266151990872562782406149816167784282513554486402739386289742191007155872545125327967107655438227347525415985958355552219526422430574456756000076812144035602768093370951850710398700864480939628635649237886732462778522937898456755552821387596102033427591867213698068780642446158771841138347063011404617518231342060580160627354930959885458990838491164379388756790227032709959589878569214807166982662066493448538451518084065011800226601493122849302138201219350308933125984262618880462645971884993133414353380946182145956446176237480166359153223313420732184711966790582513382342364349232751561360066083966376379532544370320091564862421674786220335150903249471727202388241713463241254742139800043664225970416030474923565319338346395209368737581520563902481484416682861128278583850937414529918004384542286109463255608541574513930461345874681391161598398629367216510988628662011158602072128717531930310025080618311757471600587726274965318008826831253986065196622089743379375605513356593108644863006528710212487502094817639473780872372318610536750962433193398013104265453375440664951189982022359284731180269552584702407658642042663144620834778151451730488587501215272346243761428394794416538950542395788918425276292534263801290810067630586444884720469517590959079331766975194554683188762789103786093295187577822726060238177088191872465196220610236169405445238358372487581127823942304200752664949530366466129627457421926387853306155856826148028167668000860373541266002283087839347041058555154070479525820736432952874029001476215394669443078347809647596297955337693345990393048482223841320711100826432675448051574433501496807580765026831475170151487889219440863317415690984523741661362053553624491736499449253159656634398203686368553710008470625439549630111284797391277680331697512326837883559473995102557204479838379556047874037929990125283810917957586897091090956924158449924859575246727063299254598731392576344795932208738663428371180437543546902842747238829171055112857090102038399741855779401634054248434393435580130624043806698927203639812354540239292335639312404225294173088033617839043822817386281375827372417525960860579836136644244894518136633816491459361069836661737791130943409705510031186905045078241483031711298711111256180544783976478481472908154474352732596920472552899982719041125102664051075613733264102000682062488836897161216834937445469516967980006493446581890803105710014148516988302111857090385074364154599152187009696009580496735994918050048801448995242976621037436744578563232656397755973655686727621789967690953661815745914778266156217245766060004718698804525875621967927468416999049142502513882581154816375442525304820779391000123957736444526403065549871439849636472348042610988107146109205801398448894566216948969944303293511076316018984053592379352060010332308166558691585950311605266171310190190149976957288779627301336477849987633194505305036028715674466461079351205368570950159168917484485748308998408082609572767391383295871464047031091096702070986075610744929449808048763575803000915127370594151197249433045058572850897825376014747521556552244162208665916075969997345855357052430357111769232023470205067213454279950117772436437796009779290947001900730600821167388928968252104512508925162584884280800304841952351095478867220807584021654661350185367150669050792834635976336474783399751480540603375997704517992494899576374493303039978057152793395004696476997721779127906078255375109488403387456292578908186137971113831336050208492220355411323785035455160573516113444331695258645127539472764919971533651587309845537166287416693610396801042216121446218665960525955782644336268662183644884521254175709633657541066115110133661440943994264918862481748361228350694549793166701780961862083076053055304830483734476963712050283594338560566282988546246128390666370319127762822695540631455137848986209376826537219708656706532414141711815369037119528993520494186425057342136841845031254300273496948968719402581384146844322484283458043015511554701719050801940217787138783124297217775095124266805861932393795602616138569048169212101931584331899106670487801317199525188462849632412929913350806343856104504791948361761030062390621790770706536508678172912891839926615466520958508443676461055374724767689077641386531466126768216218573134384492055627944162033399863867783615353685365635824420739692068775915952027624143567913801800303196147774280717328211481983844336747467636671574564062353207098893813903534593767953548390326657599373410095240597451944598106194243272522609028048261628800609330247526182062963152474095899884021649521517155923819059655823407969996993071803695457907293653227596214839518176114866391855095191472403532474439750426782495709847445518230249506682977265882459084836526966718000113361972171842283345370250425252904712792461645349004432530829892173942569697048450161799703040060804054456338295295941510160819732663410473298228524294728659297096420034793760673046396176798881808070691228956344229687847573868043609306886204313988457409880135424077897284018867799297265625823994837046621220184139520053413420071489945703911642442266285363774216932664427619118556833573657957314573942691594616595172518586555417894235110375701088454392966823364771748462718838761352139491701005788533478169767168808619819468704629775062813781057782515416318178651179292003642698939373055800082954024593084217851226503635701777940420469059856893369018051310822968816958223351751180372025732782005703899051294462630814391111054742773229241525734192181509270552132244075411303941685599194941274209553035758365696969425042024584017524089471049781908916464310813352855449440699194995990210558768374392898425166663640547526099587737324409530523406938841761507705009929615578506770709332678234332968592092658363622604225126583985668383554132779197196428244837757317452753349564675184719879389025743760956016825896040366123178512150628030277763792340471753185510979021225799036579385673047837966178580746255182857643646863800196498304518390046738060071855113366169330539394375252120493555491535755931673010095202835464780231268015002700510460587355121968677429713196367171814102705516229906729466494484406477323470189568238121685088909718472826129992475536895190619413744956940178002795552281179773406845524011895313468949679705913565361904455069509811913408646397279568355980439840779628226435031638626675364767775994093527917522019926336169820726490407546968848412416630502278990797136794412617219521169299645586804014817322021121295501555031672998806372183023611819567018710001053298410783841372823457736058784346361122094695700298009340587988607336741490392489834455404260762470151171742956587017393671977427031799530552824420463261007815475579109020470451448531404673537637810044635666967402722306570437562895839167093201302894442747877478324134538558135546170386440081908050584603702667738493055166495803527668400336394295751185454531502693967677495379355120442821529480022226470441866584708250678763407697292468578909106199937556386204583977474287800068853679680702676494846289057325086071765366237196727283345159618133984815059022254046933505570428744237599010703950680909566033277329476495425547155580911975865582643009197680352396843369533190777493113790127174651656015459225184799374669033234556561288375802183755751248995162641280583612314225005681093865236260670795669871801419312786921772487160079514895205284796844171453516004257918001665700645174301694935283547967425750946632114847299965330151902050731748975333586264805104765623586946801833663392162954024899576700645937365769688623995091008615225531535190867529946951557750452638411317665133531236711046371893687012801545295651622046949438369311411527529412496346046537181567708849721901841853329750904070425443302900911452410524593502493078204411247372784652717483333705378009617188880987659898634067494783321093764252257155038383509409329640360871035415679446567792260801116102281819844492668794919074076857939599686303406236508820349757204513978578527482716516194427571938556815427095649534640039998881381985373282143174114366838897544418473916964063041763960791623517789812665124158986750734189862228554352231295039315672961173871573423852266518714136729391544289186070364474030397582057653448497377448154567491254614842619573388739497858113897208264637064677725347100210964152702253433953234941122255363212610187867193370085940160522572902829339014861717714217720911405850775046577998359308101546149877231969698119779565537838191741600963162771930417946527501062499409483542911051318892789337499195869351477972695326657523962137080797491010280173969499695361735564100014383761233658979620773400799323440838155213567531583392010264878405191132000211841455034797432692798367094824528439690216237890679692974046592768483521697933865535611225723042698123598517224492592096752354006403508110864985223964942382514571649900279658616299523579933364613097065085446051816855469852763008634202668653130188717238463289439274012132263650262342424285638262252439880637834108643892473935604419971973169623324862314878370082205873218230888790216658526792157517493637618239074840019296649348824520425001373453466672199594559288870407219761870054995732491143013678008459599526698216836802161149825163417259027389833883552314741421268575573297962291662161688942922945198339997858794703137080955252576409264839311610216398744109566722048090029239191211692606511021262872040652795290469758176946251432861166212548661698014142133554875513496730351550140153740697425272934034680699129845082382978432252989481464911098095189291713909150826266301641051079824731176309112928884258139679334497446370399916912820933423896319665951768011204502269692318694058760554633616532861879852567873448815389356215205365925117919030599675854950931466265670157388141884976755508226666779394108529991207020010562851901138715801424718338210864859394602255350574266849527139794650198813972379752984012313990237241259584906679394543111800282611981353453472290938231101986104400093802385303221710250474638104854662223591364499377224364480640145242900653604521843380976822858146060028021757402822808873423775222789691649368158145560009237001828028512930871733685195238797937207268645091715810300882889086841727410810499077537274645875516275154489954411086668866261984236957437326559833106261858415620946214929623461748314388335335900149013288521714051200648776787283704684852091495947072642133073776303385351854897486938634309491239793726502081388747355160691488517394064717470579032429495835272897129903491797004807743462226654123204041033779743149331949059823230011398160043358751310885958076870291650395207393498328773893945111042857124994181300592180645537532405507525356846858933378781692883478199717209321942461192070265669195255088128458907068627841950512293322149788544543816136022928178001606593105091544562950554551557627938237157765391201317399387678048098822743910618690884324940595073535076732532017245714524971776512595600389335693812300766583141157635460894420915389176519276691700519517558172107830304968239987288257857976797432636384394500966624696335339644831238917764214822081365347749733789563380899929737582611604746113847299887551272232237043942988085889504300880431509410825288310096089773613010251374467754970357666547889855820249708754587527049073665267146883260133889766542328121952115695552836931139113598888598998440031779102973839606957815659849674970011568465965255532933827642165812655222258568224042052808422389319553913468987097335116195727597867188267211720560539074578863169028851976012927415414162477727751901826742438390586484572933908822534168818951163658613316384708393675791768437603889640297360378589476816612569828565945434333187692269042430429947107482741897873076759275599488207274198288253555719841744791266001392838751514764733289677659012184448928677921951471246763522197376059083876334597266483508162876262343094639723164549819608623266943683247987550016792186533937605999551144539241672328512508906338582845055755185029077687108568920535976184890898203810082274519395613385833575390038029856914306482543809205020446088374963683366916236582971421516108589995390973621192158062342421754451299312842274441307759617542597029757506967427494729744057321219305326695430086248908079474885337931167262083136047473348492736294840394516066337007311579943026148036234082045610542758938976868082902462627630457224545992391024800750017383634174020872197389816516258716120295079832672720114843656279838125936358151196232862241510373926925280233822319681386298584744600852431244054574933436563463181514505892900818488186980426165554133852000429645034025341025549059958992181049826267960194364614960221346483417532546577335744366582077521644189236153047786759477615231289701672590866987809787049275653661154195223833912139066331277534820026782341801669084763071559479559164611265053052616766262752690583058722139180722496199650238865013707216827298092480244023293003949384347794005582887248967247570201063415423641527067572284000635507925895776586074754739305003300699420812577269411006647715441240507017691665279905035881450797352480134262070368011395553307661552708530906121233808310940108375192467426011744898991853356132046483108567967312781695073901845880410949878451257298710208830035260241788100265820792338056167274675251560669994874151290226420260556714935083010928923482515308157887439319152568207174709829148693241498991934676726216046335170810871655967822136875232869522488330494376758747131250146485573990541902251663897046446695501363208228012540845918374591094795304569888760632338516179703432988628177617581084581468130109948128805487898642728963646702578740707130019350105039407196591179449227458647059641560971898347714458772527201024645972319218518955076005397598795829481454855826523448546625537394095406529667558307375651898027733336293342793719183166513228595206511956037620731990974590165076383957914909274313989856714110599275454446773772374868046972525371030190817441630209552265968492387123928502601265258189402465676671006236438167294721158401765376853699348283218749841899716249793112150103024129876812500520177617653369163604687154020234802092320752304084645810638592269284906126449004122874740158424563913318664789939005952546164483360483257451305272401640360278745699129816287746852631382492832636471706561012553313686849177374643255038890404697704562144297718739044131004731801805015372817665482603887312996184161435139251721043757332261581318720501090700596055878360999581049456157122852295134727053497456391084100288595823969374568457246580578039358299325151871271171646424311836764378180604610767753989485275928309461834928107321211198911498884669054037103436188766295554876077807850538184301874717318399704605544397087213110331136943194113984566331624216795407092108790459469381233294643319960161703226037935204094321446248163672716674503136543742877412628208758638588226074049489681801170718581968061140554005902792079727756276331961896434673216265904032281242558891498958271382230636662069878805053345843878530448284517785447174454036045641052954838315453791222358656750735118006771649102247442279522032057577576776092814255352764285633427487366369180069056277679392939175000597921976677918739775596622929397033895974035809987620927038828818556545855464883054805675308602850207042773246464044567660881326626632074858904037589481434458304941563722707273276928079984600877688640048320018261163180958064224650746857192900390219491011174788272419539027980194599834448671451854016352868945515133613826493210152957698579691442263936691528715437970481144792409561742328559742059082369504696905447976132181565365743042824187143676879020789359409461338980970397058255450917214122518630243348990557247871075067559718547990014593164474925527399615842733085769222916428874093308941985963697334328181541564750942858599885039474753293649031173173737311630227123188907315742056786061442189805139019087095092964832705893063336649767920659559963701837952429325278042044819722706635605931659778110118542355575583470970583086865167318727120908344114286984818783801426131038423745161471238858523462669805131437424973563386114378980535255494856132013014670358893692428898918583769506045557714755454855863780170927440902277278844521942993767947213228494680111949496466760178688159265064240358847220909059614456865141342634951344103695370503219607603944603269949107349270228991227922689514168063993538066586021349307970275693720912671534705143703688268538232989203179090353717717686346896074887917612473301081170277352153199051790597058348746516043061838371024629997635590644410160654751512651268265547800949579002880369040226499698029294440077052123762060975103198761932232563274088750755525552216738497958621784774200136535625156352801195000902515922755257121555544566594833145896218277265667175551333125691441715159580051377145166392805422557539333923364465889767420165984067251508165657428892763106082680543051764251182917023134476633015249379264984868250616086159577630948188386396610387783179664106169957473298633953086780450521610093067795114107611353568663953937689703666733327163663805956859286101527824908705558719491855396111804865206339149007917290999232121404085047969279225539439898008844119061913092116090821948175008436615016946378064423372660647539588211847747862449484356642623906091644436894231886088460028050082678732094862896750318050312698348685815447873113684071116137092613544921975093143636380523991445379773076076412225831110098029513856866754802182744581071480479688388773853728776680214447741641926917553186882327172832243132919225083132644961576721200966646904916252619642188562104699759988104064264293782752898168865194504238481738697450758817968073494998745618417362597956646275517549682783283629948255132280927380132158869027681362313178643278000685622177856943702291031906476853012505972662696384518391237588872340915485676844316834018881897617754675240971549964915096273471411029159727798438752737609640084572249736725272999622768379869894701836818540751658287066672014532760206645376928156592494565734701165498093597194537714933844170672564507779946008852612001266170277066963590936331748167901118537454374089282991227621141775359430709386162878563324955353592988824528837272001184571493747943079056966366852960725854959913355513639245663821001837978630485577756608616688608677181964318176588250365362829514947152574606007947638447603398872400605304171338240261061775832076545294879968115799288291192142551365555558971550614867197940220250913793880007957281683600179616736479366030953152517643408698484903767342183503717453153998619975095028841020934830801404441129706979371361269235966475157870465404688771877264525018568692632327431938323606402878564550423795280695324762289254807547141630182655656547521605874183306885006950293880935407351898668102150410414654761187473412731611544860148603689250021687135683280052049135891343213627643499960881085051252129915439579520626699540838002278785889520959716943548082830648497179369506151789172257638227906187655094360328074777979994066893223149949760110417874281025057182667633023133490439989698411806707743064729962392070553872643712034858737760999505319179126240105717022692201946334652171369184454756656141714669114603369324963327927536319550780636122367138016571743562692160853436214358356889115349509089566964152611470089095452539164698800248680602122835825923882728428075291977184075355075011561289208489071018332795419269167401053648668259012214312254168959748556015862197466810314560243525497167070422412015626860031036879135245352019225630300497742883464376256462426488492477922539683767080129524773529195052451785429409689194751974962583731896578123081207886501146366820814528959228830795439547230580776359942790906047111864022457182789420511094112706541895272616560852885129599234774882677911717099273277947005689714567307926026493005164256564633841291897292315485525111789177017690430910891058986815490378780438819674089900514938590527835244984123132229174338253520873116076906382661266808052367537181957947620022201869858803976822987955708560890674108368543350312455685956208307160191615549336973874159339117972540803106527311320389669502997898298033215251188229916135002614313259396288004856187876886145182163058157527438287193874964555406784514677287222869416883786357735664666816703772492473259407834882128394554379347815301356768712666487003300144746520937251123671001792759802123514197106856041904088005852581986394276513693003416851727759583663490765726698031295093956846662632025295315776292556329504964677818870196341126904792851422440082435277557127580680671418748960588664798468366020274569432088609817905110808964833189762491831199396305986965502412214375395250135850856231071201623985226255021879150015730421352610424466824246660197458500653954877514168884785721901494335068436965935974269199858393329333031074365707376975698446419413061910710597198613409865962261570225312433296500623661697589995579123012184740873346138405769923137711414845430252810575731032084373760775034689062549398644057012885149736209396547621671962110425490557908323598969381027732892029968482470031205725719537478207631165818279892744550925601020476616545344167010614746279786538201662735126024772345723440610381471107341916004336003439259573784497261099155724406719266312112913295500365081976737356106489213202792519616966175009504968769719072145275173345958987094630402633519153505185005794619466187710179691530892180830802109478924331932963103375808403221776849867596559591892637086743903725082839115448035798037493795317285795719533554213323383746429412270555886444183631742850695004481522737203597057035223229452487166959379154575468510656081045272161748318893796960410355950933007200782565048144363230562336049761439398740817985634429042816809105066631187320179649909824713948181341565645185131776526259398490157813257412377145443214016689693215725416322467147432213159595762283089737759683330562946504071705720814854247177542400722542466166190810328988983631134087913673583155555254157594337899451970368061157149810570379939334696401327808700752265837585842510008542812930368161862631057780946724616394565839830773188657490347044875209428212572966839842183935835357333859708512058330975629677581935202763509149560668294194735366661932072840470219876079103962961328750794615437300912714423973874523078869633244407981559559324943589702245854854811888885064667781220635130695964118037964904913349490843183723380078185710167136880437019758918469614724761159788177787270002599050077093181676027296604672539634336576715002274639101850293130124912737206634697850002175496900313516614103667053975574026380546040457745857597412089112431542136419193210711205819240722923113625330225164807788249036324087030830357903531589189617104663908201904430594148635455156685669138651569667415970912502084940006851158768827813856434125827382077813411362276003065206829189111642149128097323237732814976395145589202231344050193197924914734971216113523425968865778300443185369730683508650206247922454533044235875354965517945591837820287823653924213879090654451121864809213568470721005688636886290498930437885904659048082180812506532935351559243879529147736450339756748914053865740545927178406848410906377689929448611544760597259299916462847000783482095276558641697749424864251595110938576068485775120818258733255236668284120220842724712208858459917103683860049598956972855113827694097337930291294734360381586051268963617908582715593368927210068569845088437435381323776091062219155205894930738643191622201661002494868134568798291013195275582559396226315439305917538859817422928062623006969671662084475729260934476640488053992335923612126013271436296037395981512602151908380885130065748777810055806065185504689588915660727947546209422447836937509361327330184417491627507704416192461731136548795831268376725088197810103461119142007439042771426411354776893991396594961182336774335392104628910886525182558784019037520336746386768830399147343462300425013604485923094884067876979755741605506173310740937784378212618141713311843455642344007577818145543768979594979411532585176222616986159481389209560517025040106562552657636973094253317390141743325342120807487792311664201217790550163036656774420024799560929003362026939054200439935699851427307904632258275302511801359946454878420812347159710349033290238940694884227165654903642428896557310996181642313207867472649425293439432561055193637115180374959604759818513309706823158952776567083553085654929922727838698337054659749609959314490973879922510098850857741491665365382216479132925729634652182411039192687361711075513787046696316696273453536864658520875398603494601115558247989430199101128298010986497166298051833286474393184592111176521848331270901378559296470156470298864339905256731450651536868998409469935952836277878114368335064005377212547172274684726788604190298820399347707337904120005241195563559955421256849556838694175482801511012288464426017784167440272996472973912761212254906233173393374985504328521054751561614280527198703234999058928510728882349661017949641947589480826811875886176757227002277119623681657824172301235829390659880156034994087723621807330775418800992098824887711439731600371283236247050720201854091657110223907044107463126978322959499303241900137012165819774859426271693110521395415026732290667022094947410854196966531190102113496423876185681610461748891093650605131777540547851499916003814068315272767875880813735293248583868385323017410946799692569704472395722403121084563496240580518956129643716714141487272157582470105005251225946940936719126168217401909681707170361091513535203404348476160264826101494769820118898294452465446116768730872801702052303595970557347005270759986455722001786943548709953146475210313134628316749627593042612003639349705099859097773226915827309886572690284433521576546634817050093168782540450263027828700656743126623435051870149353869192997597351574519644208943494389292818076878286145598957658945748104263213021652504387614535253348313378721616617777353539298844458422707818511049070606105950688279234908982124268275487885547765524800845391764719187392870303655537010839115810736130523631591928602388428389461850502414578923607645953557315483429569909462294610916997859479258757241726384041687817712773648429240024183026466289153676836421615484225946167778758742985758216019540690679452166386256569652803554810676189251125189228430608700583227343491579881915427302632669596135446768874586969739381913730828064448884220022907239452344430154579102203866484200117242804204796245864787510038210404985861708692041109537244215766217540845037432600109540707257271096540636714611578108983577299655547829654510682509960534926838119858882375751271095140400866000993382637281416987975233961113004946835190552902295974466095066148398670744392719960259394520906773359970962685097633903259327704332897558788376789137851364730679075385442116710266576585239094473282626714518874165247821396525089638035756268904355989723716202941987623829279666190152630156435139414643710975510672356031923509277863211166376742866643985930734430929542121931941853065895668534796655691975464766693840649018378545702447914296972455952382907940419606293439479958350161167606304731097387550027060195049208348645757587737364855343868966308668015566596775798214012721998954227763895892446978096243867642514359708876976805219064140007734229389374971966453624575724162132383993462235807783292886911007662548706989451705212192617610256161757831784874018018688769379019460986651947580165944030959781472567107147721112700153484682331067244465957330692468563929802074759701075787345684226451840992256192881300524256068207114913832394507622199299290437182244070733331446225819990329140111077071095859893526654768591159835178575101210341775771182366979367435969401736054141472506291674935002742492023659196307117386085113437591856107714896296316285617816342076554059875036678264030915812392722748122984919294463846315244388092640755341313590761331362385577819132893475261371466081894867771001039272501103630526580482457040908484908788687618023352121775335846849210967466264775805299601839673561225693401000979486745994133674979896287582931327107200753631924318160672431997253460166806185866584763118914036765422884138879396658068025648554807925213217332318473242469139921826406046821035090917482614513366156336353223484764603851485232019693619648671954050681243349555299706946112602272190771465205224191904180442536234143505950202117087084867470483394396246409438110813444802249143625632796373043851580669395419388182161260454684306262791217487973507914112894058924363522162903103250810324089263922566659389228525082712514416359297031456728011394891142226135814682433412135747851346088102883351346600572636902614508969453783610766770083238990996461810626970497206280177396696511085221212564533978979452942737666653122229469263172905222108135900043412020183554500731855702589639338975020932052848358219588691950163278972684625106008253237282718796397500353603543182265519592158456561831646629587667068736863454451042702549677108368029706864209190059973387883099588991835134596256089464500010065857783893513335507770744519475304094375889711532759547491860094784438731540078303840869761754868843410425900939705672832471832572627845547695136087656503938468997001103304660489609138076478765586869123843369789844672441981414691577729867831352415386027803035784773517583606381819107305561601102052722453097417072398988006735282966260933501965391988516773992956529087381669677770819128654115988635230055537265444558352945217996545116677569159244563417722876910868984063436314226624612057330113917226515213747978266963243278275358025079698594819854341933868067771280370516440566810462436790640805827839775032897347096633564878851258739739921737233495910488027720704964968277325064901686482586590369607438469548983999591011697193424695302462702991619121040154296786162706664317850220640288022996239975799810151978507412551132803940672735913382041256934414907486262814957573421665286864448548529722681667350349125680300267037824681947763472617732861293045820980617073910473552448750835157083704069723928371569850947928327863990313483872879929523901603459668249733176144658440259203054483896787056173900797930256047895883226696674290924380684229453739173210116781940256338367194308292938757787021534250958424486396981592845732790693812750097513647323024789416642712061020606767805980384090461226665628810653392967231803942978135714103828577916018875179422193594657657233216120169354296597118197675047699184396792629287931046259768550391063040990295956234712764426152219974646990004526653052536928775497710489301054030266908132729508550348713223664030103737747241397153524808155703153450180600489614038606263970711689201008427354140337196121532424164401796437513824910520655963305399129789555090683719104447363278866783011980095712035657476824735138839832832196145733605161971524347208831800949000660479963111636898866739453570419251945407474095982504192777185160437652001028085176925126892243121126777297983984828669562156688079172934291807191290585251578769955741839823866012129402607816457313035920739360179018669005980525829219984620212197908204397267667157474657675116424047128655092449018440983511164817215464818474138341443953430475002182763002915735410530502355256642269260009408179317032507345542303433446696433462573841188539580650136467996625648547711458560245664005793287874673458675304368727406894519648376237272764013243485679783154677005897186574230327576405167318051555831071027327046121792421761730710704116771746707655737898652680112864913182930665071488662961648170009332348512811165505530688567012727490921199064651268056464710677833599928782103538891786830694583775431922553976416691727274394378519381426222918223526018928921835783739544799393366629815470902445314506872788028318268611618220036637261046581418953082801992576278864030565917217787057735392745718244067311180386660316253170331965156196901859072852316164585498235456180394657431639127818197635525630367235158051829509591039471064721971755251520248037283343944015815283730261261388748475150328530491986575410435125834802342013578214007249181245562786370034466057747281097387794219353229376416446030237753441747912267878853121152628087290620479142080091792690885110308458223841718429972028091829701779259075544889898979714304480030368688901506659621782921056955282084567818077395510505762410223700505020794440230320242170857320733382342980237141739145176737679580167107888251689360501874481373927291517323609732480358676537468290451801934895602036717175309624694124774735716067931997299256454973343273210788591434041515047310635039461599895150596994540771916729110654648614405300947800491229859153135059563435726947055842848715198683014651211124334151075378260888005228103036592671429459380402214548217478609412433943773618491573603298207745344337825166488785033379948598758626587277201035730947645269236294514911466113265990095940750613572727396413785646558868572253410073045313351605825326945314269827201014297249766304328891812473112422316773932351255372455544064855221652161314660053859051377769039310438777045579199215493177860238818373843355245100882804126772222507534699069270660439357221998625313208316011152411797014030053871033176593640510719658113835275610936074770972019635437114902958640998894983546986433956965421416775121960528723222801232658767905011899000474974345432042404676292186177643267509431810861166430310454256039069965143161133520702698058241284746608330505737001395957966942763195905677837526456615618956122391349008908673978526984953057092247302843017437374414806287736132599931546310724079108932410656041723336733919605852018217372282508678312056388233301185369100429302387884365462207898055369318010677168949201459270836613852668689102641513967393812308159797961206919089881931425014755065104002148668154417811032113708887533456374221393694782839715636265691730182134869275885662663122628123071026203327184014179434176750855540842505499107725357071906907428105863791037122079318753987382884913997701025496012627183253759495744175809620585237996087227854136641330417844964495637755111372296297184400979541434584756957170077029794440862583684067528477148706965682877860291441153673065962365025361991522364972101976975879746204666723753327969207655960746231440134225497644801900925343887919237151604767856089607559417375659850561816755245223597932024900317841055037945694099269447473963565274134370851313578090125657341049385526858772145620442359021433470560800769268874941311353926962699446034774855733993389693585797401322807121671552558540962863359930987573753046709605791317166793363487577083461873758180697392574120855873137949967100988792509001018743845149730700526686021075114656530548867829954017823524938596798063450485556119559513812544301639783931793670511523307976549943596109251697579153770157808960189957791726286920553716929738329039951751062193885436267946567253121410422313888251413945225058333060519656766227779310820421982530011007533438825704038614386134091810546418144170027517805915237290624103841044684909693374267260960870774947186399385537203543231887528847991391281537282371269020968630164370826176782408377254772103861757604548973880715832621731778824045233127402910133830370539130274963757036465332521356938247590733259148590855899796577887192170803102737194165005869164136084670084295937310454870567343128587806681917258795080542783474749168532636047877734941852216253637973826285751853185181352201825325490562291412336065279728745291436110272092553077808858615729964578350025494738206022440589703679071835658905744114714254380017495657932437568243853315295239968317220133170523063547625591650573307708615905790721782295656677968023868680936944644368700944537137108118522265542205886022810278505544653017479264987619364845330343210101951235067190397407817724274800989542701343334520863600176246405846112359475495457877865028948854848218672651139544635814282115010392343894071324039916241628384418395645207265264660401210196382412274308911207172413591507330636299754182628244489210000437201895884692018765958782865540986562881209600064844749899342323584029648181517658929096010793807610180970471605643593113526589824654912523496401577028093680314950715975010997866453234227153674997060889544129394455815456529790069839910570103449022098042900959799640159523001027995491250875125231337092984597253767028171486207188531360002130065610010756596964174899131823145447907882250578518769530520645184855685176325420703237201125925272443200208040786256332157085910732953126695455351096737084878446624475889712330316176289205401675379427388024494478937067577483630798562892363016510987382771640876005973564093962233118229997376899676276169386241171681683921405465868797222008589776567510882864338401475360188477198908931314106606866300484742132116006112029560673517714028474003825223809307319453736305257241929772290961640328231896480848232213211068246650791482044550688910670955007468497240145691941568639841155700291838932220375473089416045265965173283847836984198874261921706293278721398784118041583602388340655048043505474229023952857594226657531063705615696781605010503131367498073610504811486447183324432421350146428217099905206878808715125760037139680937870061997317421836057236166407861325731983905261039326685380074600124604429203539462255397666125535864738963442576729903088500892278677478201898614265630486780736671590813608306547119651430404975307000368983297896321426939779118101683279661603266956089621645362348457921355646288891995315710619308724500755679200374801449230593957200277756513557110759517102164366257907979253692107653964644906871366346242382974487037786157695787192006575508346833029610265486718945995354521946302099876677252601418142725962575885706424633607467082169782753824936139631907747886721891563687875997024828230137121288355003233393096540031367843009827213135551103518222431026291061242511082373217803080248728191901639009094229626236676101562966182741613948602642083976106661277078463284828978818854488689011729829334122750555417344535664028934418417981034894010286578534055783603742879603724977039236837509722196529657954277523127254462797520851736167501124989520307534859142910217119471782166835783580659534765539461941439136475306501423096635712524214927939692734065172098388185960385190493682360792259665861463689669587161924187480126457903678069563644971124160883287409357023662906980069905939429731058313794527234792537339401742183666607969671577861863647626892130696929347425313567862005525642231243327426631506834621373184047105568706129149541057297710302422092767722987855001730269023071113181828106495696944128930706014752208196328422664001760759930747472062263436795830711999433158914888676629199641501862636241352200312884752027254189901024646018696914676901571620915021213859643942554657382158721730506607409626299933556248197817271608067016883354360167678525600860245961861624366380458691278261171704087369630029437150440334187407154722040473848704620906894551481516308730807681393654661325712742412693734704953503407659393174396156500439459620351099516560941952851509295184846883708613881485747240437108249389199900318220984961062938478963029391044109964261740231495308572780546298999707072388596927312457986628140636534062609743334118580786423422791819433118124167447665216548384462285704891021739955665353217935983083690564858142336501601659355907448046553793480021703267680038363868181209748214888198767209252499875447525356867301590773915489465397397626247583542907550283131935853145363105095216170181392172184598946245805470496792307081348007827430707186165192097868802034838168988222958070684731798499227416855425890926770081747013335689856433832268618051569662343897371755848892451201420748154117061696413990177106116507248267204411270586535454452848749315463938940770289993011006128409085665795297572183703378723656219538858400768900348481514640611884114396052967660199186340033980955816123346838418219640841915862929627308909362204833889942891506034559705704623996500897595727187696183266126977788127376496466750969595590825964239739337724880464353708178380702825916604775056419698500009327633368062924179954712744248931538319292676804295441758250234504904564206564662160080023543991205069601212730257667046299470556658656366675493641924487319579735276873428203854947843828450434334773500449163294017590665772180534371355723858049296258226321114720054477189931122771673048598557237290741670965918878694062944929249690531081934507949988546075793126716635677287469715456525826648913559902657597082498056152123413921471850158765386665049952390735888464183899642710513983846469635197702215653770659191912159263660293118128146138819940174899331503984239935285861609823187022174979824408145090282105428071558483986923395934084146770208125093988109169637982960946060085314149364862847444390539612819915451589495243286329798718988474256816111368171506832872214738690736996241893853921327897955092324913266046267803953110880253329039500306821259679282729403768314533805434646545820093339430253029238784920182264826156092142301111977890139644225292298588144433410629151558424518193285322756161235358062666509026064873214962687322133816725334851635018627451978212565192441342638053697226174909437546534362764831108030742807383891291261730610932498217355595100934039018699057763074143946690130960405591809947206718755321111784350314770102164673422657851967001392760340704679528838884097813815480743487283125465108741793523915459091420697082022204199112700816123139368134228152127462826639488807664256174444034176452912434717960808459146008496536667013794897348345057202689485285599605867520346941774571174406398340968916411693376878761904030853088099455100284047949189635217069039207217085744437803667802718562703570083610315792834125111352689786664707571630100826159205966972029704130818841841961080373818511036084644873817284820048471661071853222850657169042222266748026807250269542822317040088362771582640547358756562203710829281408709748527390654547665912565516698177686677099094250717700477979521999540593945030904825483489758367235174406037614488410778272104768905951647811420112799611854065006157825909908458991496100426809605473560401361704710125444394052843210673111905303997814328609596929897470590043549909102022695726253225993349388928221628796534320260383508074373894863751253426691847990832543982218519997011726358018198985699560874442258879695321458401302398156913459064541092207291742846348858488153144130760351391005480899642514358118322028232948534173815615259540181699724310321336488365869773808788233124911371069225028553130202968551985768098797982258262137659987479307501596803092099719416957162212628717204698679609467922063873320149694316465093648038093429474573923519978663636104014992562095590737078955582152010601867771947059976483053559857856053840722905814155553440192482006820933049096075792570090609482449454695204538025715119276817001788464699348075931883598481003289939710037167782956803800581918167637256593282148637898458195408629023279418482470425674074518916962939298977855914112445764369603335044328129432001292414251357829990847691923097790783433300575341610875998257096630412410678003990710326526091621081094854547895634369703944971281445635379767494800988182593070210770566509711079648560128325896737894746490036734115002822688793175720637600196538223923058483586808334508069932529848997118239813307691576007932262827363739884399098811634131779006063755531248957886174452779364700791053968569054548715574426214746134772072514853375323220049224016944683333925901451557192927376221957125362021806698077300705266537984232437832170022994120317641826336410864260742246450350352309245134197116471239324526864755483755964629544612045254176888749229711049504769245043756392603293281037451537088274444820770332751896682954485924485748109075485298657565699062723873381312067873673400490970684248790850637219125218452984687842886216939762937617146896128187716798936639853639739751212181016412757471839988303223627571946872086592897387930109267770210150969679499222259553084496629241885975566643149316777739352425071445235135985830941818262406798177450635186624475371935662244504612912989258486409341229487913016049517085723702992359941677792803855701958932813822262298115149596566838803607894799796160422113463227857201814292138413982412839656345673678809947967811835487084062879260993138009097649170534552817933300546608652437787234218874577945291377911155034853867161841244610771151341659460025396459498206489337231135170302425091179869217920674313833266967855665123335217321200663272670429715738273599598389737761854410017206975247947726502433889400105717777513469995137633123783303892090919234120730274702055008707201869949137015474923508007864397945334029816148503821797201876737668405832311381436152778051426614645879294704115692236321680547964467656803859185640726217416533987495581461527430434999752612676071449374782610460820535011497542266303580758928642114413405214757364098392964644598307531203290825335179823815153833714883914568082643244593256521025474947142768171464323650561031580795419708625936422384401560697177708873874148953573319894720179695225969447868519774551440100685941760300481361442286350601870950714234297034899527853335215520354168548972926240773957922175426294060690517208154173350384326814380300329119867876734672954324303241328540097630462101890330050789879790816563229230182371128890607577871367898058445850510205307042814902141479614963628047268857319386298515091486591561836799728188085204315270308245003959250640912334169066052696645575090958831352699602068065296426882152236371884311720334584612291823305963734812278395498748469685251885431378318021058494647855004674958559480867240328438500696349847655057747893708452095397755340275747374187060546208826811479521395407923223667941434707329317672747313552920427743604405733438715233548754974349176278058461910071687250780916335257617169652448257162628559803447960789390138920649031342927995032375241756379909045591757053228747422953282586561131359618706222441318457412849314731437789383586963617395977847152399725947017308775935505128404562655476589991646673627573287911458353162572503643290886544585730735140042971263600189956739850536586264210129185826729724702190238928233229562646605842856574517087283708812562229118415316213223056079963682335260253434548313691669281409395502925795000202430607588766040294330915044532915454489532778756611203163790408868429324571121020324167503806834315017696918418435266290936966300517455644787523528941960041413650268005077531713856811680731180820923673924579349574575515800711113095979549166111658476263226707510114311052948822506401551387099975658783243510388206648456279408530181690925967662137447627792436876696958639511614264258028607124348056965463142622635977802107514809812558819218450251310306491657739838116215160707991567020776408643848189893019952215750102581450543070455264738304186652262560380673809434852969814708377875558612439546462397064276211714695580948723032911865798256278329327498791131022028969385552475602632601571551056080749255220459637843389709871469626384931221836249976944266136374314721579223442916110035206508053034946372506137552039320882600027826370947095059925149216344119932693168619071129329841366652611924419516303132874963651746999833493796309942484715854481750241194064502636947050369116794129109935475144987585956031747693879882540820310776851437229451697811142665962539677873213897086147679213601358485760127330554702617458569765303498302852232253700051244190621457261148349668222664007334253738767103727942238317892965344575885394571142823294144176708221706023956438181205584651300914311941872401975745132922753549026173062860572036542076247213698079071257462619878923120725997359050224287549313641670003831782044585376320628311935705096935998935838830649492716547327624687923793777610237736562931980256144778703760190746823606497618269416169079883970953184577292674615683870842407624331112205576022810403637366508340302377762014594504391103507128705141124296666663441847899839761464553998581444566407498402893393824542011540173745194854341078941973924461836510199331450594082551720109344771436400639455426449145071902605652688736655960361327389376942625355585806760032216867224382227783905963573213589937935222132928392521618292584379780592800781744687990665774376321471630376919894312401830984534328972352184925440920183011752273285265116775714282111235886046352841479090917717133093396932309317600896906097426271282514284015734588250054220494930728908684720610530834713707993809399781346596881568965199419322341584015834194325435618808014635723580558113886442079196768096686630727001024277825067900422546405828750991987709270332302272809765715305711843561019611348476231479577402855669843186780151036276328694347387457585899998736743976109164575725273592467969406956102828280729274666511101882190764404727460654791650730754584524476952338799319723788505923192097032780658561616885035856284995084269883493260378440906302475952909149042557227402342733244935053258227200884715787794666965065018080616812775662169206047758815793334933303123175535624928679921746591328043022654941393123318879695491774584271615496455548065161216684583158189234146182802774043795034205923809851924036094239762795411434421061601507110647656441450438037934687651319338884449005426697134623091651908665008122495861626813231216662210878065447637276620260692078766417090176779940844793030716318748836967136639779564921014843743987334472522224702192512418526417805655762758761506593773933721981361831666258443493667518362076769059125623645047036289756469651542742840049854079903126407434221121226093903793098953089981935959817512705268556607854040353553464035063668480758940096298175836952093689900180457385546952892532972501799106858927364515955553501346644630341026544121182288853272301032651844205480150978277983249262150737371078650501828996809037062476812154186680275616580079598465733098620070144327113575900245691067544998948274530161801876169754336321121325641862915392443413433466199344481937095633122729042710446395095208987099283408168779537572259358748393290382258287431342779026628624354055303480575947200969283784479194766065674197628731169237645100617763228633484224446911067272156692872174727303040195006703280698517714660160737539814406177691826983690884732774641857653804862847943636962572855217404938138196532741913288624772781933588953191519903992383341396349097398194737636892479530474589799542064465901565536386855902429851702796953727764622890369738335314522710626459992489039158646377863237166647061235207269544192077898855270814177971554181891769519937531300237634281677560508748983172527975446226742023668406313838020436516421502101792806157719025991204327074656386756336769778791983610577608986585390517241714733710761230246999476252523705293099260081302107844996121981252621435726828745674061538868002007194636919143042188674841741886089752783976384617673187155200824196464941964779346802416140657144663946367821176686019678462252004049110999677540804480373320392851337579832084662714701680862925511416805985056006740676804065878074629514489546708255460947137038209893007542992118244570352002435789753956231212162839802007473454913144070316456788315552446566493909674782440123015063047231889124920467660563134571964320560825588441641594374321919038952449367518473867717080397545874875033120658303652864378507837511694133811343515223619490729905864576416995436060291215903652647554939431787279150175803245281509757878363000240711802475856971343673686406843962740204806021977225405992547718923967342459938922353604241254327074960928767717836374720311771338476157341682797795622501041977453684280558322990521121013392090737268663286707906025167056327825691431361584980947265084065565467499940456109804947119265661394922114007373747572217040586868192681822166261564250441676404509779056742894634740948250714080113831508256634737096738041141744640860857965628832375371108231768502962265576275511979394763604783454648454408958567221169197314256866572766910422742359240085496436476821283199849196885766291602890640637370248871976611089756559062413807931800367632684209609135312274019120097561357222062564381914732545460794856425709475130841409752020123383357583939596933382623184158250771972965816841853169614398452199207901108891593551352955420819364500754131263137815590851551231371643134115164031501811878404173899754243743055050810515243904253840187851267407473252959945694027874524098028174616846602676038186950877801902128229462701734138346809146902203388568577837394068266137469371073393386790861589316774947983705750883728431370511038435047597653123150281200011407973990174735567053690460408079748666927407994410249090360231768771427353932554429946090752179239370019623014621984481161452698454895088565217942047819589760330894975869963050297544778816950425286488272731835922010071635800711356381038323955907113058013718461153881833958102078208177764256429193945073620118587717173524555449029296695737052740593825098690070179220157776361697472279301813654121839819468507612016222561622974645402498992696099272506402660850941849572361198069967889760499674184277854297266881623787318946716778479219180998035786849106569253095027605541964832793447527270158764326594468075504306113585896756177872693862371333057102057839548324663109384754552488785104361324078995743431917074014520152711881510425725740016849420912221830783614439455080231639740135638322271969212718322731032056076131765636593029723472936500282315436433869819399005534400904630094434257875433738301874932570912898934726994307089172779781024455894553872647241132111633077556526144213574037393034377556742067470512741330762340803060388805549293397422138371120110366902655991512865625030635454959958286255061396862368525833796486951457968283908116173877119507991587313018389333576336958975165690252423150216454633312408481443039035408341003121565008101340218565178072013560557382119531758745144301023129269448785288998918733773880502941186033192275513447640853705527356457203102039262833206486202389756716917587473163911694182433455101581244320482443332634959520093852376364266674048845448874901287017426754655685877862031887848256935442555746191977619595709319317630344751250706003186553927652446971264141794519487431966815196329843172770794915449470970652356660423442275182688512007717132449751894864609421774218253336251785506946100921136724372257126068174846286731499576338115025005217309770545737445019906791207569550578214734860166822199885935835660547943612003340100791651316054416808855279105168213010332182694069125154112866478079945677699940647571008452935736787743928166378698435039982961016440994058891641782243009649637046046313556593460582471269114883372254777540387680591953547389888062098021594451338326755939235957809889207229928314433210319788128796840443639796246224523068588862058168708899142710292857457577992746122870290430796654656419051732257271675780957542538477778562578155268675854260461757780589893316246908529968857575795550146765661849718173481103007426448307776362290893807853390589347179223133759075724072918586130651728010797286737958573418586159757034288080128884754409121876963032019829646461025190676393486443780436885741671130738740330570118329515047057814927399949086489704072822104150298847477526725636925090684314551170632366079553209800612823370619364589254035224406353362645745545000468528762807010181049625363794964403059116447285861248155561035919071815280006528662777558748429441673976944884281099035980987678489464155823100657970908947236548768136873954319099186955620206338737193557010711943986680001034737663145117282543881008650182353723916985551177060097220215194890310565108337232837659087738007046702080003410428936529625065929381697446985334708033642115463215636318955198893788793095936784196981953155040529656362799176154001095287229542237619034343859565009167129358204860741699724527152070952836185113767012645370252629917248834006181183990076660692263852597377210548031054309785757860213171266171292325646703275006427402566793723318456115350436239977821846699034338973281338010289432030890070357215010342733555336383387503658435631482323671437998213860708353723322361484290436101522495718041930155068990171060160056534549057547621938360520581231466928664854428016839798408474334478842999558790614141353923330047920479037065287097874540840496976323871831457915262466208641490945372379134429494663263013312764376584917083650236682907632341468810036134832519510347076534005337362217430742579980934870847911808033038424019811833178297970268679424181178630121466872969475569210939649218590472808414399329356273945440425696228325636226031541996562973555676089681612609742429140227066670787828253947829019213800486995670019356361339123264936372501639711284422556316311434800618708293534871460736759602428334773002421229216538079282378339788047421106043328117702401476682957951020189899147490777818797864798616039598186113571379004954364434189764037080342030412909181757432020294912601512833280221733544478451126537004659439981715377742809126827738119208066924419664130691697018980880850022050002429172220213736117999341017158092219104394683282554314998609736650956397045726131623521972726779311668534637922871728658361126533130106673172059698494566072599464331614107533748819973459445091189139465530708119115198644097515100012374516569362671746160552077988948159911248078766128990193754688809113513591143426708695395262480229974110137986339790498600943809668718664805704593746603354767232418748040801902569433563238879781712395767175783524267445857884706826999711235358029204199367732367021604301337491007109690501510414469146358162445074637652748753136379253740042207962052609294937480836835824378550355457656115735216284066166867463651508266972870897554859559895227151065440250022808650970921383789937549563723043975707215499587326644708662003908389577344762069972013438196017850572567182882766844008215068369047500801344356862239862437836612919292507426046726205061808057870594971175136364276080624965560981945174294237798140832233557823011366503997755366999187244512495122334182743286848747567644782076011860002393205169380549805273635507552701902082428134184308774133271357540230570621854788785547916127760101757438540112355265790894588933797664770045135567958205597555781664285297338491513130361497795838401765767449359421197473724435221416787891486468767235602865260272766127579340446348931289088876909504988522142435859034736742102446550031966034702692077506951596467895589146611226609704248825667514624524162319254873114459804954947927419936690663271098896135410522027529675282467840512401212419215452972607361702768342577877160641389910888799122156565678018875989531128004973748896445974639314954977777171837639567150096907203851260836096154957521970742276288308821006205804937819727176856360156919203896660109802072413107977386204413552205270909281337315788677531246854041715333986749646421012459183380417583369285453578490387487227844045440770271276354813745827671447198721841106643144001522022818144238190003610586677109056198931371017358658705826256305352578760404852409815961614236234347091257446622981382834542574956222927608471416230477751751111807804491200471711858158062603812127154872643810287789671707054525387249064904266165305099290266748048142869710041374139857625618370112551670260319459913442472655457574632083341032165550710436617212221259060418532811397376209867055520061077955254462451356475417817669230957915917976610822165347073527183390708519325308923626396771449938076324289859515766836267288978356965973869765181759984343841889058743102040018200319172403175488314141791479873538355027614527587166407211775322390887410746795706774978534640267952178374307462403650634215240122398661823681825869364421283769166956057001580675102562713727778438131733173093955451647159568482785396503207175507236467546270367422858067609238092107949866974841305432461181071631337577402398471369562012279593514566935312058066989180004214609135110067512122027844880926582469651931223347020041537071694337540283305248457785895101345795819736138533188276499369741129151750611994562607841759973027164101424000131215870323940541756953342312641715622426160592091353432425367689824126165292468226014657707524226699411775601018385783859261586262789134461900493605166067280934521816705524895104264047453787630178286624389092045031133447683693598758841898314296386300453316542057840400090330987996397279298179351224820517806723632632797280347846185850467695378987696266265403095632113542043353078552907964394935430361311445857770757856013566689884571600226690228151519706817710644506848592226305146564966036449899427758395178081022654236815759971675056810930059253946550693462111779251239045794240120891707832695728385944882519590487416758841766703371624021065829877359828975327811197006019418044356162171855814035963165229791724881439530829879661270716358006090073045200572158051302321283656772630608749243280930750321002921070170727744055187318722674605263124615696672758602361362228818351475199799557331067757424976076670607036644635402802171243693484659463146158355222674822291596807383645933003837967825199129998041805399180825952040714006822841621331620026708626863661499499725413106704637637157573061166073103265483975759265534240243938877890930592323254383611433530005286190123958229243354801213375768460769918060683559979512694796821339407417336102204064769743895589992342214174482597850075289773483852609480116781360483115515230542241919778696614023949826753829650758824399740853729602418752369564720565616403826224023044848203713939519127874259088267313315166206079106260865382245317859572324033310370272161459737599918273650630953957646833728346404801197342801493300154686667340173774596971600628820527446130294220604871293904867172570231024174937861352169332177167533381528231060495092412820827942632328225557615271987187217956975088419157186970829992946547564638609874842586276162949193950692008403266710840799473866139227873772737077730218439848438344630837177928998542777851234660268359212684831175254292279691178208030385701955310947575506413515944247763929801119140085173062666870938735027162906760412707145258148094667803574801050362134545683099882894842020830524555136471909118675544006379211217329941778881838355424678231544512679701664687731365699608459833217128255893665785202122891337717016052407932572073406300680067414859109018069364330702065107479023283553345268220238330019242573641680161031498083616153136362859073816623534330876088377660382058627486784575351292374140011152874830335176892371515799145897873514056797350704319680415074883249362416788437124227398125881992748290719567011540083113431258032700310613378788141924647796318806005432104423717847926607124671207669193195234556683678467811339784923019086673075961098618197942726595687704587615051231324809404193360465393579685390305692964715714764758510445788776644402395111438960229374453743533993924469922860007207547413536225046986565318027468828249400937036591952443182798807890525257434528869756945466160714708205432375447771083699773201313098529715170804603210017496909440408486478052747271288564310153128468956586325676411876994322240743000679316295725976247479987532831355257367668754233421869766768645719480305715938609280956132651697394497168494810319273998771033642010762980606857866346699113378074397417713729079556591104535091001896947279684687149752084473111561654855090574794313942967043069387975075580324246940077092661893224236475282597846527496247686524306582253734251510219311846592479257160721928669764271861524620878962841143029617970743512875871827063280163486725089951582010862611158219771136872768440973163096281453261105035908999506787079443217449592548735956412003911348728301017788924269605907471517857877606493316727666198534128416183735573659148203141137074648272006442243129941449326295368879116195098901592730956738319476559703256420700206071191339558739709972573780902396048677471416386133279013050683157299152432672958573674250258507326212331406233564258429772372657313908051965764529496277237873883650974768629867793650420006421209618027616624947680848309777021285725277744680713565896747537781350658629745668102932052461339884863292325415591635039754366399109394257886951856122582654117075871404143148003618625928347320258386992938215842848134223556924928384493156133889543916008331618754252103835783612349836361448286658181274424955211422620517255273828722355444506859167655309867783520313128447316594952476017156778291825888455355642126618189014813315733644873307530976103579107469283665584120182150414856694265103740899494188591292514785869231841248838982449943334307194371438855356047408941310480714058675984302715338299636254236593904112972936145120650716819123984764660193325802597931701143149657654906471933110404586854326709259821752573272936415267547785155686968469286703094540535766643113568856016703359871930672489917449061599860841926069775417527090643281917972912903408518042040808106714566524881873537907541675323381179631635086062877294131094831855445685855591459009884844285168583255301913780694590600537439781902639800057718557161843617326285420677869809716722078290513767116225926870388036053900397485476457878265312244465002598639573015845034897858562476425018094218831124880143144298806560772536192955424631059660358712767483354977964421507130783896562742988306846652423505052621961391849981956253760200171200131285689419020086840699190528055123886424251944743228754325933026755267874647008095884178515022498328439876588010745140424454143701585605242289587452256161087810501396798052079751445584921636917890392561894048523888124355789427286426019126570288645446869573896712505736736265735337010590052182439842069396040386327407474545811660992796907105491631506100356855401902295281077727000624130738402977539154997648273923252005112552016299609186935880429099854299889104193342758344540405075585334550740324744935605230059919342504485785246274714584267226371988820118209795777293125982703124125358745703274702813566757314738032454024486166021462682195072429898429588657076719936775300329466910511694326179178840315411495295223657048426952863184172754579657966617061639001837517631073301007940487385845652221530384785652145069078216737782622315595649348941614506637309969643560213609911448844739632450096144990582555274146527285834855646175390359224660549847848164865891910194865270839714078256900855521223966200150246686724221313342118449658519463286199934023551533236780070691369225350142856360937757036417290777812395232731287654775545482747541597904694960402562648050423943490542683892952121424991955921796286748830132712974814126677108751795024761577330422478641431968433789082501752392575919845384853126673645304468676424948850669728435318838707982167129763044667820377987032838159642860952128600081892833492883155248354858769036210569565720577144460887089523696608758475737559493261996608795434637287379587339105664159135295252823380369849905968325831428932454715695058309051538473030431325217589073752454918966754302148023603494478870767318727644374366530715668605959920546168719886151902761412375597566399020540275943932932827100906336839147847544313369977757928999851947683843331805112216718260516764271405586518029420144892319781660138848703086902508273956126181144770800007184573333666645643097755426883299249638148685103700867001676944859853655827826514405718254593339217872040644421853515696751855488075691169057103056033387608276364953108791967365863389564222182180250486926651696967872734906181120953488923327887529294134314299299438779891805423505906705024946066257957913326342702709406642112606881977205970930945702944814338862013899973588755106207226638116241591264721882536120201834079330771900696837502499909027935090804576863272421203099221003100787951378677522784583157133682604954737019805569634791270667316675809491522552865941011981523253598958388473498800356943351651768721180571703692190077609273477764925328439016495899054999695575124448400017411262664621437927827405906933458727808706575621573883230096062706214803146733921059993037266150013462130011246327354421557263917245639958349732118110213293673198233286732510730405621927443936274138338775467021097301849249321769726328059917593485900371088361024328484266554226396792597379315061678336875488722237021769785086349312688940792861224820292637143671503843518082089628488586679085490532416456246584130740791122924181703211442934099258771450659796935535814101600339781445113323909739113223723244919666886094109020379062456360029097176703730133004628359572578068742227296262340513330675112594277758216709975643528864214978495533687336316674580233459987044611105542134729843235793400231938585524633190706391102856170127268909851280149632765982444721211503447458681521095801987483902576283442291450557915198417010381954892097779147410230130433116889832734425482124605876168603682669148781835422836030804648764136760344477537666423116794883214906306813187483250563832540982625346788408690175305401094166602072934054641765830553340570078267276150488116605874649983049849560971105245135529059226909283091124895791647058590989620287293865909580257832114876917431111370845502162392679854755706092837416037511623008959557877478303936009362805290310315610847787083798909693532763344477907683448020545708017801220784472625204539750701717885214907958084051093436651329306717971064130177848798152843116925468764625649093837049882614362922413509808505868272305445267867166523814045633091352988808677451798336186590130587925467613868657505586822305993856903083759189566272338283198234624788333204748556377750386560215669105971601357899445430844458701310699395322462206389462515795128510522421245997748655836586112165093295438615582924889292318804843395819117263363116606204717310785115217431447269593737908369830134266987429889584591032897979294541110668180245584384258737381321352322926666490191954592458640652100225198536644902106859313171926647548506960361291557731979535168293754033088725015599005093243790530274436096375331487957827456183713683527388135643821445967733023234650601968206823838242290051739534742671491312172600769438339241533101172586865992280693164333877894214489948687959181633793900286165842620661335993044929770715512844626125871267601337693759668606540186747072274330540172985190552810175121855095054695475852834273066380747268765932301118737733486566868609997329803151677900974723923607483229661965245130039016580182564782332908670187739489052845605673130522040399913631733039047851862152606978860818751046960021843941764288713844882442178192576206735701448583428186245845862055719645601393058620954117781373405015206752487738835167996914347404042450941711613562282256614715471250903429152088502322861213126457371092416459786357326442636357361674618758626665903399923990638915034990417566491770482746728534257138188315295518043816711571357325471294782805120912918465677245246969871863392187108889098331806473075175956738743097172609007775040704573945678908902619785795124748800727189363142830327978876773150711937231447267849650476279277896686147808360475522422606384580180587592728610047740242095280537809248840424374734641545283163709681054202446519813449958191510227688546279701023848478953225217073305714048226345878951592784489300239492291991142451660860476396550616978770546611965719876605267132117760956881686074280693545222900736675967085688398700095856315572599292042639479662185562590039794484830328630119745087706030505965318972261971873607344492136307786440823141331959607133069255200251248062683284587088775995579567481744624973910543447403872633257846054209109897874423046740257588724119167779128731573693558909027120079719151434771117932608257798501451043141664079020023514672264442275490993699821104668646053802118064380656279259703953057378159929830324446375732486054679443103797240964825394549674313773433984531597823015722629622076721140097685595284575000761494130880877297248717263279258081180545016540895750279729074964860383486260076593329759023006656290765638861101710736057991725757351280427148033423531758314279747490878984221433079013990247795859770930337670902957824325508479691987098699408836915453134528104084849239642764403540539969428594352665329275769802972367561793822429726232324527174875029808132874943429400507014291604902600390734169648930559855742586116823568756301215452927298316898238599757338819671657872511804590771793021443957558756935064005606534204429004317532337951378854532268050711562056786338398878363559541726763646767135079363463927450221790155105888546804064663870223192789013461744447050711455495782960341051085446600724490588630180271675548582977481322372628917645623837828543497191481814564726208566919599468892940610652359823021441380678172768469046868383151055027621857337102742342953835898733414748691494822645702187407293699211056342024462414167731497532287879003751105866115160369208208392611081720952500227711910083918650903038525392489980030239555328222428419991550570895209909580250399389641481199053591230209058781901984558482149522985347545214117489475349091863287450512922901282443037003302739771290032910267237077172333634244570813556654458187655469952541399363308064843033650506826482579407418209234240523331604557762589657315106211314783517415487788013581778292779513620210669177689870753405447363124694116040019912890493958597702305246827195404148081765829039485263242115185851848971263252755948581866283184182183883651616381819032767796118008188516597700249448219525553655568420566869170764873843655787851582499573270562005645144388828356559184643148411464317278067946082004115963397149943132356243597677424908676618198848516503130822264152311238950813081950718704654670588848523981636531029566865765811892465007804111349652187758358403211026338014939123278486162170015159066559516637994738747034999696673769462489213865391411955069134162306428711034268942585613582406858100072781387904868753710781034722207964091252876015037041556165360908479902604218865551124573321582909619351665164187387910710097603215417486338427101252686813827431061088030961784401571494711564518729401470274985445876844644195983711174147753264354540226432436129133018010438573696044791534284483784693805148236049691402059913503755676953314332648057841770821089895077901283807518698956679305207233759233511564045885434945231567330812457570096085806559146157431955628894666275917246419934976832024411904021760282263289872264523819061594363560116118215998109381683463735141718653469311115042121649940432315792826677831676531364658108602564463451505220559531988915647639330260179232378752447407826272245315915211610722633609623162222727070529171954828298602852122587318280497267666144611114675071585052753834766615755767768813767707602674060962050858052286288781798225716391565240489238846311614577351137139363619320073364831635313607469227783470264815149290659229464922186285180853039154688005686195817446151848512042990815462632650562904472924638224127265431628040334178319448113245645709675992731631799467096175923801333218114536776624745603969759422451944636955819205966784237313606691235664564179097727745048135213656802984344355750269157682322914041402041983098423160773851052817914983502078066240268435712525527550657473014647454755074236596657198626344577087245218524346388077786150120375537720389486718092627786903571452869240106561561982482808302014636762251529581138908420532869398301604141641568257981977553060548820335235489582088617062070334693936336832284660072827665118100414036329256506171904945230544134009909632219979834584035653594513006167163165609629561562924488052902120665259634976035834482306601926415938571061318416240508554900709043809763177575012673477937533409544102366564673869133121756289104383908138752294110790542838575556228941647078083394859248472489692797144813844735575302553320960226861411910171124842828186434830855891372187629918263857249307006508940655718489359160172933554535364337018553383682468194548631685331486014362474547162205176122124129169807632841434586362306511537142404113217366286927566454960070770420922048256502446828405935605399724435327022342414878197635044504620059998699135833528028132301017306346244890012707506614217956781240954999268522813600932603409846387287963185113223315638798900631344320312697158932171520346057304547655438852012773272606667440977654727284463306619139258788495769469443204178804770031755574926978071229602038089987351348440186833480937150572854363919097164467091178361253214348705754105799801868217552993578109535284592624821957378919293476269115976266931911019413838009343204112870055352644236989793031883073088420244777718414994658820007093286777721603433783284042786042039736249226641085188261025203315308666684164907386927049806875930682473701240020698026613062952644623179393587385084907210432607934482845776775268103565409076875585035493230108903745047469366236236044450483393164384842737389497510115159645559274742098270587559920587856039106133250675025479513903087351473190473730420317010733106045705627401144807001239600980712494371771324012610275006965994406208254229852838511091233051693942837076570467396861082835647428736211679981279760035798073074044625453130862132226142567898852806664724492246530445193484193518989661578609044127109869767224209189091760777538497918111353504937209919613720944189453185373990796864765162866647309083578742542966105416909338989434620585723558413370782936926030781042420481863978777715973610560372368953892598150814780128085144737919872770293090424258332125670968645456156974560303998238058195535179157728158371604347871107788350065521033914691392475282748769942292147916028789782863432170470869913219036505026027694876105046136649355589360311158327523371385316011295662215867117356664366564924904983312101956103263345784443895305823619662046676980708608584222713485279659428601088989596957527080540600239117501261328040174196214759827549036362504742928623239805116554650637769127948648870458469663704012203661474899156539679812788505423119925079022656661898684648696646414143355802358531175077092049770696993621616085072409311200080460508352617559551568993149092274719327917190648525774488677463972903100413222049688484737024462407033421020330880873395906108644940375859681048448213241657946600978295377092244818646423972336077682083476316713902128980851277117759428841907124788181555527043359719502484623920329174917889708072313722494685580520000783104699834495845177068167214662512562750250942636078214644976932775793070158336845298826780740935279300216162623420609886795550947220866727329607219299957148667005879748799718072475502028373933645107655885577020689452171543951098076974820539028629650366803559349425614851010259251984577636946540987497367197124602516168918024901079694063921275709716351695689258340035118208955974025196091903078701090128327975137903855938091356167549569714584474555026580043074246900961473718321829113151182784270187398803333940010347195636156215019044777216790791045813886682491450984364553289066535636538355200805909362966383896268504400133615793733744194665356934385278164069326887053771443786043563776140099871060507782187621387209450814921250570153435380831435341420118551763531567984445164435325290674252613656467193287013641206296153439085975086657825672937453198007858614091952162712818772626932214611595269885393499861405060711719234952633561834176084807397293320051488930763235668812557446539380243052097014568490598389770698240828798760544120881967551423260789697107997777876367672304566056528319632548987367575390856449349349887760706696498546469801314447370340598089070237165690348645194951533505222156248907851839311887126258807777620028124970765267140804138273274726574437533831802862400686936708724109061916487406177920511023952076770115653480804190408137582161026023005528608167800305947252727004825545713888439123049093083489621509813100947692915554493964218891700717834773877053700690142960629897806433367681653793596449950080182934695739279552881275634652818626716929548177118756277685433662516902851901914532392901521933452090185063981212595665540555884676258081599397321218035414689991421903404948323573492664295042597739316470754996763920300340874938642191333425538976878766866743519506047710541184520591042666167928314010150153869438972758575522913202187258015332984871608085392708738390862547650524213770152530837399668132028326552891532090410627969165490923651231549779010799893886880424479337857806243051408495912407775961407581333607334265405541759440565442202510273039880817445473524141515681368910360409079441473878815661949944295575752103578558548183425473739689249850610314045931138887715321659753541538219688103023769656998686818513692664881217538817430147308990796733858160582868191819818631851817943674830922037690718352939435300800275887607458332718985447273844364824688929648223931832067927987923156496671471516897879485413983449451914664842953812443606191283917318111742936581870419092378677422144466979916065222138985860593204164205284760820903983400905325893133473489202287296592782502886811476682347941931366481243493713850071546153384203715242937182984090527395505432176538160293018961192358459104663639469146942980019787858923848469549251950416433652329989520068992783319006820810423216372576712102614246296946516441573360012845084517943051425989813322189668461979962423393187252449453823808937084881560324954925996963323034415638923476953798219205473122526176958077450287695774737594973968585148193308459717972206974371165955000060739212952750794933895918038609093270822988996254192524333514489401507232410416564409470613132540919009450649444965953346107070635063558585264347373380803968043614463208600145339464812201251896369402227848057577832936853154049850066171218828480733862619383176941460186889611458318378288499479784962870115437954542269251414171533265782042959334754592464607295299883991066679625082826336122469424176467540652912847747922604532823820155188613094181084574381582819883508134273498774688684344895295813101759462685715663642714900955277008863192675082934572762284198927097540216371559947991534817172951497055432424400383366267975463727053313127110158106031728941114142033828125317743816189010067943535903051669021363910854693737725200052628476563737409382934543071108011180069948434415667345603841436102947430332702247497941552769243669146775302153231211707736359168076748003165624419154759481378922944349992522880787516022807978218835805771465667096882420628582251108186432479432949423982999781616696056179351054185935270989571820963985866664774152368964583863358743978428119030258292932605081409586635526152486076400198938687809622164683259412965786915464934796006829781196757375595848390392649973998297205254621134204678821599954212102284846905619810019053969117775341836081820283549954925785674123628737234382549152519826969730870318569221664573356641167129656042734171716439093874447229767908410772595773844739024936762088520525432611842079927525842112595678103979007995139059905105284881741619334940861560731230133785608491978392435746311196687222854128721772697543511081817446935204544917770318030390259204361117241158555614117337692021013934626187557625576579458873437573997775094934931916655100697020916836473806954735360346253124543864958925389543163381870664856416961320074641722421224308704542186948516835691720816417444400369041925409191143693665183892056223225518510546282976838109221248233728792163417528272620023586074554836097138663107056400293339891915259241781983767907768581440926926513131125665277591731580029166010294578406112640008047778766609707838807246673985033674736818262133009737732044532655261830995569420539439487318697920355071581162465497981629636886148906120240104050551482404348214191284913969496850102103335696049984755671996231547684569405554105582863494220998455880474332789522346075002277121283834349635494558997852781496624219460741319192318645212634227848163399386645764934566432497300908719108397611208644327609532232919082889408429509567396844197330542200909022725865111327765886721766369729651540998005212682608139582950492848291195756150633540314975385306799706387153778124892922901122828292915449644560496409950053212038795075117620353273254831417852984590719829671261573380508221980335647464250489731071913728349444500474368813061493455730898239316116237481358157533518095695481019692772383571372147315656604576604550571588064800811787998493554209344097711975175179481862901485899713938077980050697876049615541083036135437581027192963888185010427797157775999657842632636457115914030443400326898635469273810023094565258629290068967381392433053555109483792120497095072859183294873404917265356238354062892179004842591896796919785019991429146330857854031131606791743363053620549725562825794773010866768820811176637646364547663413404200169825423244983402875169501222167246600782195053370445351253527853098745472427934164381716605292368462932086523315583486434570823521677904545471300340629448802695090707220666754842810588334337685292964592402235023568079797741628327640877282110314896805623916435845143386516794091381900413371648657071744988207659681556940779469694926946130379492079553038872897606574113659643606039091878290887108895110081670277925742277353530432913765887784376208593880807761604499715617333008987409944318428240097864131971920897984398276632082845376490146651267138027771298973635864008830914029539026771010724386979824531613643484253543319853597426018858925291251662063551004730072050751388273014017533726353864978259939026022251876891510384206643004450756803835900307006210774388342493159441593632259386746698875283619677276270917550743125392706954951256114665345242312851195636517118728420950901968304206482568091638715474362222051591937732759867676726495874268288192889052297371026166852400598976468071073344619151413943582389151425063955715449546460123547450722431961703685298822595102353406646891625651526803072501970297500013540918469150707722979222453772928455846186071605659834575867759595707983619614734369860290868384357612358701588793311135863109003210836866956149380365543680922968934233642030505548562680337272024148791150999793761963819006108865920921244540771012709013366711225159171000233011962243538917942259124001165624199981908421240483880454823761391040326215994185127800309460198326850491695503040725052957703224554170950561639964944877001617318193183499976692381021867303541550554449652060814955599526928774264772144394870729320170765286295330779475358584360860380255592090467248631847807687795271172378417083034955227837484681614428143295833374995016592088802860231767288614007229857489212665379766747012560471259597303816548715783850834605856737613536286010717903897923030541956121333466202920345624652065071451296287798051828432381020951860439523763696602811172188450561415771636537516868037816661315711413264206815728530017927707480691996052224264709009510895226217879786837865416787372621721956864266807757636930716429386282435600356300043557716735267563479895063764495998249563648682089729107484560102018182321849288553910928727118327132814740708886049648012887114687661542463532611117421466363901783561685782765267467332446612547417025136225727659382579577553379073376268215004907910860044909631904468550374393738832741863041468410138238043873760827574740143604720216514676248072257704789492707234632971460763478853808012124803112347422210685620264670836500157291211663047691320613769870428366563693644898159588326021529161309258639725220073739786162964434765183232475075761687132308820350225134613712856579193839123981334192027206621815053150654490896924480196403793760440045176294523191159520979551656350585391385423111695631802944777786644889452082222428473795650054153521866448959984738872188767264543991537200961609991030568332324736481102720575751582808295359850788502082266473695706995065451934142206742620383894033326372883674091743858508942719679195930368286121866209731337090830674544245639950789908248453229129094121828860387956210962101514358649332446287715305713440748402385486824316192529642516691284552070120682253475282478632606219344258924426527045782385936357944338928639549789502538417860861890914927032919241915006189624474633841824975282513786067928621128846985026854176185967510035774605416316998569141451653549561536102738126821638871597231590029491897775301561610600123465524492142981367086753469119930624681319521049056630804702976978566488382972827461611399875026991856172855803602527060108253680415058813816000961085754125703089724128472191564858332821992686034383891089604648178014209933838300380099358438563391296275953444394839952705243078923082882675677245493829735336445057118577387382893718659461855143882978814455096254435919790932780972379000430548061178385052445978079840148702634684947934625880666218471945228807848102085894970191563809909604126332073417632831657983276476041295945230733305666316620487047100408041657084976205455509560329123283928852090718180688162040481404130735222963007058665713977184632352924063222537421124274326920534498899476262339181141518167775133338387444336827734039077147710938102281425255346643985865934777106602937274085735940158459545878972322331226007197292470005374932105194408219004560495891347963959495287202676509491657907558464071794995135730789056517102393472111413685002575033026018117992938703201234543340613018495531060851686207765510808264827196701306060890243591589680753026876777787883934163552404295202921202309774022489016896306784036464436260178883190327942424981545377228460136985197841101110375073940957719567653110967906291192400201736962140234338254643538382460039712703780036228188754769816669639837533887872358054542474441805219848740813825979958354828876002874868702876526147214933399275505137428868889588575639084707026344157087437080504060517296232583299538946135400724233502555542739308559814744085365318571475828947191561932932054993142133342985851441030374828860960014328664143268100463603802332878910621700180266146735690302088464758819682136525625945454417189382114731270074736308795974805279067721384697323319249851817658096368103431562410557933675847170452423064359445742013006727811962571610544414600483737608913240779022688403735394005983165689276993098671676291037741250412767899674231773951378512116508537002294351219070772627526289939629108387211818090052694536947173565452102259940849734762148086491622351106535171389090145366904945603390474035314819196502930381728841035467094337363930004449207928702402235687376976068687106215101601439259106890289430628936562139043439071211598154141728364918024320679617189342931134602437134989979818040773344449372712668396669693186749873612421617669276957379486942254227355774343648328765457198673451578846358131166700775966072034372185760338467502844517888676595656601684412487036874545567966749020693968933147120224220099632459899917402608435503747712254269596819962497165733168768311700600256768803435098911490253962686506422745487154916822276768504468571644017142201127113361838575531064420086460786256114787209737538781387891673784295999593365884871971045172853321286144554556267087416077566046336205919058806199512432120691281725270784154067535427444771011734716175489223721940287042087635831497009197660869135541405153684550330549598351119202782669908656907866652180207400130067379242936934488894094440625368242407331992517113105659180914636127195999664180000415147122804510299493226084765578730898010395096961393142971048314985670038585467081711860977325675673673256272093080274348633759540111479825659472916313886555670976943785525371244191790074091228852787338774484612834964976683236663008042989785174080322908560234698188250591261991119107262899466285600312022035233652290657110728611378829357896120973258508523724097761253937452090302560010543728871259558592654784810881865782682784356318874463192771741417679530746488547239148230295028832716643313620591884079267811966102245734132517671691835747647082741691135750808805063035413036090198489705870506719056868947976360415291083696660209699042161068098203840186161134089673888590421864342697778745720221735148058147136304531511481901673741233261059166764446092501575069136371812807423201107406242275563637278012443478806506418204137511173479295433230589258144765567973821497972637278617341202279117421394782227111329831684621269514665025048898689807970475963852094921356847338735473395946932180406400070843010043176650997843890474694979662662733645913878509329415249775585001918644351029102046578242609845229480908154634055129390523174562914529916430077091568467088426438894213715418948305228716093894706014528669140642064534171247545172312393874345802890119204150806889682020109140171661102625467208555433622555732835450948502441513826243210452821137241650498951749804566015707603292223201558800049298558009903310920490492550106979640406650916939517656019204098101906525629985638156519951497944395409627710917966424629798298978620433895559308687507513504096048314009334255567991773749042284226709169517106553295161568848743062436893202620532191416330342162242364671196967271181831606445593662104721805652256756453343974537962963705511593394991220936738906113698447484682802327235696591953751463512807569771442377902748193975802338190878254669061017615852117598891716671585152095484032829085886590312418017185195821803057365903869512172538205585408024329602822650422257641293731270312719256510752538652049183746583955755706988886185586977767517778660896623260458448535276900176429043500774687702039574284216799797571496381032855508928740588164593239945990758058742556125895694580280208973274143044336862068997463687225396280285767830963497673427574480552899367216829168351901448372796999221428257660224456275869589330655730861020719560280146458197931871801574360695808765153004727880308640652225014047319311515963674302647885611809795554020158336098544591078267290991219394945980945643991800487962324960176851130413896695595983594188100567820270534167100730227509069377422300228588956873240349878922580841355196432140952080415429056182832108702101867062268381489027726495120895664459603766587046723048074026725684986905515984689538407243783485109147706397497012267730573660394446308794576940067619264390992384286388722736452394781827409326988913344748793687596458854902639781669215662059271495029274299846644321356764627682163118359362329764913756974042825441158765695469322948441926591723543054611461366202185101850961473969240425315516740645724601796002146773054501268647164616735922557247845258480219564012204579929288186219496293599605466993784763732569542557852893765417750472519232117436272029445671221218251828658184362533099146816182232125635820296759835162057217905182193497034010798794825294795724808871085223841901400708796177434986097981502969001729903146717744041112354846612142502163755249794095017058490128751223079444470470576704510846601911119186532849373500352881370740579592769528351315660441830901627199590518345387295888300202178078855722294727048935040166405535392288518650333560911042024960324773245256170256511632154835393828979320432502272158653802503809020339538721057782885003368236581894301559037338017401091844961516704380750380432786369454602370980915789110189415215311829741525788472193327858930307195171233237709989465055917622850179172359440596747171187297526847699207798464466203824464559588936321173055695034432042226100210721146405636810112046382369401921353137929580169877975923945103597753131283759723428187139853565690246714880411396125769768106845444808773694422331849135334561057711071206856509281109936022655984602208293142309968313428480045945890152890046407775534196340519272719047169201733770246874517861326354123212531257306855974071930999398758642846352151194779708747145950022075555122691772884694662690138669920274914707361400051197995148957093888254469280038999304272062758542792085219606233611037633564164884499988220160333367318571672658828616061776606555557199895800788002035004626860393624725117529248686775094331502988117833094081257438708179015010307143848410199857817363649689906519835179082052742895208693741488292350575609444625736766894385774387658878380420873107693262062277239663121934713849695058053987843037631275953744394612994038202688627089156434595076502810921410028723386120977856701157868900726275671390844808176642369759033964655757757805716093742847534516095960041242236165282630227407446940345416220085839926223586102639814321738218428874607519503863589210378949940783622195848875946481718887665448491099062467045715083258543494968763329802859755871104937709861618005139020641227935487931473574551930874262522666688198587379610416087603082888542885357332297256860977265381545321241832005896856496497836157735647870517293985743781473186705950757738927474799761344859093342844818835431706504566777780498789046482398363034419829204803343908511652233191532419363689533228139827734277939909770755581692540212475924481122948909594475450411341401789462568475100390217349635375292693905021194229459547358078174364362131136240042421512946713456316703609023187877435090098367978145391456955042454158618976961815257388049947241360329536873487725090373373358598236004934301048394067167023100094845186985807410307919501847538682188524060087414153503938240033633278360933759254003952836127546899331503512754164398629247468065402944088154895123074100559418941632801217012732187607881968464328842082502680641768215457072081887045819335348132224813435279993286968989651622336310127619673866229124223220165147433657130259843355022608749475712337226135470414725229140573422808703404545118994995508511721779632632246178571584429711475476105923162258699429173778987644617163810912344733432869732467373316578467510648978421187625243977663293324321813398662423380355235383232097146273273962001719531117534571539041130087630225797708564672162540194098799928476529906578875967452580777949559758358790997369057036263976523411934197593555048581458220469908614287828443612329251012988215559602058037353244446344965434121349431505523210964086692572361326608845356415738509544537461938639616268307279209148536323000536280097716668008722122692385924682821688306413184232090828758266033437801457028112049079488366490045583957683418533154720653637751713149398518942772275758574201128074631317816168475232491980859653612372464906039559843632099338606843389515454357217491862179514291141771286544651772430838742228746625292294286516583598820174825050734710442508492306672838310584169585418915550453363645151653819764861410817102778484448875069231256031813864922690658755251808128938367391681494641995487080213556109750174641621361764219575788201734127853509985681308847904525455331101000892548517289941476586991995836490157813104543326428409073533693918246590787481757216411214339095327554431981330068650376715458955590503899700203648776794768783622676907632987202606014714699363669617652884400146852678317249211276433975063664366645382498503233639651064355188630712969473176673445145073251758103150328948312484877643246412065108812509983483324338128943729867641569104691168190295500892858914166411800967379125603368371323244150624619476505039759311815629285653760254043396303874404037153264858428781252020126896390534988716371205576871860675466849789747092331856317915322905589854898962094318810812157081782235469771703905451962238569781487688386044689209456938038487473226779160931396060803655375782402401075401505353812003549287302612399250230459855469840952548091463014400279538388495474328354072600254762087075368659911550843416449293404940347313003982626593052152077643485833638850048662634672465515676982875767805408619933206098260319088479206777017865705419532373272195182975919198350239838987090376882511102583050795005710059235750030121829405449909491434495065747963176871336080111163689875574370711865899946719222246674875861312635081748249964154331342904399847885364339476711369149587803052766254257195284885275633635491641543152671039084613039278446112783510644811686990942847157171016793539490829517665725554570012512001635174402730546348212367906888870166768701585689414366632316276096351266544877609856555031104723813245400570862391625477399036197863474981670519511042895624401708300197869000181245859619807507269965326862536945204782705332571037089895620164708014568150720842288368981267177196584360016468276346970570116509520355784611848654546127971407823634607158089964261082019802939349395335123356557302019060807603428831459212953432257753494598717879502349619350015353212070848146540248316770095118843915577627393643805562452373838755643709827603784295871616471091020676836462797889171248739673296862502084909755676411350799940183785544925922231818650547396450099654593346053091911384321856925059698808925957410080734414973367875180617813910166639127223785788203223630812032611180072886679506643848847651252444284515847276242759566653692305577323915490378463085583114359476835500334072662690196179278872891943634331231948416969570800513643678931726602238566088571791995903745423466720096831905458663117138590376058782460798197661307509761444402417011177005852697085061532081589021311841272418053003450754306421675983300247229914297253509291473620484709394680844084726821028899836261577124344289499213833335743697234617621075997534651931467091316531157102470162953951520872279663003190827566035783111424372762556922086856528936130274201744054794777205781827139225285008836120764752099947770515988792131626566266461895554272557086645405931137916672460191463204895288203535666456346036716516448124928778274979271251799310488416432170355092744514653468280635006006184856581311005431685026085093419068417425693618400457855671574475843077912958977135095255906433109166224141180469987806389356930247023208432096800610440826777793680918906984077172099862414170795600482410525266784753107582378840039578978496855399663654613055386489246089457303382092137709193643429152414755876846666140360162726121396328854061740888353392568255845622504915789852063707092522069734079842559627599945843347442799723569105941195652443412514825352794868023464450619678953300661660616618844775701673797216928340250439049666284647639403223156946593259068077124461756389156248591241873440196908489562945251400265696136287950919979854735002764050752494905475075817272181257738560348227692659837802475814625395192980091581090585117124164349128382226965718445958866032684075802457846439598735733135244528971758334649169593888801087413246277076937801716557935868609006936763316792825724389437377950157959065454162861301550574525915588467301891711576197653631992942242090924129430732511760170008836141406110217808428372629927550453335727138421874839422833636372261553113215751730995049240359069843568922561276316621220872019085739663622535905837623579353599038788317768384853981391071743250281584638608141805285118065343270939848242118775983496403558663298879473028988435174163628321774980015264330384468762021309325460904150239426762569279925052115358971429807931913204948294359295824443313840419069426668709695164716706990812139401253839161239143339107398498725082631309143750798688815385361732167641081609369574933543918508995011858352240154151086528069609515989872844134599286942612409742844634641215080739068806989017790698834527618922178624486121698723407780928713555185121337017699025172660899704635649244797782081651116905269182424165137807932062273196941182443054458239552249926217234769008065911768590409975384648251225592593061476713298514497031916495228614382489123316738630429861934746279790157130812447239709579247259783972446670969053326569214955769447275482313079190090240270656255710601824085507258487114062778214205626097032103600530607676739848604647553653589250399306663571348469302849264612830492071968210396843491298671705783096302657767072016133046982896969954796130205367542310242979565505273900012525147007593855183456405288871116093671006996552321643472144152851167316964320809215318178734661178843328242689042093232591474679886405662867867384280616017288241720923496594738420150424625218576749442412479762390186403620725814338959287695716115886088713548842052394352087356041853034544852280542892966150470642335221247235764818360208395701159882297063973938182755840137483665433931990622473275060056564910796925912449498057193933657885037097100638018701069750622845491757505651924455952473185001358579461300850630677268007733857281403657693922132121549903690511306356397992892975497328961907882888178764171374242338400220559846418918800736113375235337283777062590655235174051090860761463100868374895542252900969591612015189297945991016690347517206332175814679080846485382918167712760877783700948059499112666584215705290201836596980547684524039076137904999321798552162000393413255173736177243944141142366865714172042727587530313449896710212515589638554888861806125000260958874382298150199407104740847274165278077444906858544465407299164000029184511162555968213549645898592082206984648689652192712033125482890674715573140831837447334054936743179373026328475609886596011504218059303483046934412839927321853802644576324223835506968533855119643683803007696225701565228700408735613476337970465717524123324502750446841046027907694005211543300212459311093499737499811685413933961404538781948939788609852315048503922127053412163208552531880048714161476359333137262061413882621082727504982855776210144816493037314583413528485510808614139380790093870106093556939159396733923899442971786095530786030879171276807075239763536292176283336648222748145119708645550292206257781755099021804527501889922435447208313499099193046825146889507382171797113937394029596233277215057713016418712214687089084796025076725069821475787215869182969685798006045153646280902884247748195054418080110306891442745831443517955210389769395910074410047880462733234064408074593605348953724016146662910535816796903203568186732537478831625152633999502682804603928213779314572972912354940128301525288142780923311060081267462345300343317282453570582891101637166696600709492640933587705846485640967354075762843765197642939817415953817768058189454941079944472323053865362279868213773269965321510683952523819397842369187855584534242353090196432723285797217779542212809252805096309564424584030081610613831479889138659387261766472686954536911050202542608759750203682205784324897608810218814869520225426316959887805465389497261876357631243366282872441619850839289541132776626607261629621081256414183976931727384748202462712124380725652549637537785092917965385105336232435521622802145517163242177756716921101517230304766502071630358337423750015531516310190272973920665342954687021916657204718078270273166560939075103039001336425789546518676182505007865275541187489190175397299067938923471569270753285888379562403337901453949475265209857664164813873969257252246795870372923937870611108009560487392013113865382131207765499553447208148756908821980846946882388806286817752056732734985248871029363834738629047760519047366942232155657414138007098171037650355209927570944893621114542679797702805859145673561085710210131964189178489765400577265780913531211629285215564636260986420192133803114047134644345656025178829032595732520891186563147983389347815509398347732090383288936308930077060877041907471078354810640114474690524150712087784907935087378339036107834864495759307563122124056570346867526027352289737656425048649178024222939165648537301998371284413359227215664389834961421549604610568822398742037232600244320999451067680188463076984615510566617467260565551975594977323200213283132194026662305543363712359230035761415750937962505872390653176607598068212969794600840119908253882800335368887911594725879324739745083454094562792935058232584253324883987812753145727355566029555361978098771094035885538993518605326562745679435727331796939504553367609220561778723071115372860208527658438037061329493881083712662515504132108176063394042982190598665347322541383445152629655854134701796707358528950072005459407385895663131425233555866624842042839260073368352282357794577298950491137717323524029839152196772398025923703014195376511867523278988569817708904359110110619339764376700187694893415049401697853090193569851973953779281480809142560635307112717836619930745565071005140366298559995823358280400144449990243484067681395113269057353215065892318359529084721962561950771704369275429345557039331711528010914959016832171699790416834211109760428798164078831089922544742592647915660070777841701636384143896085335291264152613845579511100381855595144149711530528778512727613384957959143397988050028788569819063957920051118806452803653726235217387402479127020470483847609585200812936557702044254961585234701906594383044148088601753591402423700196794200324507761151444819306398480694217162196159758475941336427583622401489606545968389391489218922987635281343598948700788087520698501120926636281933341416942633413578721897693118304569942865512206431711941241697750027639615730078127599326576069260494123671589554803726636514785280666096095306678904137819611843754620890927910591405353162551743671690536861933107608719599145345410680684277488439240404016786166191097335237476712541265224555950696432680548322305797982148393545609583840030049233865460795165049677085105781379012072870660203472302111644372497430439486983414503814256845360802339088558691619905179068390833004089014728169304385684224759544946328368946361530170730470368285223703938766609555486182340021900019706500150788326153584352488247508476377423580557695787055187645579400103707652339709479967170321630673738850206669252926307036583461852982154908813433086791913246016973448641748549188641598498305710112903461283385132850879419572836642095626132323534813473125519050441291521748831435007040927247129947112874576791658413525603652428452515106789014253768968403380305261582731149136271160299642125865236418876465829097053173616313895309097789806922502518223773717843096871545062586606018044266693853813627272039005027064488193910137423270818313103126817126123745457433592015043034777898208277630290677370680672161296727361505095760254046499299311497430653470710491923740588507973499261364542220223272906979068087607197638835216580546988199589753755219299127849089392958619333814377873884454848084980828733844288367489235475613182432878295920667517920521131597218500935876903361822214657930790271280151852258319898272888555890571297367448427483190107937663914327761265246962739730417001571478567015757556493633735488307071999672749909194809518249699257903529526720825554549953588916796538125909686654337949196776305544257504055099607973256362197249874264453235205780740377011759817710734425820163358513476408631535738658914547745714989346662981032179694909697887006068721413785345787090153059644512358578154834071886407948230659115233669364673492749415021173602850356606786969520238701395446758645536593062572501170636888880745917067696601686383901359086816997328369223272592027815861032936919102884386159696638323759497711063984158426801590290408160030563453678258466532694982190599359498682976023941282252575934371643208250471611346663517660862831519433292545639377439542802872413862260480311544917665124833213692740588675792277764572398774764046254656425669585042708334254466929295578159197612077091029783265678710824202718003255015956227780762996719251213218772778744622908502429314527974433089354039297090519541568674290097459744466855882579912411423931475746124927283903070210693547447785874312963610485630692885446022732511310144966276303715599343252647627350841187614059317482883524918581578486989059315325530063707574050014565860258198859666293530989280374770847541558860963843162415577266976537185960324513931900277787965944593136111284731262921775482821866917678492947837374969432903971805811230417348936569331716179054558512841838686286653731392154576998182817544836232186627997913808195861267569744608309430253760110621761999113187282523595478810173440193973626814859467857186618982508193526528038541643237557451637813682525311234248855785069731415634154147310568673319991928788732558484258371845362725481553652357568912243060612271137742395879315088879370972433941956243556383466713381609595477732621043696083861371973729861551262047456827736627740158821445232794836953197321804030074948559294921039092127046497670789598803016440413033525292701449641330279610109989248870943351876368801576628518536153658757531728291655017942741593879505461276044353289320130793860222639208532809141955657862697854745764823441124460252620921696608415439541262238511561405109388705351370302191710769159034143675520714376815989388927708114019114390592900730453486065011458554011589363273354428729946226191341872748639512502659870506927184191210642128956870239346243912627462653117691194610456035309424333356103640471220667535161775203864065891174398181883796040095704438921887970625962708182934370195200253447179062722560277340490254809408354800576785012768928023490555850936725141620125846987531201523520713247244063412796588003990002960450188682431506763184306728121311452172706275778358556353814883974329318889681705596971515945955507744432478408955459580401200342325910540751661388002950369076252087945484736615047023303646044831038867352284251388881235389850647403735053281021473286912475203396852311575292707376531254617877286842044278828505609392461738569636799770552248861391740979574353192004110647387868108420272726657178173077904713827405068967617018464983721975291548974957158741082276690233266674075025902624087720021344395670823598105925959761989870672814145232813303248129491333898543046012326870624981032131936402635128972400963634495736094912555276361837599381600695746336132376885880049610368435392289756935959643669155109176782499541281625893478841814212219303082670423906863419797994980995203075560051753348675787622964704523296719209101981842401791591450047010458220422371639435957169275690949747896628697124113899297715351097350499634670753131422208831660988707866457069368813773313818103989111017858211609984849254111773328348995902993546363391319858042527326256261307006421666103930262047558165623902844968721001640617703587031748041570734081722607234651438510637294243415441440902197086932916578671035874555452992655605282336308249024273557101283415874806908514870819395493721529227468971314175351112064404302556611719340372182223920576870570853280944524867522992473384480919289174007829958004955241103072435290601586972462373271565151432663076390192985400906899153761289649388515970641015576310743760945087193449779058026974720244321735404457503416016663786896315935512883042233247639501962231022308100347117120869529930448098043723269148514212760517362434291126257795608175606834060123180725830573764688157815686258685259780301730233394624692664639919127768370662401795075047817758393426763644003685038216451221047447940245360353463182209569981897001364249022917603686875845436341782763142895730128403525460547833028128772803467381728082881528664391706688319773264585266335959046011876544362243324428654025358465699064447367316628829291331723613853364435073371768574011748142341679400626725289132099656605011565223708759967228448123236188454272706828671197762254368524204249815515542665335375676874914885322123611426384970782000560363229319527604840099429397088460444209231445562686179743667296582660093541176295382256544819597901204379327396244214365983424976222534501880255564346342247705321354064464095799097631712800092682454868738045601852414614822347041860574811862991567996285656363336168850054640580477305256065224378995357316153470359289681443642928327162821656981382513835493775692769855500671423838738085766652651458643722400862336066155133324636672300124201709281684179697367753113421866613537132934199191292618436748387701256782939719880511660599231128202988378555756270286406978455204035199838583268314858198843819122082225423320491808713502613033003927212519632918793389775909652358742764115164821735061212007090376581147265670468251517544875129689985036469211986168562052322086118082755932394155814031827793718065635975164649477848680735278953783599745871045323253134835025635861116671889419574554724795028715153610617299903877343850890937161685259910960938037899838580699531355057982886915226159764920257823240229402139933793915555317350288131845138984609543827389450646160070736867101546090583146025402372144411348706067438018757498591127461069969020632463234015894746730535948567404961660340755053103313056636375129701799277913070150006643216905156891921687580595054818245081700156101375460894655882696394906256695927919615444849553395545119176009362200812803230511595743027572506289278416891350275873112675929107558616765240520455589402736466659476823425024262409140991848362880686538690953491733409436705214149062777722213497114537899682658083145992313454152674758937287096469768173880843573186817593206132496862797694429978538909356659028737274727022673397798456639089092856491068333169800590340745226580442331720185224037172933429325838779163002553685803407155602179702408367282624532040302497333886486546397370981592551353400936985729713858776468711341831778972630768588812179057576616742919528196948369914257174653475783407634608369503829256581056323888044735111164776305571453189855026154155849534901623882577292381308636459725048538612054871540614254395038765314290182084950098822891841534492614698242161647138488885185226231416760440191488062181442336728700223665494291590975079492123916690433942221176116007939218131795432319004919230113735926741182173497297031490414690348553090781687943233246044294195997874213641317721630116414124859585570428996344764813796434873497430448355181510177913058031015654770635858606558548177753031843514209694351550311596639054994148212299101906210338211611094041680181520491193191620673806948816457339565593762758453728258217550520182069809530028231588151892943419683160479718349485710426185443543816785507194719569182895934709145236775824467718478517346761054208704110391625323166182289442954001598964172583243879238925406192711787219935277315944332406839702088283687374175271518536082637470552265037861401272133037083048318969833261020110143097934085357744842851615043187031206899015109177516862677816918950415901378369525327822575918837801999638013721012360152342981331712078974492405286290583757328350419628268379805231550438074603046386601207809341771659110098027170770453057150922844097866002302848470774523321323641761462536526007599498376537018560093992457904372377291135414102410903899710709226760920494469092681493485272571885121658193968555732721449977816957090007529911557815784046973723290659324416065529839730700086916630040875449342363942659081984467851649621416437267637323998472809471469663386301108367230455835962130765797643165615671086797688390232946855623001943239430739445437492748526889260454621675293531627168341910628638686240281126505287486144870441002235554268617524066599457304656183508676818267152354573297951768515419435755678666415869878498681750734549816471130162846239153138566804773830169755909961723109944281146977747295479972202081195690831244090284982993493219951268558373688393997010511643968001410572722871432310029933504725153607914139281245252476991078905921846698273724750192252687625756444552736789700886393422050504450073009184825820061402296386869673072732116079078615106061113510564658202341076563960776000058697765648976578927718152253129145659501009184818675273529343123924007400530347309133970951881303958477994182062365873900503854995388122118937594930210991375430406122505233567925883719421940140026503302683812576242926610323476475141860544048651652598293967155982118163061070556572747662815578889474320455261559212626881850452143954330280331631338144384964057169583032382776512453786380855114647342561511384493859992212276195615874922231488079693605746311099242759114635534532679493464034534536442204149606166128078281792657807043747712691964635350907323297699854318061559354517587815465658141651192163079885427163737561152622754589716862270965884334821547446191439635936070392899361916623804544233747134358515885989798211146697670101962299685977872922797306452911294837700017666959270893032193999213498339494446430576211262899959418545177817179584482309821022464448415797406730608711982441738411844873463627133010833599794734387004346408518814705066637387651274885358726621014764097775492232057117018148850900893673543096970075737666424647164585200162755670450104303762740517845903439309438868739761530903151215244113482091882705943034928195607985202576675661930079554903012674550305821701692983216400517304760557662859166129873095284337050576272844803309464659302363410872546023258562204003875896319968843847118651809010874919357909096770441759493614917109429957218183554432149853511809362364430740587434081170608394164457498473465415452098106465618687054672161822208862905103293870931832377311639774663149843086602892022365370079324087311075636227208532299149586319710525186867663604577501099145785310287321417347527819512232913728681370141277818660636242515156350286206065215687070500686047837960606258534749351683509126735938143868652945170626736073491455999665508434360237292231705323529048069849865585688232256451260739897159055864837907186949300685691515862965682232125130211423417937672297990002187203765405477912057599035960862129842762398877974310751562183648994698414952497951097884087526268936702682189225733303339355870537820025103995622915203723770421287327184257950775488634275009716908735199821467392015337512713322734970859274213310626579031876101735345376811929026321254436283078493202405740530095553384842424689909049745615360174341818052156782812610639254967547122871338376278729915093308462169827412371828961827331762536105057834982100782210384056113019337704076588797448854255771589493885518372482153417343015120923950044041497288474594610555695112556235162395151725057066299715049664629156116024557673462798315376751244553712686833813670436808222104636470312839833200903767973871226570598702584563716917714524181640089881216707397921188502568667333059592774478041758595257958393370036789199001004699943887987037576937169126495578088375087086553412863084099437059284165247141831704402414230470817746367599797633884610960237947045577954344020430566500320983574252747023085154030725702010749636097158098218279780749572910745395108525455604703492432925345855888237408822338768494931629377137951531565638694006907943947154075823916759270139050526437866152870553207537982378863011386483254250017079546278141361294626765343963354926266336108341248795246416689332245199163540819574003952056789433202873386879244111003499066255743337073781197404709448375151894600054300053798363383673353736901994063871124467457956710090726241414585859899094297158235228096691352837782862350277225234661620643925527784980129440460749857486104345984891049585135433174334321691654123352327393997378401527470872088060735880619449466070364872761028123616051050524697875290596014141489956688720334684409148649341188827792199128569742193154470615508939424482976494335460909239981696860012201592220366357507264006471736790522446578534623353437907112161270139464150919717032942488124895644720195940108372239471858889824595771062480573048286649672022144073808605897241646215629357984751929128411680873685741052988708220336433509283732290683282055918306000376118397358196445132526764807800441014392054862636381007118477753831931166150509477346548969035733836850432857108205614153611626983119547024109261386151351071201176387530210245877402661809656391768913675683689342443031260901053906052592016630880004199982030403062536372155678706563403866138055802447403534040123225837423015699087903745750054870611137814691550934125089885209446619121519294664991638971732254301635744142430105654001995109157407655385731514025835281347925858726416242183542457282785298524753948572228632514005447229205386142537742351926902275692241347760021139324471611540105074896181611905526057636755042906784948681662347458700025592455078634273600942177778431745682411175882801699399309029851638051755068606651015712021826648819370907609864735361579765150218993013681059619145643129308517343068944073658113486140136698857520242834927743993926970200519582682183471121395219865301429404635885657535677742214934814541805097463718589280703183659472968155418422140641271925497985401902943847350177725029238468677102795788025658197448160027239016299393443939355859547510395076868646043983401822971316564660602824592765923282916564265673857851519615213652414127856303360124661578511306135768573069368186887270134774232798780270105676352495593337035471047933430203475386307360900040241806960399217841212763265502137786025388164992326589065989293749010520339228976108635819976876233615420274106641120087040891277662366172671930668211136224598974853005528571987178849211782461987397535496348042396517852369409907417551318637896595994536713948218567798151553730099559072122551802881274137456554513125099371933654031172676201746379470256095327945841570860596930173268441008228274493279826834588260445187977346104789373403981091884017437421133588753658188517802808745765829360390109762913704941468210356002812553683406706827221333739780276031721596603102221632995746296971985960520636767702408956971871923144753860494191617124783289297610700422918096789969893519497313905470822467193381978464569847341923842586177002929720934412378096177237501335950963805331993234817910619875154449616083745754125119192348087503708414216094895628333596330028248843034845612170187790665213587810331246942059885236257105138352807906987726809890018206723849522818180544722068342135940351794203457094675957576474434813622199804947374399591430322597235399352668464119482004343164947621238501315677537459701071541350298581736769843427861603586018447259636805623251918854623011080570065575292883137197504938347754218554923532148070938134333676965776215880602062266713545202838348779623329205804997007175864841043383183262361856415074862195597818894021397907311717709819787741196804368972123032312154786552910086049328331724404877151512268037336864849660343498780135628024797949769330307786942720111679279079414183586868732850677536263441220452356809440731022816490165371765250551046241904968218913802160800793603539427029907391101032512139595565818278439909780424930027084572697041196638144515263980629459179291715480419968633018771320599794498981106448641985668195577631811102135561222885235225908357889279865351799112388674978665485087095491155160642445212097822314184304508935724683815239541330859918529210485054297542506535795914510983660314535985840920173669011821203962984570979176587081731703433298164563727720951460282927382588212517128477012637670247660178664451631214750477921112448778991297393661726426136249897128923591724107314512793687197916055484575997831740000134515182677390086179991512831162094907205064420661982399211544307875345751055820009760583584102213317248989125213047818119503336114456289787382572048839341891973854028357893727233213584113411468736876237851512045867816001265995859225221416252653263661739546058045959230812009004110737514706068879132558838398443627572573833772655454762699076826933307651035589403151969714558483780855240808162584188917514582125895072560710669923472131061401672463022160598819647294322662643548757379959878043885669364269816657858235910069091427216894042629962314876798001582233979438391913794886854252423763728347392907413570217888374448217239051139046207654503752864980420427238827341445097344599769488153133879221720715930990069549269427352857690466339793030053641356604189986343326924006335655822049649619714840203613775939450986081038774399458079878181702285907107321515842778517060458148150099157068327451691978689400794620226730115163486832493470498424119668955924459284679755967163439437792246738569620288829045039869109628183176265863600735447407122182774043588880667877030372043445383461027717354768961636645573732894692905819781061880201430702374285281725926835095470837515220601623039659573967693109488620178365137491226272590667699542245812001342393395831561343041643843004532595062738691657596501167633925253972280068980550417231587330896485350499115849625464789688769942385885957273204228425176937071589070128122668235617040413358253294570584148637016634606042103052735455527905062670392084995846470917828259956732353154033185309220769590977685050743913237733991447438216063940935493285016691703840720570766576614089929593614464849033637666215454514680578866388110137937983262482801921615025628540791475785329600612359752451446188754291091934453542420725931670952434012216534357656097196136425737466107935480358998459328781410707910984541305509414262941380718058826452151738910902426485132470554651969590857698551468107609965855259192080806014436960987805399878175611170966555647134566903862323386820546861969768474842625361376122073090983045085727781018845101073091226644964648943487171541628539343467976114559160860749162315920421796778798232434170805884981881384814623848158779663358977061440169290662941517494212800653549082682222095083368967356047912897158718693651410854560385376444089879923904948734753137246826999644458734804549443137552957276286166480203962943173377176259777458918509648732536143442606346158985763372719613953923342851787039626800726344689198197169069653370724608227177095002079688666847689747858430055167686687876444029122818950941596294610046450178121687986345831428702551989852152519834036653605934134351957873421471531490509168682801161400332971960617836292264160017335694430750363572217717053387979792476788036156408883030943177492609029633345479925078254727017143377633682704208683351735806604088883591964328114416259039897192103279589993762217685910937489083569113438098197397302206699702622978043106687226905877405314127359420259207624566663330007144998079832200875138302137398996595089188991271689993351257179084577593982770503872819687248324094655317950259328962127803765373131141880209088656033896528767767505784645415725964644050639409835920452226578793311045223577402632349286248385993777063598520739799374198009352336374456845927123383878026568335405312425394748895219395719310014198639173029492491665772475319891838622004436954999309863441015235192805214724292761277568819989873601424115648347389082145884620684224821964369890562079776392704572666148869363301639507809522097960644967299686400059828784156043665016340866825095465452870593950943344388756096304268331718921276457526964440992655841807558030138994790455168573804354795718376918447596015566331039544971707028753462349919001519121828679946062370467987341297615248665980389744599370960204887619098569826617988312991192802174742944412166284812283722233111192603388970215130762652890484647882992882886599831204401645915880937700166796806070070794057216573415607167686791488735288055861764997028636988768601428017283721085863308170655291825370459269363933215273534590669453432245178235325302794113806191708407627585707562725303557758258868280537230991547766251023855142302779313396828516280222939986931086075205704000683390630330413003975084276371650836124767342544731381423368534460710762202854600533034460490594208448219468325550524248952204163684734042678631895084866387045842911483118732426142954602868834532228923611406683051266815663328693306773376002349124873046634607459080182193490764006651705940504278109644164411030292375088717192280063914832873070603639542133315206079145329531853952675661842778250181572092179601703172125599146027118033316258081172099794980115605951603006438343871091602471117574107655975462531530172401489731049756975607274910532715562198587484464648463464276981033670455970470813063368368832898151678103768825808505525799760444416113767689426917433671093206669609350822423903071732878907665361530682786363206398791331376905881719782162710173329959312237567828759217163128934070025681882206001587858517433253634032750553003224049819644462424904093917799960889642475819942757051204494946328104650885339378200383345890522735124816241714488597041496979314979760176958144874815569012229286785346103328017593645248049504349143038065175619741002544444589167750831165228405034927995292641801698995446352537126756944960441071906404834350479817058699298051276749834451912113192750327692820924238686393753225900841572258500182208007232517521130946000004539063567050394054148668946842886739343958123075840455778198891033343071574785716992043066524554691918512361032333435311423801575219060396374174706134656878384158857090819661041482629297744571300053679105806981867865218595416892913198147913946647954248431126260297745314340089917789952571454113182797158053454508148173173490592819350417053393640080486824376569153458179622692732418580157559447020192155628483918521916608172681168802062238707385797134372534573400877371701046560066768676338591451765549993277588369663250777119768948268315959770904364581200111955342955598585289673310724656268481508676162459538947483978382627495866842272257228185509758512334521387360532338106285507787154014769531427573771862651673529084939790419330383887608316939371882270409654662002411609183467545272401133104667155629141731574091599853088003752615169574891925674260306556994490526046782008217343650255603869862525836625648734401229109515441006337697712564857079629928939193471293059986638478558726301344315222003806848487553230933151302152323369522401283546573310879027113693583471748923505081740056958588058006154534098149916071769226785256333427539605472369891420015346209280658591440229922699215349250969339415702343848314862628907579795585425599528491974600371529024948273983926446195499486109686790411050736320671048207493757102953914185138558293409715538556159528217615591274315631967824955620382075375458190249752543183310363578983050787430387469677342360680172894029518949572171848418440384478782628768508098108280965799337237385571437577850435264931297179121578826743420855080158691805997654173524472729165904302554949205297960966941088359034500152021203715240976354803196726336954311446971460142378648551113807908171737718151382944195975138009688883798951585349460265906870516753121661641250903243806309202123692348050388053304409243472340739043682154471976232995756583625046654258566079377649239226261211097379796620828541945533533276791169061051808217827573760383303326291387328720931621969025337427005691772040951536885440919728518278509775780206457459626019017266178988903819342125380065385171987779044978053812420854674956438761619831324277972321853353445232611648405427189102241814150612302810389087308479243787998481422213551035400496982476498493722343958868778892304428337844261330919235023397587495342499782063593599937934344911591088661808781147043786776145959372221919229317400234385361130188204321347139072395566351710127450186640291339473643746752870510779294375684978368409101933469431404822080650773764136389282916923891225580900651701132982012013089102735310639094649182531708963798289610033963662265404239646723964166050078968253359665483665484875548763438926993801717933017050883551195125039289587489963131735052875126520230594344961576389340626697430737902137030956754405660981548114121026686603481311500715535031844026605649702414483877019426031257038635006930237856586729872727318647283483348025419996709654496782087177958937491744463551935297221973504441388868100170245833418416452454677385782001530914252331311693003059860554706763001075659238633361083523340977983133122220311676457402163228554051962428959654364155753187663657603874654686285170922565859423262283824051598754556030316745977309479666086227588053660623476518861243968872480579755772419466720268067988409984596621665172891510015715390441278234764324424178384354597030031663215674609574314069492867286575937275232557274181653857439220343717803849406430993253849467493112908851217961096642209843863496289000324252541302381971381835660776341218743804220349203997961160513078721135912603548547388892445365999831767489857462322049111349085624859942338929176941037042146656086633008548645233136589861779103274615178454948501657249363527766047923114321048892755337432123517350478727568981021676057503417295621946667499867541319304350484475913078174082673488527542230684577199572392690468133168901637826719948588252067964520126120704538079841038869086209103222045334624328708157796193948674436515214646777667331824124952822624884409503927426621356182490012152609245735626335919189731112524063780457868082947477292804192892745455830301531710571221234576522790727775917156140697093178037422492936224790288823498367813422799827114619652817643073800923675748551618848540834848528199300558313888036148196829080652229376778507789379484136742752432289920212503958044327474230821346784371575202793186705405375432449453434495296545729764255372484852487242326907646791498340200699524701662509853921502133893697708749117058689652044740749352597819510301457660110045486182238663794633680058866468159216398100655997077909871466301916835330439554841048913261550139853962481654216928909674518064514395474977832266344266553233454256879350368429945485388083612889783385228254367170490638808624506313158554319918294682303912694036446658315633263114801060835438689543717181216101089488536102715941405436844608650267356169196049756107205087180378515520023632142463941318532953074129449463678789658604726023271528446083146150832217845359657884054392312406036140770282956206858473332712579047257795279893439095187260857478100435777079392501371856938185018041783085883342240448000015650513848628406158425136433088720517199403381194227471629228379867998026583605516208492259813882364391028491876503657132744952587659589819393507779878514042332024951471142824889949273334188014038926872360447196443958281866981011337964933473038220129387945753455919252810242256132564343663449192000515817816427565173316216009593068714541315971950310946925185419616370353795031797321647438242235135663557421169787611186241021081277866519507126853370424567265063857279620611434532475113726736394402099104197507653160542505586005794961034603342186031171569029759962998465082802911192769442850758566003790455194581685183278743245515613856197850152693698700402676890038372567552365697292435761534566775659721092108792004421342838335298806330067383402949041526295179168437814927463496658032213499915241079951998072694868008114825944714515156463776079708485830033684500176005411260601401112194279352588633863731031276622801540424952505360535100448542098596606460463994457552373736607508426099360111191586012141836162957510712232624360878926479096703316504485492781717793038819964168226598940874125007778149542285429514632588637830931531038043652670017295860300816775083035439170316944502888599556951188523285774682709577742404247491872643168695085915487445672434179780598254942920442949526301217320524665397680262284856319093065923467499981425976925045751440185266883958759114588141167692139991455135195807749342240424465415962613067543231754699340316952252306179450438710231442176755055722386718909114965586008404877693375153181965947596652231812007963296595949619585736037270852385892298828441624696146496188744065714076423535185430469844495535180174000142664687792736926399499385785512525611517058804197699504725469366856102211573130711212164756358501706622950959752896016610515655976116145219299457171399929067089956012190294196150392813958964865823341241406739913043251576824997669447229439056997367374332241162933604205388383087160033756357164524386776103810274867354673946939929148847886427398963201940426264334576553791870482192084849901867903283970296972174250775058583338140843087787306460480173654965012044709745177902733268912898646503324763675629426457185624375105358188704319381736715365619877302560712602209021656333478463478599980059741031371727939155135071825618597699407284290667496619358878473788160552646184333851430265297254064956298204509618409592368200209998430405692658852028915590449147053358482412006278804239216241185077618695121028239437442004524295134981241525016171164844928986751230828352497891145148078334942757962638474827984056582215009253715969674038583144053206403189133978867183106200576668415637729479010782625404132632130902997613921217238771507587187855899499034067472546158856045969773896792851038905721770680487678765211047739390207236356017272516227947840751212510054778455263393045594352033871738847409676595639368097468258978412074511335500288079326665394125859850405958603005706107841249968389136347333147074431055974719639195065700361950993789105493750288856478106234958813399155189601644662014401248241073649206765883205398634046921994213416581531981003188098288708110892371444147537523457685532674102562006067695886334774877586724614918892495972667970813475854933903440237577310416230186613108998142028503359365289512598565794423220491013680097228756895121869373956471917503023091264011726684045717062206072093723392384854367065437848593916148532285772152095004508770431051207377911530985417129227234967721767377960997120528792910634172461446450382871406974761844934706362616584649137314895801577003415798120302424730574592639495692063237478744661134343064676549018040758919879535008485527926724082691289962177618730003783106475051296081998445089936640095571639135538349275577333034833908029016556237599399228827805513158338566067022352594545619063307041060332871047932620892509166330948216744583710445607856724200689358655431449234820819159514316758397373651300898091170282168744255971275342760334453816402387078304802069047113230501805059644948220219535705142936919658724124333730005831660157618649137929821973574468961076000816727101883928990195927996050027242304929469446687167195220280345720482477287776678741836153918738007127468844265463058764460031456078194856570103280209993228484508045108099610050538695198869334353773048891449427199380922687759548693542309902259356725118849458246631693773384145116144851877842076953869620750002530532362036408923998624132669718230095298858070885902887779599399254858951525175563141300949436065215207852782567071929052059705192122153366346587981581736892695393648105051119546649025680013455829839173422770652726573670375335353454560583515323397992698786474116726192040903614866531622052816196837497955142252427818931542597677174261349257460834215147074896795835620086200977334929491996964781926399049493212497459568085625612793408767888163060020227561712620328547418604082315281363592153683288366518231749241809926994048454335668147920340321589248362373253100211129722425399200394233777019511665610140757040945637726063793749030296026828542246301781071311209975578133393775289608624281117589991989901615766484661736677081083632145997328870070549197996035326353961845515499790578114168602104687053504925672138031224234447382460476862220935622834335917388427778588491582608662746143128578642879595631753262078789523874634114557201582808670952341528720120684679660530872659954861141976843898372513273533994368600044445161202943661839110643643871927120579261060346957306038828916585421982148168965501864544646791164436695138862003065435360403849515439974875820117903427842616570756244233770446995356288725696134549035369267323894522201417066583353331059405247108053095504259205143620041703418725187513132696978671005261185346057935360929961835348865757971612193076129513748514482682336857406195483500329611533329963949634397642688686334928731719435841431044735034470152448059644975079946056225784235162723174445568700008841889139729881999193509926994629815974011161290033639235792550232411558739808614784088142055666215665000385356286359557888837730394485069407376317458180082814921779315754708588131543665397431840876314255813412314555464131530307314009567635757717444189866426931175575264089436079676266818557313073464253392795249100397463099430321746631736545657929520320068920758768937768622224754120394572689146369702617523409511136332662951772026401735913064824533677566927013130574267689502815141439106524635478531506425176684671725363630756743668694496216511500956808995854824559859737890132699142506388506426526569994040163163324829125189901165025565010696566233198227898984752607547310088518759279381624076459622986044743058473357311701074455086331793788268859227135312923883154052986165623238023462316772751438569251029855277625336346753902472054542113418493185989757411091598263342694812486734375081232676319581336336587240636955011829607574124202818648581369987603348635961875667709544750008332285726567697523068663126148671874529985846009349114903350510342434022326206966006933944048642627691600428557334604098284766397730486482286682523819195981092774747430773718279333071468086834585466703799241765989803489563556586281994575128075250971026191663366189325179237372432727925549850483276232284911310176893241061273069970352837802478304958769224604883635831613160381229261928057943675421211684099441584720325581695213934313172241685955716096028458204068124229340112547518085722234340168066563395896706230763361308120785256246998101942136930442713545564633532558645125843152602838258286493832163618625764247569592225319807074088182694667586051321537703356762802952747834962134009224239233830394485644700254818718345900928552967338599036955491700910517629949498985793196250074851048906053276872457723837002675271840795216992996915926976153893631174238142070317813010868129925894965281091174408312797241070538894659632569694492784421968836028656660559737591346103681418918522746913089348983495752322788094724014611072449281937114674053436145765801040958115997527657643422328543446575519923257413789375637779088522116999320857008755052330903922400959046097522800973707360019172927320708842694415909361182443620509382603932222144558288820572357156808939724862412164887465789730771979837051159060727836050265355501752612328159639671632979112590217988702062499455443808771201999096268565836427682940795877294161710039135984516731560275027220756767687813968516286996640824880524160802133403319844665219354778399435255444976449925828700582621974580753049705556982772846723872160844381722171706949334614461084388649277522493754207755920910082911930261417011974176321391495597316393967185301735696160253123537502638509360087294916236823488074441136920516063613337928018012601279093261620518573252176055559833694267016291636438820293703204358762408836066978006031534506122197804862492127962844843572530244664341211463094589480217751287691927692523810287409941680054440018257819802183616977535246613680383905032426911632073153694884659867561404823044882008761713142383178917626587711163234457114978362889638158289312890761683119346495763472305189233528581491811813283865253701696006357124675754824127759091936109305076229774426371877908178265776924505802675684158564045104540251890830768620520975321257279085270687355320978492138976611582166454308646665298846336059792056070769192246935388942364088060893481322588291162449618406164111447271942603256119736220821484498954608293653314277191442711250929268409294778212918298210938264295045965981928961985759751230123603853398499708330601510804217115884045248169328599469998952367298851501574003923384463135743295433104273217478208280059332236175824738584564620985903635161193434659814127452750586923663589550971715527806595736432783779382736410178680607904100254523699556537408383913779633977581745308121617321964300227716451615208860488652666999589906252236992383549613934526890539608222897609725029300810454107210221815874017281275023437579705957879857489841962947169293126518155048564298570963075272755229977805698248466918105006884040678700626079248335870038151037429781270014837543137581108057374294495660686338216664670684530850217346464224347192387864792894232258871468606494499866393733535355165246134005996539439724113825008929990962335677007206254899282076478924405870077354214834393769538063854641438945807395843588757483909691046500870892488097513379319226975904564282874616623412209948949368403076915850044401194064702167081580803228383144842303471860803248424175086695753673083540758891605527989315502849716264735467060079831987470914840116022407150372471525901149968389546426826597518358897856070275019760535222939160361010125021715773715037807998605577924565073184664208031116786108613577038556703438816241758574654891104849019853239030490296441969601962566887715409528343443827581080637284440325591290732805017322886575448114176375653099752219442732137570806473097327354028419467408082379022127319453841063460134714357767563155531088529918546397363169860705409324016025375468721047360855649288339365631568028555904191608833311950452034514969382255141856563246994223914401539585651952403519200057741414470893232068387434901098041859338461539533542458095274218145347498013964127392082623859445660606679007393014082752197037484986615133239538084151992192374952999751316438604201089695809674376154877131617941507916006308436982373180169445674356014011265251799643585003466950359323052824876713747629606993079420037152251688047712221937647418726697731696854106842587278331922813573783819153657298566203802232288101176332573383126012807423619785772666823923946953271210008393495488900436360806928616175826519332650681732492513392204896698263927050339047824419215176290166663430439800630839418534303795755248089845385831020778894788835218769271549532667369684910467468143391295947060920038374509082544795626881979661030513748726978237807573160382713180656008698409665068244758659046094333931964642594348496428406633160873331360306805006917957523643398272050711221306997755052480202243621218224400994745366803465094841915915607618624841391116965847487699612880085313855365233295761846888393686588319462973443656578252507071449583658133785932671839580170760597064428961795252941103859758358757612592555597507458269891947434080141893153363017727189570033960284779757586329147940819147675412479591281567732188645596230421085107116780523565396805269845249552671836142328511787456241108883858444421722390435471899779020425150585500797043537399766832356160326452499925465600389937455016818755293290688234855032017175948316843203999964803865464230237786138547137340716046377496357497873331305429826455224917139058255519940538023362706562047357089684644864911643381553430160404813650885350136685942747042110659047535402548121070021089362486417989943910927750135480030745190547687304291748629706630103605644042070647121285996732130914187614522556183575523894773441505435026847713038078594559187610172422287075550626758171071848258225933859949497762558863422597006334209122765971350885083500922320567465270114031791673790691691211673515630869101334117141290423986539594445126163606972358715095864635719880313634254139305430442953037216063112392681429735343980960214037572802573721651936872041796804737651470794035389620786027152651457396440000034641077082241828545433950797408448685807372363599612508413142014669969278597836685612682082462389236821595217557644528598240819836444238004307627294556623000147628975018494973399563719164259013277472838558476469952169794154799757467609644792978674202549394712877870310016249153006714681688191826701068211386825345722086055010920659761166865152183049171541025811416630131164324196567917308682202838403701459250475674476666116569068951035851633169598880709454300778487557610801066215078803313345473667440232774044218822820290629346124912014154289735368570568127900264821700665082528408184820124339488655998707257511133640403969436079183466912096757883797891952547282359565193608609926275828196922549204876555886591840819749209089545275272077456435986827008146711251334109881650177211115408214951169874293034040803048795302210463573628575507636074329210705733659973993275385946232350995658803384637268937224685617589925104431516753263101959654059578157256038014215541034854740347488924759311263618879911866195279646958117731892419770356081206134227146919018138997950751008652512704516292258385309809212575841326839186067525991819255327305710840791091288480261569419669218522269310524550530489723783316354890607093576650561754367461740706623307149594662756299860745682662426191842896120339723319676608512006253811385570880982078646400132403472289756630440375287047850045448415550114911717432624252796865430733834155828453199411325578508087441475039850244287462424815273702762914579549243729873449964342006849605801018631925791739689752905747676376404204805587087081464381588603665119504314944768034268755438541747848906676612636355424274716507559757080835658007238697846270625518303973526307892796039817220670633477119525723175515972085575569837459595713300320788497387719657933360396042198857945145789349671895136694135367271400242188141609853712011791837608409063340680913895557041460152137618718728495176076301000158661238357737133664445180504318425997443924258171854450351967336460636124574814674579131227365186737270386642173611611481768040266678973353176321782290537673786713913976550329069093485039144113702548046366088996113494492249393637779226775731185758472956926908896294452855491766646991354053510489036430795431251459477506393180029901854863069397638076377096588202239813690572790026482599722556343070218972053877444192860996368599502788276575886418698510038701850637811722748491649588035663970248486448685728529676539744471133887972127192432114208552291027648768751387265608235114133729629513049733348158343540690971261488505825754723079895065784049668282127158570872145234980273818056490936455287381839417236847363314729470785561874918060160262251274140472111904308586430748838459622896978943949199332286625964600123472952644427758436306411277117489122867505084056181426474340820242149264956556890111403164966545038607143622556238022541373661976651090205080061650526014462782004277094058453121063151044623531575026478999508529498111330076299322320190630900476828648384969897861612068294700885540052247693970290247087635031820838007512754039806299394124731578526529668882138824908557537938076030994328640753457090083689925005869439355178628851170849636324799849351405645293279135502955974999205217747328573256801173272348588509620168288984555281901184822804742339500502697676644851062714143650400649682590910582976996095134265530275413441976596230280384121530604499957111027600100164187732773056698278800491896597645602527014676107483705020999970361686680767270474341970907735295343782923209817616625299069499832067704624245952683870935233534916357405000436536814837004097647008109292833273431501625323950861705806149190752124128770063040315413720420525302777074466579549446028052407598190660866205597997376387768751022036383602004670359301059224016521462377923230960719523896814513407691247615259640072609199194817698623579498084796199622271453794609182739648366135923558799848938566481499183308547448276445747656828738553336265349999720193936376603908768180977374125673998403543039750548377128102066758084925839973319473494896877683320793959335651269332240260249066101110781785288065849457345931049976494704245844467021581092522928480990355318674804762003134018090670754289659453530696998268878273887427740780507151591403834699715720012352942717403073071476856479631871902539252855229656888044964136279721589567433016802509135125554298157531868307980024074686640732129219586176011150945796569776321537280481015859273336673094805089336346642108912854672965430442229633798363134204207516898111843787991921042123677335777114980831951497025796065471196888862311728744244344933096577803722298825794939037576536286794450272729011274716601950204985380706203393337194714221618121426003735627233029100262678817453953206088553610939563152109404776881190650340026087042357048729801072849948287322039935103556058351363534365677260948768460475916787061794985636956657911903573520772909755989819085528267982535123572988342038108828625418781726632946202752437865342610654730136314826658770728901124294809862849825659633605069066644344983537111616813665835404057066798275475189574375422464474814088404538393473874921462588087794641624525298067194735541333771873748126097721457537744744191685961716802242657811225886392407022428324317595455649743044883245107851111877705787115587212644782076668830180524191356867154239783488951138830673194152348985335691750880684847903251884387231724555564389410451685236295325749504297651001448196882730462524033100943215773171404255040670670400113953432535685500520756011263391159749958129190896236886130315509662876189533647633770280089480482423089805176754116915944195687486715366137558443115013026594301255695788372334563377766288756926885919573799661720527664650219734598582671562234415041276125158572730692758277285993834789210736178539411022133134084751647876704771491221680627003963441544752684493573129491356843938341665563204634849813705461073516488980164146306630325159261410489707206112881210106954268154060612156177122029801801517643376706392972569788396841207188302308381731984234472833691232944117037208698682471067166925577689466105942598844289134058773415793667157042189191618997681805445868701588763522451870360792364100909110070167898630492010196780775174488982290531943516356363661854102910281891822151287287568129752226273426715008949987948125550838382246747729584930564295164057479781616714497333320124374693391038431026466013874108072788384440227138911886180047998329058055018670293399186884295993580590055940792728457343795990263172737809112949579921682613041389719330598653295367516274142364900693696077358745688886097393404007844166008898650159004194453939596447885893427985937767448969408061631414461932124819526185127555623722038827207334535515775584840395427872814414248261743617810567395326597585052957643502958136389117709826654358249444266098870326961300931219400259373911692897494059443693648356519062177016542922420650827308971156386193510647745707285631552752417276789760895928849857923750135403861398748406590722093713225846424104108623033210042384253296092263136018078121052490424268127031833491201001987720205394965985831474959501122848719219550206947020669509220956792623234881110845027884438426717114963666394321982371885398970090408213857670900472117495935918635310723175329210583370490657892620712718222904052747706317052884796557016312704719917418055392630716639015942184662789245548711692341088486999374880480526827288396652645719275873895385325795387096447443296360658998726037832731329289441782053556238171555929329436224179237489710209851250114435285253165869269241796744892238987369644864906657067313012668060453658824788216343525518265997809997107833033237193020983752283921359498845643228449406151088556438164909218972012680761605177849584583514979522390996762106538338068511817957198634153623519590855103411235884936859773343276674529945989792404884242365594782553259863883910631648061035433415931121335119462571756830807446660572147367058094077498463582736443830090941611406948791245915550182259574734644787673051785311565656610730259411648828633829796380180479068741814884102101231619009471809553776446427446734123129417202446233684394608630400719303492431761332013463977317288873141919896315073820939962809653305349756706260359636964425061961125548439725788957867560540810171932558642825985340251080589306078859602992888522832022791978344480969028253282464841008112165809299117470216828688970776618126973224831458517616168077448646094941496202279794191418697898779983955893695365335886679570913185458088020962727768863034525302629041009281810151499248311389762177801705393504850953184274521902431613248703197356777478928126345340219126084239551842453667651150067460107337433749279873816237572414393649833278414472672592862246598883588795075260217365018410496542266362590905599026141193441323689856716848972205632995471284582504283762252491695108854734570265949597692438653277943484048444202853558716329062356008823754684632229549716921204180702649989818656570434434234659858332283689771284096914565349705618136379995442218955633403770112652223709248659692111095950496068766635848062547477160744359998598588876366501618726932480617361879377283664531811523581330641035058894769423555599389782000580268035026369577756307153339604590762000142792797950932729746541680695199151175843470845075570814471977581413625583776126889325906575055467193856226312623545826146729876817824754992565423702871056394189838800515446315201243616069685289555818941464012565226355817550770418688998502623107629557427663032918505364893810092780269997659452813825513984296570051845712604933188237810819266748672299076620132806299773679527543507230824217882738247760161594930251460854166706442756877731643723035527997780441159240060134838533415743211842424829251835675379323497011071686823750232033514737153431148565318174972735628165556517082402406744014593852128208146981572643702128201944648239100193904909948001571118802434948192661722043896438012212134528429829979242711574039074894085633190368574193623067033773455224515987419680691573414878003571846322890713911734245488913821811320787769927320368821756949946999294060126500611202373567571833530789274918198277890350910331442502183221988402801309011014925135190363932513108207023757770068906759872888662224251541404938426899051263820847454695130491542290902638293657671762703974538443658242629115378703499301385804126675958647381907422490005620043887886607423089011013344331551380673738860699476646806227191086247912712293631721640018521888510952503664572763597649294660682949904136958696431342008255030888315149371377791910359765543598621590609674933573856803274869808421756037526428026929162341610088984618379131195190842942032120612725529502115468718412788187929890900710825549041209381438916715140193775107752456642700660539190307164421883486243639223815243833309274955739560945207303451696499769790469407790311657055557915991074090013305516752273397178705493091441159197600789886591083833710484943691110868263055626100732562451815750978934450403109672272162798387225100433408068860498689868333785913910027254486100785945192387171428068306007390063958020053291184127699009767431437146076521801656321219057126811358942941426891235659918678982321531705899897367067839254802297503077996417902467877845004378599913413368206574567495961336081782871340700276089358022198456361084673434263347865412700303963978694156446368891914892035897250426261866643626138478929922639441296909140531756118500079871175416542275697627796004133879138178115701988461199929990703538723752870812337753437418938723830774485618618446859620450456981379345477170458036902257274402865181095102424880233841580541558932114207561009117494926924165659312816719290431754471942772290652183066521692815965881269264494007377201759251800255106203817495311133846487087467795820088573396691365279839369928896156989755829444828539134660026098726415742846136244656781651354741649164793159390287339759254497003584547632318834943628100925843330720734442412729744043251231744502289640085808511230767907123185422773335823001264601263191198522169539582269559681307403414420646961921001466678739513405545263474449569475520133436152091938658104301446974409959085268942156905840884596813296215131662649236522135244436031636118809614271309696579917562956395964680358729977094892269203977621621918057539366897713002116316629544799568729508639275149297570370501618316873095643165063064839135734931342874600545790121930912466072582094670177344875960418744424117439772839398906728183923688400619320639922682735770669951372345610350453346738533449116833176334712933858660603956420971234269121001694364605321380564170093466886524881325411974996600413686430064425190541284318932688552224251738772006632175043190768141766919720649043319586312557069648386061173115703817740868905402497180272065557243359860146109251703385887764868428733081075327646434198848377270509607016293919648125277735385597297003856289132549691922730052133023316437217927095990846206868264760325307206587255780951507908154413349677020581169753220570341644824448179486898130467257938539730218746503283184435371437093678489990303592624753837557372906249229494318111671228438346959240350489599310600998823072123327541051874925909923743830631270844720695931997762471298035784602515709060706025379297984819878843274477454640296594015075115980972292207968430842283074772938942911232773954264383475321537233238188281832850511945296562815945038221647748260850794849724387159798700909165425037024744049349860562795862163476156091746834980189580255470627784054661621177684458976488498635066624506252867099544462330844477915193845532451400649006470233377474181575774764332775936213743128045448278280842190668985730949831475641879543520265647193442993848526138313880616112833633851594191307615238470217252019608634239590387659541936563127686582136285595202923612023828790423826266331277033999461245676016298722745760504226971241259086291872014875410999063055711831164097565597046170210442746298191774071665197576545269713520788196550850672679843121285252305385878938804099358790393613149512332255195662815513600963870590504675750532792370019355127724964676283518880794957811787412924220529601979546603859459488000702024214181418361079085937119371819908871014265585466926789950938685343001884330232475531572529673625309660370799246375675565795785853648967446747183316628783912209923302858695064300423225071836174133164403721577211095003093417599714028304870830487383147930127675541733678432128765626150340688962881262906140470962510322353274786769926507783117488894150950974241145948655858721076938316361579158728693083948471874379520419619822619844054355925889964786863111762245713971633484304781989458574545530211728967005155676050512494804870202000322027862673688187933713419446801601250235491928813771035223515720469677650119930378234335684314848118127188297909800470327217839573916221805479384772867256273485646087067834370164271842661548087104426709246760443686411144880851386806973182601946255859795974392615746003019675049803967444551889520482676796409318915361839901837432043435533955026859449092582320778968957149767887226718199200173848419945945682821682830805519612589949294684617264390647333032843991701078668277830528054399506881611381492637529582733296871702921074820397432696274399728099373544264337204705575384747689304969892077052721707396986014283455300510041981282556576669110288230277241556673999852470097478757561592743152128427270965659478238167251495266017126042277692472350638435092483228327487862953804963312950650605560793384676403959546636538713276912205364642545012027202051464415937302340118786263233183001127859127227157058596791829203505867046924930134941052113430938611055303456927455958936023626560237233165711623094968549150553680357270541273369273036277346998505762660323545404948701006485263661031763876458998551209861964313021441647835435877045367361193234576667470440824240599047801833448712864779931212566148091435446221156713878728155404977323279341192311216142873792291410834706359035082090030078260363348499241734802605699509353439544842847533186618474636464491871778883842812385590517436310689021678242086571230130892847003520928809065812205769661379401192831011825406403677618715262741641496469812453763795222620453995964779156886291818657316403505383515318922124306330309292429297641662827805820637218817131035508499335799046690139009581828085747289866429058293097235955221222246251170703389857722621732433451612737368977730521632436628005950116216415247652987578277200355501410894234211870465126283974637050200405429869726841814160467045929089042018355600180848837793515363307116861932098530031852666359345285780183962930321881855873394197886314175212945102136634264316208874038222642837795462002491222520694852205492596025969539069209564364097565482955949787603853801969851910851158748941648924099711168072626010757579861254743943789798561052998473133655285585485612658333901406956725003082865056122913719393330721930257952220906937733503423108342850913804473357714220350309648245493817878143184405575308158329066441048530603060158924299272814640697065804166990247621591692672982892264057874627486699235245735396249983161465400576341615274050125903456651659627316751106341943364480575784533494436307407751287138580395097881602035449576600192946853697052839353044599446732821544359099095453128719522877709962534822528124560353793614255712296221456099162413506224800501375563418824537010196248164695076271315038109543184427160073302536645958136448933998440792346592372552432176253120386110617150550860258272032274317650001598609379803457165837106858790867518805917093291154972155208790145822573434091306189555911775579264628729644734349331533630589577024220270434166969486377197437045929719857798728532207596859205415521843402275236642454034917238783517197170239811340009081101599961268059780186651228752963372724452526156120531232812577235571643616116002733633475645917187825443148928816944817879928477998571143953092855034098449939220288361797742223001623670693364464377211849199659976587818075963818065339180228848482331453419141948796611596137659030674821449535885487998670590677512786598233907713931595275905095234094790398273714687618763596221563141507889142742914517749633845152744809361455286793980978212784384395409789112341503893850228227814379252808183680646527082291877934495824271531312052507351920550347883792751396155526571145834959934929669519019662441609405856465942238175936976191582138087092269933687007661697448536634898475888716066185775253510308827788405870232031948300274819735643126898279817355771998776701783802112346365227760804922304737061382739448909438383949192737038106758255697294303640544203996801635199397197973097509667442919029442517933630211931010004559278176283116066827618186419076430045923520443778261489223657068463549797626779513631516409351004595206219431069585557672512334664456908135461183361215248634468136902607721971593286858853100283163928757727338321778961543190423788024772021107238249615884973862691632123919579171825439368340188887916884641672790959656292913745744679081081719685881431288531267503609480395737981139896443993734076585768700285074116091850204821765464433758599178971738548037397591844044797613561969562060424317299425576555877800172847977402970233522468828172537779931249817224164817146412458012635520284843503328504367166319676828771992117349418456147793052631624294334748733780337501594785219815318579616182617266215409612345239168846059527847753032816054639432486946322198804440340029898091713937030717299898632167400739278787453807488710925764109426005767116367363506207854617483809613967958758758411629150180541942016474409981187872529149575616612219319338846306655415224489375118379383489438039365041357307573232067752368878081717923025362062009413513102161232974219934521328809450946684877107808531071640088524318825861654219249468740459216579728929342193588217576684120414146867174017453075733819764892730333274061275776765760035822129542774281279599447803143285814723819628185498912635357412847402673237722183702952062529994094059438203145778655489914155274149493198323821143851973823142162254913528800879819163889345286957337333254689095717042508039185094198857603633646833237429842121800315535321262471534841536557355729867776449524564961186741691723204503809749070412455328537648313341393717934261967201164913227573488944744936296384526484863006491831085680315149533966166997293726837608840026602672030116292999684880945926238178394609247280849992497855344161516623473485523546955803860642182245272761072520611492626057930373034302476767550718005116061394704373943721115788719690144359313950850880920040860678390550131503321523460320461274704480673249654152722610503435711748128915589803568479595807462046208470728861038857247616955819878195514119940001907136416191502935531203176812120741131734631196608358612789764111614342928606757316275676902609349268565275688895022573066628218012320795662280051743831143776532307229988707816077810922515580558489227566721035917798168331946620620769647347975042979499170575645551685299691432204086448605267921507521825807007535330485201737289094464762764339414181666425875557628170457840210833864105226575859281714677048906598685955876830444441376402401843312839424240855029893859565399875779281129881383634055237236754802600587486888139995074219785656979191147731711097449961831033356958949149583609672965094245124799665667498884690016791005649244957188108739976418336818863060392399881178390883512775830844235964775255598069938098928265177550099100982041625650058630188718044619800217268153155893633734063472926207299444582529188628190082652717583736115439646231714213785257421951298098542922700125902755568783833184417119900487382796823914593496971609852148898026900680203003436496761851540031605623654016688323353887403246245974525932719588520449926300369522192484816339507114332136440219321447877437221177082356296941034323568156457265988426498463722369234749077406285323762857125603020631995454963902689142610100882981914262055058283973219967308969222519227964106388027955836635074918443686647421756112869726344688751735328456151417389902888720422279128984281387788900353679534591379480785285714115001325231284085782495284208709952217462000515754361496103517157036305084182962700932021112326474118226911651212896214962663517153853656090084427104357175243062433885661345599010865332465963351369489082821583966486132251469217661501808321341892692309499547644955928317159525948183873743138762330867728817906136411610036163696943515552813457821838686613464778825670794145229762052718433746858528697812482822188565539807697236281340964673479752504277801112871918885543919518844587651967024729899898340706489248785645926403405427548168257590697530887064682884802926341168892756157451205528803279033669786687176659153887066641047775425205826522769370007474190576670829882943894111556256011562261365557683375986219544297682686115200608604828614194164519324589830201379152889582321648507980650165004976477994631463927249761659454706782864122086318951261656572923370568537326697321017743420168320750287479618735093978158810451788130373245747165946454399637035937161437402582592324770713971890031526453942070537521556565811895289145592114115821838618460678242797335295948370992164823780212492045761895348291321173629885909512733532924211826591911453993021045019294233688069222916047202189745392171516623660682624377726395687178692191863255096990777219454300081921998968528581216521667373618916249446990303475629279063382774109412920211843623122409951466946299045539932389129506698891114357223255896115573720991059424997539583609060149142644429584654510175918685247954947448176987645437574975238522741353161289846023313277501897249968124339911490430455499377795361438987600349409130134393924137329807094977757515555333401930127264360315677009397512281201128430950337127253316142469936395351393017564424941324693995179539388828208020075208169372879870030785954514931362538432031603755041614328252996952791915355149357784518393545076190092041489196869015291077524089106181460789922717628217028036047599474157578397663571518785726476939348345992709036771281498169497082569063418179631460390697167126530122957898106682202278244744146841845965878468904539074216006252476793345515762569530947652785130499581009977402059882993944018279861942336834601763820574513782208367945104673927114250403349607291225161808012797608673686830408819639759621126853521985034546209465349966954789970201543983548557583373040024134682253116990444835623312302088390079430731300254669155471074929711263656350689829363874631045131010610688018114594308879940017117619891053999826599813802039179086382903711874965474300078312252290581973574946315705557959577571359776200938844486148625011075024012613156329975428114241002282330733740947309093290339985448956394080447782671939071470439054565739212357568735746355308383685323811594479878149866199026014517712037105059296263136528020528729966339014707582212382417075655285990197678734234947215273276214427523643743756992322603494091708717047203617360657469834803712350525544449287300823804386771023761237740604033520896775637839854863594003641474716439392586696471148796879559787195976526470690625533795546297713674679549062225661593891474731759685746772327902181688357478677545985592916421248719558233637482361898093608227552513658292037712219343904227232954983828595569778322794315354502432678007191668068483533866542547886455939516328984848607070760736733029879883208749600966035170117411557292830872737973491637461373939011669287589196712923974261877797945423254502762563953471520572257857760536711621565665444176207565349866743802518246099487288075580055331778897965172659708605585512542703881896986172249228226328123427167675097724172763677423920650137901822399024220189086641493932989731668198933449567976517701961659795984269249982989975214317617188022062374588798230770460739520340353346678624012268153699987246668830165108436286623522920349720933836996137165485188117364735307233404511619605890401284959262785787054299861844380901982656854887581534479964841726037738737348930081189268966263222571200377055775973830923457502693135036308457992371079619755426851091707636776378551442740878180560428331465615692370931871499366156750434725094798855351986993347126665021351324850442959783413624749467641763126128670404550392513798536510487074519149758595586429131014028032285419352651918090488932979642849110282733395755376876119907298245045721466525653744079398545813758173440906696462321578117530307764284299453421622357957100996494394149733868545063030286187638137898905910283289414119499784577693826896151164998579205130463071740306288409532787557480282036302497083447452478826584330165739296804407486351716604080386326793571662229999645090859409164639932839156224555565258247358903890811693329225760651051532756025746693033935053089728859653009074114921740837879716269423685200134717445165374332739424183636738991924607341223962802721964941764770879919993299527590020638013509628074465264290072396893598662434935326671071330165783697417708710828933098539445197753234694647242271916229359089068167505511457143799432698287335520638966405918974632332680915015223333861257914129132275217327416100706571695856215229903731318495870176517603727955700972675484802893977739115272512009826294067730075070556493846947362973799121698474057320378343383243473729983898519110533396915159554400445567303488176943296101150566363840711657692085747148713247504615563256780937518572542528194008798581320853304405925397308821699025674951583982190771439848527344226509408454830808790084165664336615517052746258151302050419469301642543640870721375947311207782384115631819832120633364131987155291584952877302940444353783391428083645643450352839693341241870295104741936035413059092385836933927524796505222515054108142526993237703036102903083408739813894631390949047373064739583060265110260817125375902210322279136251979376371442202256514655211837738102605009540285706575028035113184503083267746472189990108199871599366096476597422182261365284099734398558174389501156602990518455548305224348561010890247705010709128928658579900771022990410035933323649784723834571087785910265293938612407278400139219161441516547583178247518767254552403625736890124044342891659145556399761835244540364632063090182327536759210212144105232837424471819487778754236300122299796038590884910723571732334309261893243425325967020708944224188770308154331256077974003578507713429481485887127837665364132628623264830919339209300323380026336730525003967850224340155516603937210728328849588844346163076801140025793404250384284855693212931045167902249273379485223110790547403959697713460645079885451283051719093730554030664609890974404492182774016786752384818877474768905515816673607959198530494931004691126759730521379534060670715951526614041449749339334664412105808272223166626786219818746890547510869535081523140856229478887061762820314013948897442850887969859325661280207720586906169618632181996146099186577729958075982426666555885080390754445835209597850931245114580825117910208653768001106083795397573855158777788560279697433982426435679471548790040145881281601745130213782826984467609762615612147195874982760877221938333328480910264968091038830944840441272343229646821713826424085389406929259233013520908964360981636001382662233378319097519420172489083313370051692784309718622106431199426771943370111749227690526339394867842153421328711501304828295606216707534888804249634856862471747311670937618977189284107908211502477168846899269572593364181840948944387117359488447986410536616199582140071682150953462710866448942868035270320215665637297818276984735154182786845028960101674667498526802931174681115622599876759849564803140018363054429571985982085780284900737618335572323079902677577869792577446106132534790808401066778832051578870640938111241637084957724871647264379797952553123169667719094974096280800220770650808170049345128461941292360251814094423556781192185295107223392823288127250701933810141240443706917239655052788991546105503715633111731564401490569074126500486763525905678136843883628591207155844930749359273837284423571157660632027123673566760826904419201158883965867028937728405636002503946430230071981726182167446442434375116668918754382467554941744365005087644140160850061565551088496081471627792394429102712047670898165229726408566665490503451139314779304678685649055325018670433980430285848090236754159721127933500885218287678252753822711550320255022900770878544670009129315243420880943741939195945284851531997479793111950534682246497897782036447303597188305994845149754589956522630815743419147403691795997232940123455184362408003522201251751968218524952825631899211469270415531595201463230235054357799236876734694949852396717864718303019561241541519482279461434295316994094462104703580009788336807737524021609680600417139389137586847943483538230993447673956977981528643173500795587723739767597652170052184403628892710051830376615006994232889054235381385764734856508401098065056765399252426969457806004407644849923053610650075631028745953428146196306331182065496416137306469720237760431936073237274066015657580395428131447577474536096475706060275784900351785809528174690357686872853281446657065428752966076581824499503419936457896264461805120939096040077170423718415326027737148879067253136610567755929133424833037377985721397557238936830849167632471694778127685038560916464067986933948408510153090545615176229668014059439097840460112320907740621760373930597368721795452735337168430034822920908392590572952851088805536829106640303868132055518620580760754765744683618883721564198566474606344660868566793594034695949097706648451980095446206542192065756248524976727571969599605035007094277483548114862864347256883718785750098473881180271770818142486514981894234708370999161713296065264200691502424950242993448527285916023792634997058427934874278358799264900984472203710598656707929140828313698768886467450073724563264914583741056988366300345148494454489268464963112266352201650706432896188003828699931549575806678247721811590337389623384700132964583150717232233429725696709084022432190310770321393913888982738417984460550420485944934702285916314769635456956498955425209425655790723580023471886503162916150496648749586274844890861276568008829253367534626413845330243928918410772644095850973183559820360084169753930387874560661893486258005268094774653708079722134328066542833071251920312235772880148283419234035090707634506018189005751817072233630851294269512248738585310444443755346584288557769743581640506042789136957220617136458323084004937241961449609201856513874917222807347368146170551713056722424854250069458423690477395331489232120306471293594446733593567654849144314729836522834290881534386412251489097669763924484824596501051894677881854417073594814750612131504039748786792954856767028669367982345404933241758844042752648009633130898168989232434725792264441813937729449623911304780381561431640984321404662024139791828960559589259094805082806487671421240361760313750406652347732195112567205211412990375239555763512473174832390418360218482416979719087794704242137975343304478362056336219273853176518207674420953940722347079831007336382138392233535481486109610054617580902346760013799018282327273828641179678883111302054956422616092829564730818035590917126880937021700691039058995705046392337205276022014558272117919967008692408506937546650636670185687499268540767451493914373413165092356417562099940162820217630355014192358193145019962385090628068495665521401657758701034447359730066371714950187184286292964989919569531073803071340267761812485304285794689044853359287418228858097520515949670090104141020851956570761485240945888060815242204079761871042573560649363751695059678321544656253011962923475695549192333734899789144786057637900036812312232773428940232147591619454635529679006806711231414405419551201131955436339543620648912627994297639348888983196131606893584924073777862891754737340102862955434588165331517833688195505126260430093917151344528014468885635273308859770747181728293586130557517996634318317641964787147344135043876902221655182354230557570170758023677732454928584151220754657284094538932365009785531734029361335318315946214842004157464987402465084822567648111389711925666582754554142500395969913558004608508834593616342134632447634604608405326663437041722554035028885355840254821429321010651103608989686367067910524459061784024707463430116088132098862938947687880271689941761164940203930521092228628451235409740424525931430342791425426682513075989951914133667711587930633292370322066207527565320089628438873745618087440158317087384524603546841307434443703811905351372135053485242819976795703199280291664904225390661884485714120078241809204938062798558151538591641958280614424339040659578705428184096364048777417983128455860668577766232553010600083162512400733531051526108621295495408388264547006572568669753356428229802153102097198098661471380796182270369468645183532238223925749138597415779256541495242714244911263279505297273192018147772539024616853804827980820255665179708259143122399150305215261413558544324738615362653600562217527864556144231843763279305785314695972583896307009424954519880905640996464511149552361069521572674379264465770984828909112094419943917413457955253527295133743020448746444624089982443925321259595702622248804426976624004571664684957997770442812297571180420426874221921339765054600474191713615041444842476782698420273628259812377104361517057662801946941320305200128326358525028924633195211309203973020042728572988610615814956563350781889244036699832607479503316029961614423155426067904753479440028486599211479458957636099038673676559151948095230522160726267144442749020665788347639527821006249538991573322743943292065783547179308081246360204816413255511025056232381657784508651020067216786237811465008809182676375763166870003848364162295217857106125714948208969998337993914347682785028452883936058701066063930305439854467779013355090488185263407610599076375768435562134466888918242989404446982935568914532368685434796218787401181010371590682219361123536631171157060768527640993689489318995409407109576418942567483163606982903400670981428672527169820658690231963103970522488866162134601749961328356571538962736317921172309991431897941603395922469105719207438164638977996510683872951557429702101645343319416723633917879207083433584691542198732860421778103453632787142001818882681271179841880058087674479286936981203502076994793453867070441631890651559831802047456469553529435145066130059404210018781969820976208000075814580608262785532762733086741060500152715178127780843494950318499707606668375146281281567430456303388351858039531187785174874777211075036007903084847161711488074511262347364185307305613410492931794055284079838460841675745182319184862283488158982017526793856938006588734792328186297082620875105230515275470512850030019547196395387998102619964499562659980687468427594757523153935299124067669516779371543523446333261176861734115308549363715616266239149942661083140327579506140015358335669692114531926679028324080574822025125485012661242408103761280149016698586645696549416386521503675032342839284793133633293213349324049723374008761868352064255543339532070622909783079088069093881141069944128893422784984360287736527093781007703818486960048651869865529508101775932661882304795768544373782454600884233236042990978443437704354383272022296505540637052222639656963483609451636819889832822842264255063055119485461305998108341653492898528588454983638871928073853647103583171446718725069913680417820225085004108704277599523234042478652959578013988738557546004161313209990839771112603090627772617182805528672215453363795423395552204192356213737109011792293285605875412850561806672666231311053962492632802795110434453686260049605729429375519200200600594326934112301577836368791408000195513921893582379824846676061783034735369022002762876012811782738478185273512140228421231885443774881892533595256010878214415829280934027550541433496952538871620803752176857564988071812816375421095886353839079668764190100019212157403341544259936457075045857605381510264497420035491130860440775557951799566841584067644353491668695396078081092976047188375133026809288616270764053299659476463765695959683577333086931700750723393612521508160481409608513201046659223258107886134882248284386826828490399591287312075094951080380333945218171794194437259801291422637767951897795195249130296377956818934170689249763065560631968239896624393080934337589257791299421039338134645552189011246509075688503850402363412164090472010872714966785404261883415229555699521572637237710064837531325840783914731141207398600564223959004010704531095620683333939123415481679561709814422957050916526870787176822144455565062962360785122768719656822320037508827573880783611012368406759935024528251894209998621414411701735377748960586622791285466332158484666873156370636727458435013902699648713057177968423598601477941339670802409135070163128840333370085448253519545927179539097501289723627664321247252954560448149122889742630438149288404488727668000365134441329130286864771445872681119475682060064741173305135244955493989478660773463118633047808469948521421105106560513745200263758351894904342473459890992568885758205478495426915201456483856890467915095521557894820558002351516609140419709586320650707599896505743708764976157050348270359387036719721847666674714835957911421195322000651628594173460701352251264406506277518580301726954641403532382660159614228659107862679945551629081408301945419448523653646971390866615224429111658854066236750331889779284426550511439171554549988153840432173264986541388117239930510963462535623109178481986008020605295454256250014394006516014366105123245848566358771546186359971642034706238442253871785921828208057842828730597441708810838613728589005005260797311588883129140435652674186302951043569520626119580654781118054774478480103690841972607028944018826530012258335607887766609122342135918737312527581311537112522892581357987091569836907176748205771646648703971015562181332024714852246099476032652067778836798326512342993618019584548351820719994332897221388791242713792142098410904515528030290530621707191088835119051538149761134034217536210273420106858680930891429229764416480568548555398013782760858406774098322096955303106821705215125603912684343374175612398526984631706117684745311428099211397373839752391311759236867687193607486094208071920770178317039280647809532067538774464372400756271251905833617187409053130930620295267583139523630702378349742494281473439355849825561786182706380583649292600065515799245493565730196102453443980370269795452941123629826397886871779603879216727348904418572430408096834727038433121185841792987661627896441550561315363438180512926844445428164610090934392507519529809465088266492460742902034163276957858236257411274632245687750012427181210573613458206073229516063096344550942822031916572125856968965831845144770808695780369391251830382125855288104295199650365972025422736208504423736530446382515867440182045465621340241741684054697428699179991061927940598640604862688846461041521780818795068333357248461603300934487597196319531326860871171195134338208369117871121979011436077848506065479292536940490603710993154990134794334985237541579980708513813471386425467748608327183619972688193939419169921937060848998172945631713222700343780875586334147132663363654615303573543242118650992842642103012717657258699129461258162661943914653580936120912001697170048309133804111368349263830786486730973401964871032269741781309472246787585608667781551609758173237791089488480115273400029793546404882495417164441788768990830143750681692648526000425051826220610020969184407689147733965638165548627481325380639998021385649366698255824453497453367400086381169392767253139938055374535880088800212117798210766382329976865782065885792909015396638125119915444998153985441988937636346565897105187094151360698888443065048473018670326523023280691223688537544973978615999481889867374102990538006517094903470818183128615869726897028830297945457025075127973201863962782240957829121244713019403833376310808331217294151636672214871834281867724907132603086040802579247369210494050270830381452102043067153223628071438728451171879167647696893331287134802612979224445918506540011950027738660734569352874001040311178607881989902663417006201945865641860991282113280009644307374186963793242282660510584432058287788595466272299116957186236118713548471047768069531459692621050345389010077098132881073276164676192054431329861850122169430661147198219684393415367387172662421695319963211684877105814475644125011245276810409817221691466341191325183423847966847887012541935984746451076928116813306512352639212525024018929016549600675011936259959912992444450569902012668602714628042598317063921088892573795000201610312791407712115620034118688875065201891677276150361822435854569740541567479710338169657375450479431628147694967273645038176325434952964081536662289148696521687156374723771780620038979456696615967534718949041190947856151143107429053435877348643917452929607624818875923143468874944106331153778961758597868734759999535923291188318150717337371173340346600542287561721951035168699441035727427677629469399748364794044636815626769356598827268493290429941768275012696596541573328041482446710518179454572179497786880115766712469323605314741219354414095865237292077694386532593468462236291159152188591791332691557594360622141973167527230803150200784833614480925484888398308504170245526260111429645563280414555847698150388705774960078771889151458644099743998661824293992843326911891446583928916653199128651766425566294567875776372189907862047006477905076682476084205791019602378526134629218781914028176005633930702164591151579108322766301667940575112360984678294001313555351302452853806789622976353821205349574877804366450197067446287296531648320399324399877582001225399473763992968388132161003416080814603269288669806585222202422606466111170774519904532338119143214930583195750886438715279038344221800111130111640253111456132723232661889820079884424143400565551240583780765530466342797905269161596004316644922259579338101288060086222274495745209244603446502126320584365139135647151969519609166927478776714804060368649192048948803912672372922233777519278614445367045385122197930363756463468949919615048100596560827203057113310094814334669666144568265097423282251256835913592600124559456902200184363643663869878506098788981637787186237482869079011006642444438717397222836819230473594851158107758873108729080204627104886607015287221678629463884400795515132053015612223146630772907784607489919473495872038845360634695962552579168403076412622219006007523033157367088071056166621415301311050489836857995427792823951466301844080716328376143019388769625148911175871979146210738929522019425833847736139148022305839286076169816534070928816225700030306801316138277056083753220647159307039547228662397893998210386218456734281474677626025059197031385210101086698273041746886400787098806143313372734971204725655788357241088469715565409487545387718647755767416997803158045999733718319746449407932309446794293154886101593473489698945931992098001390015088889918375276667771554966652290756704173495805333688546959273123685740314793375252329735831870053374786854641791033512489932018400542709710792636293328040185718229732928851807056948105471737125660833865195988636644618578012907444946912097663594492884813319084669920973249706520663029350694427691199318811839669125426120072406895513598811288694183918815979921539984620279812454065417792999697760490933051223546916755068656530557743665230562743659213647666937632896985661704565807613541937864107986055921245019370393271589655966438467095026868289838940324427818693442715936253991291101507602879512172826783465598740635014220605864828830403751034611318148998766142888684641307515949466399902787497202393560691868141981840193692489433004892755424962392064793181684106438169248666786124700268496966810000709995072647352293888303789090746060068882060056385049284051091979036928255033931578871252364383277574450483511185605975332196710032325228980708259124210931024299114019935971397945502349622644052758494833476930018308137243095616565152629768806685888232795825496482748223272806167368183697848970894043122981777940821037169172150367721828321593293659396727977291812038705540458709188142250493999240315458780393430134536592238053786444426552953660960179077178102838607989817634536085679238575001542447098090015980397286352123205900954815322010174315529627834537221587630172403078761185622927248343462551282692321971313414340717361325614090293577675695389020579936421910385768927320330136665368236358755722817119663517578899829174824595773182479494170891895036542626434510156351698533800326367534811477061987819520448267155534323156799322218548981666149948462305576086154058109245336760246909830220730284877010704919744040464307723929439331457388546438590118539434545802451517948566190326427161220319907659816737181884665805379391374286091228938715352341014131423311282444717710110482377309178030755988637535903277777416736744778716189076908804155240179877356202254686876018498878293781489299849143294496688870304082985548222124156771905268975250946269685013712795462032043431923664886736799894850405496516398993750801264915931771255506317705715654464723894540120580133686035790846714295345531606517176108513780927549333947696268968439242234001696261208085545905470337540648854725127159711006867369484726234930765121087636131549027325894386634240979114538607287266567507076008564637043176129544388536151802464957057252251088670706587934969535857705746141238379397066128184115571620845214692723096296634282776503835560838800383502335572678623753584717066532322834513832646342179909291312884829601735202490017910037714260701877689650094365516972621412807043319260236792162027908259035362091226530894192735390746394957276945190588495106782460106215285259563841790451869670044752412949181554312674930440829967155542120618793055299293429768599492840806929358790062296064483941873088472936392184080450237656992586095461705402408016301201102532754361327460764986505673289217578520794487670026790261660824022798301408610310952773189161859348611029564091300085252246305189672753442463354600044808851407178803697361216914141127626873719956565480448599656467211808491024087931741080347252120830491626108553874359024239369077591758210435684937588832532961023517995101465093023962212104583578432639619776233545447761928418262173914923919286328351830171287491187603048567385291643322009523710287103908386086715496227307213094716286417417247761876774156559909990278856796124726198771182185330910154707279756822524991026622860573677428850019496893527705023162471017445910281220463877792031020365723321070246228036114280869125782426352161837146653856250131044056578890253168123244735893733670729363876676044194770555855986062586259559831921809933938652828187195674775143724636612664943007016199207536548675142741236656690339376184354635963551635844062662951274950732708880717921670589092982561043436116247918787806783843057860994643678292350594623495949974780163816329637490554233479557899352306432658585960906160588834804777742053620439036549131407822863616737993528524614515832009200225390932485862400646314887863144915900705742363001127472792103295498090326519575867910958527963775393519490897542125936444983318218687215339879796279309683995826637566821150629274224008560069166345169923922139645219147705622812553927542318082071540812277454374184998129360903398999328598085883148274979918739340039036553097394157988311933628402231774965065955162111104487743497651789429929932327305214815719249369825097428964910986003252470595292480091213489272974438373812305567136727899570164349228427188625706941260862206293011585340856992682599902747727927311565608507974261975584177410600135477994533014780908918181506520804930020715894817360379772604959431892239621736565007516358990043656776752537789671039649494544608273195866636832382665931605650553844360389299490933205814372331164060568970262470132427072927331788782063093091482829871272872905647890541445231010746815860722992941657983398579808009480641868393188501615631381788022913195946986097752722103577706452924557236490906803268797761705369821721561456848551359091438860965954931044288669436989222360920565710683493277020659494944506989640431261116336213943745191935587541152177338729599857670994038159653245846847785212080599727486502913214916209039045528102200532345360679461063088896817795864793469375419740955776586193357878204595070835337927227209475158736951036102165346199990345633234384543678933497241347379886721068550766203681257804349034705696193882057455480170296323735206803767648999062383857816930598339057688030544452602752450483579614139702527699640458143407635577181136220041275863344904583108875071410963522654157173044357534688269281338908815321239209519360536876471782980727261169336388232386688197198029849182591588111554126145231834136330296421510780492168356357041801010710064278694657424498184148067328637763271235970783946508929006596391128986543457147957416616805392635413370415722721365059842820620575586456079771953358330348598203258925761600635134646915918733679687122214599018915795970132326599936220042460438640736399768647095772917228869645488899252594512152392479070746054168241821254779072526360346216715571014578039316788048028000506017175789860853470368512116516478556709393167549868906301852742709442449681330934323329413209981702205042829958655944068160778802468240935681881908805170969561384838842472706877544350918183450108674244186984654233383028987344725687256314060933033358152893657468141836104293953848345309938403950430191802279872344014555730288428084136682202068669172498457624571586524312049946239818399121620977235756076060134087745560028791687024473233649242608922928918048279515177969162761783819345835891182407821292837674551212290463760105837747261345955028064430772956740335379326545965718347498431935713620837098339447186627645892994545709381247160996343253545333217443714958798826217278439451279349315426179799701767576809866831500184867875739517424734380845732745011220968095450273587428812621882977587892013142344827231391098686634851092129377100581050073888799638385279442515443152961344937911442615845461246916434986304726071925277078154310629305107669449859279430052535981693889508031354516609096307056780159885276529704664932940012339387085879550629846597784728061103013694840722648626353979011859186509569125957285687001910187862271799351882175267530278440565268112019025926006244859570650800495044072512082253372820457694472886493317511768632634409397051775032672853168414495398289522405948823072253636653703331519428176005598174926180778778748618766292540116486698757533638583691890560438462942529946231272695034172433158970427217998487750282959274100121104328858444729506668262843008132860719603401731953020005346122333099321291005792804198748194126226854588296480496507483441997897576987825088125252153991682721433298680824723959495487696272328474501406384956134212566369756106682631950890599895820144032920998621762033661423634193649136920954130799420465728148770088828255697520924018113189584410359451618552080205187167045883418299872153460081428777214827172275849009509158462413855718223793963685064717740331965483923707865928058023034803462167151761134702388066426256930729460028696402436273798483652763810971655300750529709252684187976264599537859510733359864758444127040742399097239056523212103663633875651389361337248220125010006296327787236664769516370456562029340148689251412559045468258904200343789576798275465865522448846538620507343758183715163833180974357102996583684426093487131650617420974371428886082289238291354819102635803470858043374111487191915563384194676815893761457363533250419895514158131037193173138677789147580740463336161392020447682324188581474819096010562414327467957923309480578830234350250966298644142044823236142071474193231670504685638943129437870380768121034733233031726722531232766584568717545667254245682224909868073403688039763750375990627783314910459835608554053436530355395860177369877266543113923591896427413602691039673647054645477846021832162216119715003794160838352387633057292530856876113973320631822491091765368092595188185609424185593381958501795565564271632904203154650048693344277053429757054175366307779655629512482164362758949246855364541852661580793844813993115192209017621072698538045629478381889860602996830384094037933302830925871103650045441335249455225533324548690685813246892587174625207133108056779772307350946368281450668768813632364825576944002403094160401789880639372935318599965536241329546291556153814764925544362304684365998552694501528601977584708257954606317314686569936794006537579961143688890150952510718081046931444969101204230628512773042629955342175484467807580103579381223653952765360180328194048509250445625214387671141594273551657284207111288300635145691333696548073655582130953884927454359570940995109536844046066867034010133377131168647996807990023840000229327636698549626748470434951479638184458838830699203264123353845844817003409900036074455469964663351555506557655907093072444605731753880741625080312310209931062439544288294588105902381673932232022064675001793491945627704671172265071728565265725422662730361387816303698961901843705125141116123683155848485280893664215654638833469493192149439415451133088540162460918057489535699904024643272276968378194491810202232133616033964519811328888143848381872105362998490458051824012880789082420677953933737219149079484767866841564280105485155388924341667778300509518887666890013121320980635845364450929685906184533351918117986385832787319733764591258456133781475861777644097068487118164896079136259511407352950681164827344367153442909932175798986262660164900490426491487667652142745260722583913811738059701541726473756949531817021343988156509695512933250284720477121155873289705776624784116607547664504963142560982381546163208606694158705859847696799930030206672677393830092972034300546719783491230981062531647897931355678231682026975927274563456214068685664543299881538498410950561274967547153414617562738267251787305099850879151576269670935084490763186691455012178304491086930188919072842874189073840581231968786186053018599194303785902051487821897519476220318897702462145166312887723794443299979929208559349312020005351509595577408328428572328179274483227854911809658370171668492609297289088098472609721075546326900920500126192744832015478751425790552522539782410902224001589593589873946114175627945745455742783342750763116453275924947697844083137910648769041667220608374952316789882843200419394292132612839720431632338896810166068756775044513132669051243836443708065055755194460729541297222225461998364710830178589425698365475937694564858074012912161449985204721432208243228868020505074850178052819818786000802437764795607369576500127759938997443498408403278812094494162527580146561032018521183282567260643654688054054485621382343330016543406869374281466268084686551732089539957614786206916019694544314516130795919694234406740452534976740341075202157459803586043192169417162490761380054473223537815837338406800810765221702224613033030069536130225427726345328437872981006632817462757266239087052091682909526898743231522497372292628960602870353507490758208751930625557251225672767822220115288833431740468396564550131362282582342901920708283727651981926037338158959429523271361868173603848668604019713448091777982661519561379105397828588224809035182106458155349700107306682535771200456767374821006092992101540870334462656521586133315007788745811530245470948194415623085232308817405298281023224431653410009301320656571832763027612004259815997439879069339697972416366344068651267165899642134151440876823700992414564706826452043063500320742526767791179364354364915982587535433083310435536295195653217091984794231551091796393893738055535421921568449809978982433430773192468789529445432522865462499566896550130820810020344350698656406930692818817726748197823247875159077851571644725664682411750340365932932896693733741168145078103209618467657937228677667762919612964244502308163777144388414816152173850901639253021872223150937014617828055373746660201840984225691923176349253041053575527726925006317113339701327932983388781120653414994362192123336658374075069107578397503919948354216448294314671327758139531035313902155600410672496327290894429813931187231459879415828370430803741610462452625404202776348311820931360874503440607401456625630124081473596400567602387471280344054493553854351674489098599783509697883415875473028875780667367838614402644203693462500175212286376854481949190021351837039155728130146697247718289173171844934156753797074642388396989901557974520876399896362639447144114093004769401866904364101740849726751912971562723441061792081926345010964838619860708242945085117822309324639305549251325134653866778999071705878850347406652202645299982279483060766825213082101653710544918804595603086682462454203182804052764623023858373360871865705794225366310811344307415414415883624985417558273712179146705755069561433319905756788367094980714977356951953493680004975284549547580980034977454913759160100993850061110353959640150346595253215383539902245904073161679532558132801808127895592233216897223937554832659918546417158040373541603631674528084113977828658416244026065425155148122299941144474147299121592253623521832271701677154719833260109164728938239059085170928767564048985300873793636826810261220561929081650393167581887382577842935372956411964169042807313727994748042639041960893118608963563609830902938669578709421636134610501779582747129518581921127894128919121555783344311409273512961549883840902154163878841106795894169244895885433350344725909321752939359471462511132185879233618192130801996640061343285779481714821242290633664978244576514973605152235443600695118509457935382016399181429291003307600563907001699321918866009465660540221480411360909105585263440820989137363072356560906109125449910030990108393068146915309688825484700469672011608181154662231761165508612680155331718581085214580509044387950805084078997914571872824569178525552334750192298900211717306361113936698016581579465539373469754069272931426406211909109536468882576724351562743886008314749990843183845015294468758811670748709055986738863435173689142356111080105334613105766995783951303196742859530180839476912775223115356737437437636887713293512428106357358812891360045041718789176088225982827839372703529575127644633878655300884574049563899453207335183192893767045030252135879282397867960423815307034192715399834891790790684630295885349771379577915925870783238688733031359918210184992736087068849478590139095848204393680334006725748791927295811812937829239128134540591376089122968134465355253008090568007511366706541840858020397713917029867573102649537740216693901598225025038551751183575663523114010049501896297180704547940355806937156044684384981089105462016600030175199443092428767847950606164755312331694497102088942702424548696170738503411205336279749848076959766826671431450526873439815557484944163909044415931496722761981710028808611691180401074652629903521308693058691507637388273510432766352063388583149906427010901871480498891399951522385013368674760728526574510565259684319253645232610399119272728272702632356442894940995854366776783428288446559726857080606554188227694772952064663864908463652358569934780846400550402285876683709828447236242152943988585662752876731474869724774776436686936476009183682278163855080929655885862149237096515468408088884421789554028013955231217213502162192453964837878633761298468603274130904968909497519738095253471204104673529737887994038331651261892569181219689545583153412853676275214618351784007504593679217121951704671504714830376567827795950389925888311552522753702306435249902451257987029994630207752674108564316380286495620588252097455590026103611584265505447759605901693202758383853595373764236758462037967473105725663392842167199643213245712206599937247125543160379559568868395376408105526373991880521977584791050758552273866084190974862147288081368784458535800046669705220086806694356944833899610843345471019366797907742333084003324568566542372385378780353130530823226970598372183758203213863530093849414346423504050900302388689231600103076723184769041126716443169997232649768523103132990559767730641522073720756784796559961895846786258993830839416319229746456804691474639957023699424870275689717687264628287883413122881844923479076924900992365107731889231150289950443266041945975895414325932747784389017053719746586445679987792345554648239621241909108682879226854555141439538622646208796896182120762265614114569852837086656398292805875231007932211572282095094547952842653511255078763457894253314412807566375461953417371013347264454777401241926171904328815796207573237903162689935622074889490741472572893772277331913682240317287778530215482157912562276203211838725849053149037139884552546566576658830073395369698298947210655305228270876858263869392493367842021198108477828082589531268738318128396744045202274255415449163502240996761761866574323417751863678568926037137192774026022739488778253068383146268895998078558638577045655108835499144978787233169668158793523960865669308760830725358708305458787105399896788177589357164252604470488586473351204135344970934648352163670673518583939444052830828128371713783107076209124471590151563485498895149038040171862950041093497592433789650682517631564118822347588881726852885054976498550279793154413528258426014498012130596404353636807575740944013838888020083067383525611307493357605359202136648403612580880821193048024780572386851514735810040422275991199971666875528831949444991949690464069401493006189134767500767171348837148261286095641530849306541897782924172813038204635740445104456523953394419870702622429141554787498073471675990071654401370838724930420115014994903417050803054246565737030828842964522821933055007926785981544678757028639359814321857581771497453708252034171197304907781458248778304252490430409481163342443191699740771536588282820809716142013677726156495514151570428816014086935273763589180281245570131540255243425042283864485254285195408561228603119490660667407769638794115732755363683749062566094488167986280995128101852962137071966136907373588554893113248557127243245741174397497954665925688200367918406286552120485937042741259939390093667427061907455682490600115101016880186839353484159392224919871509287833529648704379928475638669169300628676774899410247411516190971240987094877460897097126876057768465256263422181705130402840922069757965776742994387718746258978549694103020831115079605110617491650250372584937774305965314697011124064595908194226469643319267196154246203314071282067810354637614119500916652066614752043208790119947299022775139377681969317041759327595806773131459107340277127578880853234776680002454036020836307577374850346426167477726653657883853247829283920777779638235494807895758488161109573511564729435561141578717027810772695248316761688706277726470089064578857070555926337534130887595316597942297822093850500303910069634238535224122162215331033398928592428783977772187430375456431526622413395250830899669729733242945460345887660811564621545075500589070911873845225324668959747408971471490549117949913039669676617659282334074212918199207785523279185956975554764791494739568704650191577823164973468851004586587919428459972166382635730585639367114856972415225363903307182355687528167081475963585824618046607744040532245187569777870337410668222722508154183625426375967837983169377765626416563840232624198782656127565923473248999639362614872138910340225093826572938329897554266655410371445758535158324908683385320661808228480828866583200669470436453162098046384884461212410942793954787001189246496554005017482296750309323032523929687400439489580341925633604095198518725447033276670348251531551871336064709939594525601263594615882246474641751301260514500985468691164443376809049268228750445948707758735057301785405461485221357662836655654082725313834191218134802060181588363851414290442766553799192092302776287435060999254188305231781067220231931558158454609384329013546652786551032951637366215412437319368902373690232263209322164443642617776002429951752343758654368623997984643059213087427822650773471427083243108098239572022247734176323287241698534049425431453354282264822582024781214322110969447109313050870435532280132495594942564142596344407123470134871343126125950490112773646997412842091624632242781033375164513641101189491220345072731201390024477138029271314518030953474787834297806127688258955092079139605452677038520284893186457933826602178634933226030147895322373101936500916531528240259482867058902177216017531198919748966521824255958636019019190494586815620185892254791483832465742023737749466304284906251596774109775215857397984070483712389517087108498238813015583682742679696411868375443138438657826418276135877531393389913897117372721816293833869547613937782320388644089602961447869776004168187306400949031542026250347311233168514320572896250181899803871050610556739268242085771914492850362655464141995670529492248922004567815025737913242554625053683720366746133717423369701135572616142116323760999048697903844054596942840843606651727196105034731219376665635765690545897537244121809804753316432022344203678574653958321914472853040898744201852304184133925597650508613897638450789625756969712294756783117329888406011950754194690425759613364964363748297177630364911404923139360523438119088802905335425797459564199770769205239931308127479191315865659981797770044758170415109023707371028465145936085716746603223410587182347398292227671312325029692487539860547091863654098778802274337828919504128402156435277828321732894625441698917546315600686796879995028762362753272002536541070465359054016386993765366808237284255406883536586324417400814386614800908635115722159278194791056886514925206751147453898054464455422719757841480071416256291861568601047466665938219926255032557077113848171514902662781820826880604199469102401437622670026066144563726417049499523072881873644292175724479650187311281552433500274267985799547779161081369637526599513167493492830245076562919075785431661753033841805077718919959185319111170501656876190276327798061036086528686483403022825955526080069932335036683621066080555759279266471391834564462482136300718541695543582644616048183181532938562660284143466559675132443020587105287867395290536480359241827241382088006874931647307333495633168059541628370900500363406833346135603580114715106181812849854148130607834902164604855036689424879496495835903540346038802365726592821341378736225057190900907151320279894638812510260104872260780538266888651632416096726698330513874794520216960812036792610907293566655416578090311498487375080355647214673842372724122972824387405589534345049852904714638370633627841681817543260870487576296444595515719740820876810990217942897491557512216523373719796131657719115460536120943337661215085466805247966894180272679875321397383955029687641068130167310189503205132401994835587055573500255498369187149602720834528346540896322270805534281989585419410190597860653097040790976482487334251401469810694314250785135490371386834366036177518850552812496459731867978114596035149228347914756715580628169012940258322049854276397789413410665918613173847134721069490433051290148871750997669404962250868257634923780540752183926528949561510555086132534279356202104372331254806868937083596008913843147350328017186185647453348677541656326476213515978087569001758353019239729815628604254372331937017616431693777465135327906678886375166081459249235601455895968963190095652832569043240228140423887366479043793131847272746245878339663174370334826095823192227882713604787112396873160302660942300123043798849715758806265441459159173222038829207336272405509041752309204527848980060155951585934547424653661956416986574425936548965774927078346712083715395177259390522742176023671682146763137316310525322293605699363697714214368849132760377643450094448159369008946392552584747280521495538753222055188731961042943628835438009527804739196421660749230488022126367587217574716733154256441473324763662915107543773866558543169783084087103113148660971065273131427228848702314998862202731328807437030682983925769805806830009710070697272853304412705972984371855576721338623008249649594407230264855990555905199534184506192027287693931441052224880031157742622648287745547096724759454765606936452435338756426084695799849301963656545392025812587323283716387430371492507605890973799326417447070183228729643689508765762064008981290569427766222147524382537719879754113104815030251179438985114910677992917171683580312993144216860038409947305705317790516842167686477343497936053589244111425236121822797137861239327776622145408349804937299791231380240501538448883234350799435726028036924626976055390951714704012655198459561654876835514728604639472888429825544630239150237769356875908404401227651873103513399136646111820312242852734938066215936914926226571989751011208678582444856162639905174436564562733177365197772017913264601558525489206052960373243309038833492085167031477860517238612981423027432834866593823059451052473330361871033227970561261597605236110770398420337569732941224482311874014541849902793203702817304913740658581087179802904943416220328934351683596294117249099558119462245312793935076027937488294202210399169561791041361018320558090150593175855752833718751067536017535235377978741720921520007318322291121097353686190687773505538249498305894918331305432614652793504955043561485922893153508273976214685550254546963960785405366251337713417040193003721587158227202290488100903358630748084168614977289358198159203367981766256163219808181008960300629963047321560135449127540552569779967810913702456080398737187438028302507381599208106688084323820900488391456952408555070395904307731243322845915140223096560800088165011812098745763919269518868870955332601115549127522857107686402551639911733829100288020403115667963070084379737893518948018994226759597026355918176352733590191784443471206853856750676876595409114065747706846221663239847273140096765254493991952791025955814446908199023887263850723364639545605508675817416233520230487526379957105279373099423693837940134315278853343089431147471219032035559083374993811479663559314237436058727598286057824384695488766615356596839745175951514609030806943605863934854991928286221160224137746294976353416692531290257619702736814684347971789423656310535952104547050987654877095211183613625724020666220709031018688382841337470535739170589143333332037790320191167271718756371753296163754976906849914583134870716616519718090802648651329973621581539476061094119376601757891466988055948949732506254647475280357658697439531904448898550895832595875845065879167612340871211116572350197532068494860576900145607184944621791020349065382930679737914703594495557932879684908407081993420239817226168809426924017901355643437151334776977850810598297849890123935052782169179576887272548032069630992916205742818688886815626671365243786022453558822716470255621741796552467617375060126903850659492712163245766289814947387029792161659237731640689168246529241256026143529153693731772147200630039128164675094666187688776074823668623870982637140219767717113466406823511100917793649714524807650345775879940593534553459125931031548729125434509677597945654177003611635750680786352902104606080231235338704077548781074685879955987041605788534395377694278660253190178431306902298256016321859313175970172869646778670642890630662639333592074972856903804106724623293128611645181492897999096676113826988452100105381820339794819302893226230738528649898896868817825845143604696039340303889830834413192452063329894745017164703038050827263278960449528480078041287067698925885661229135212500025502716944266200833498654800438053196959645624148741248558627120838845381505557562144129219742498200169449711515708789344403097675794630770004328863911804503052499576050673888066861110825303752568184563215309682344734018822851924947090822537021380892574476727713574287043298767745793755965566140836997972144660980514448268360146481910021605429207377130660036773870850994577814642205598447879114683656475163768653695749983290510700892299070431669788768103341533290446317897529949896033402529217136575173506127182576298459114794787130802151137727415480540430433232950583518612952528966971798095741895805503206160551242715251278669914806215347756531674133661539031420771696709108446314549192327118529845977229145878712748743243141044803079731979029573802188760248950930149657574673020767967808874642105384052052347110222605618164653884062229860827312805444993291910081840937789075272580146885278994695337319796464419052683381283451404576677894152416146408174858463786216430166315564594038474335640361668417465019879487521826181359319793861298786838704046103298257191314502868130613967166114284419237366874164073346770700689441340448813473623341818574451963960978347113759536920522443713752703572433282132690440310466368593540221170198637087900445961453957926417721005186345744984832038878552534073654484787594621224333933385248173905211917982844758577842428318805542895712042479794829743578343316295006182031383349375080023389358235840905615504817291927685515144054861599114824217253006294723610818663736906754892355985401635484295336047003672002674182096095397891839399219969042457130665529404722919157084386373059010689964866820560680191189533117830083146766464089893273603538451151860535615649752749809509928295714653406223897485296314115102938399348606054378264479763929518306313428363568989724201644435681571903068464509541780510572438073106812685734341311168824764476622653148444750021390367882887139878442203083265773928585272589140944218739312898071334225495009006132418958632076285882146400438032407673622845466926772357378950151399216428507849984298298927399690806018039291656576036617655043272972456380327845912293937383401753311794657253278339322129604555543932971933425508455718583470048090714032347104089817212325884803605551600264823911451878351254930295933059421396238790758260683018431509876601489019740858250786303411619448488995550025736915783040899296191290645384256156069744555851608234206009275505853195795679279517782169250447055830002383346812365815486533028788440842202075018937779978961953220656720322569049380980902357154597579275046327734168302332233115464027341771740081190814568683174589093383197286850713854666942145181133898228858461925343056482888958481895794875647627687232148407257354992385921646173708433600021262611549003358760296191690852396961656075754442534924102435163546370814583972179069936513525582966239395245650446368643715931796238332098545329978497113847540074563218371458587468444668160360175243128334908067153818833726874746442909962853654671236902431634043806650843874869296451917269994668104895967679915401463415407920760547203083380763294394907034275608947211664322766979549147945851359907838385442428289134477893145232730730301176844401086844125448735697216549637580972440033079879735774057976433428349210303090919293625861967693275835018695006058147773335513838698628289365323715173616720753892641108861026646358560734604133792829687513602262646095930421283678328144981594948733636755290514454352774965571402381323986100792990488475076177640602654316673006724946572846241653549390493091736101267345472219757194847800765202456908487036914163671924083074730283249595197770291145959404201204436143417459561887940768606233356866900526603290732055026458083594585669960864801974683235960272822161903234721141310767596590705561188095535529024304345033805630143054181941837600444593186463238956146763464194564532145543325218602732092366941135312314098785935664320364256637203427235528722648536991314165857809149447772528300004755398935952588808152657464032197864059535677530397491415878964628158313606131636491238861663239744670660630561695381485375313227455260745993937263409758940914474486672572400954418752396013476221652555586433500600767420376952685038398221032328121670010946824882910540610679774131937633191075755840811244203297896115388343339445942211854318943645094360111517102880042030732009315625154057819039851649517926297748445582311518908504698893600804633975360453411062378850545002692303165028454679238623648807162003162336567560970377392038970261210659345510967361428229513214711689382976357039974489518965837690660821631293842822671265885771680222700182860067446097421400744578145880230190652134522821223478737662207591920255381185643984582589575484924899086012430405710468684554649345952385958152995791018337898203934501337975436252820977748804951968449742888541417820280160158625291878958268096358780507573588341087174227410286850214897370310746141732903754797271256054853117106544931331390556997986888968818807221732768509075291696711366965576012691579782643843692466438272531188976806969649476873284457323845094019326973680064440749392081382878859176837428397054990526503626207030396871065580965285202958576782725434942168064623255986636644196312774885158043223365704108450970680486646318024187681986400950210393767709064392922952526988129844962963636471814034445362460618327220792407760809634773987556217555612280394677398740348775781339358209679118976194681070278973407034098037584873925011345865292847262249352429194655668123997112624363036570345478196686769207901649265370913178160655296713995526816773910218375667054233703621068853729608480595757615955999079323928074273404864997323514474204103871464185655670722945314498614468570389776651668499871430885990544180992368707605936213471105209333961445763609088522892470795759466562602946630816956711624853095690520738915238691712741639140916150729861514330079863343902712822775696452791911721033811063975542035181696575952152353072438864308880656173894004803338358649437739758385702210987074896774674525719263949150424105188196307305674299701913819973625812880208371069952593540799398332380589162755978946019539583197330952912411236813155848160910138661566231464305951861072521193437438739111489881895674357919484617655901882647682341895542358098966926767062428367470953364535497201754256612783368030930082979583022497857883175879920762558103805193306813680338318124036644804043396854552774772294523708119799945008696016035308796155598767577834378341747462897833600651863120012767091431111887661942788676874411932132347097571988729118616092662380669079725609349689148511206890737724586715122798984287491092120732357436231490021899673874513794923153393758576632002243587469444410189203796946034809088491679069550473778085960493991979163757370475573848188399747097709435770050562562575098242962331550190669598954241769683895754496606142587986760985762234614416981567825098605011918400142912133050883349157973720471426386356315917479631246018521684610163146716973868649330035763996332437995661426274529085758346933201471657585348714811719962308948668210028716140671569370305684460317405502379765205233070082536669292076808910404578136958823520330969217947879644643959798593404392826819547749620357196753253911823461186309614666515234014737887020392079127002692186768462931408310730993920866836653144312642323805584437551038734610389510478223853318396408416366514551162332134910998626170272450924120535179319124684600619935781552091136594778088999582666029014323634129144262579483986807113569197853175797168015849438429031150340313828188870193339772516726246038812051028791514914797045748301820194100354699262086750093950804680528918125665973894691144957222197528879767289824864669209535956911954225544328213661102156414644053214862307237680298446235146129757083975164577639041069195047321718921251208857138969182014222264076777493565442798714756086922724607927656960941469270230483986528043442186893235003769031540855840786509940009316155171119434930270854369503819403946079557393267598693010719051752404804036620925908248586975693238119979517371336849601638787660136620024643011241313748784777916836219204011188260655499464538296944511290027241108849745634263482252974664806233027173233459761036028110937085425825686934266900709166287644572409082597598763415795328832765224507290575983876177404905127221560202884562274015207539457669789686035652212822835913129108407691327680054449757092105954679175834874584532801192970670948008382789638423784578025063342972252138249643922911013630138104646530379953672338458940214009278638287479280268753375502845973522266154405933196213650480101465760906771671824647002799298522777318134508214304565955747264553783031837282034434895913911364397981431298224437500830741384426399199700075047410462286576703360363030141096674004453529919947386555101212461048695107736718803390624871485447588237326077776995771783195561175318112938748393568557895274820443696759900476939793663723939644733667399618086153599295423883122786268380524843709483280720150298873985271524415688867470564506296628437097094202932455426450098901768717304378651190169416482832108281031959481798437010570647184355419895346952322211186073603568582280759194786335696153587219427946912651027938677175855986165557336365405665720597925234417246201219926871387454580010404520286624986091611083639467531295545819411184174166377756590243016672682070438347871001841666024302346610958235666704552064903336931802869187226729940396537929980066654129675815238952079773431307187066288551167003238999722301442565570644925760996071455540520594396857061915934309316676440080417572562848726453294879011763358616701196576817455691110169532105770762443066308208612268577809748259208105232255042369112948866653557556116833729823491985692683481062220097509881295748078193792596474283940278583614681809784664061610113343656070362754614237856877890089022729108007842700466872912406911583025519792237245625117288612267930767669410914376642787929151326059436822722121637833557709702367655738795461468325328993583674974178476456754406568044324737910089548203108526092842416014042100973180068204724576340898846594579221664452969112031828765445056083640426825727858180386843933828846757649191412881872782860430078951919925605119378891974461358288071665985190781322147610326245208126257454223696397484239181690180046289183295101572304450285011744390108800895784207044223974645839717675672154260590246901862299656383947574742352652994271770548059038876827896009895714099335978893431709928459630993641588145700747796137806991031595683675057308293309218558760776917307107384594002450828221037345721317803171994015454645525522279011007853829888449978031558921498227966396199946201257976011444591839904504182104868526424014552106104888063630327599467426527918827036115754431969281163901439564366659101702152157954032300823164789973568773718628337888801303959699042856617867383950155387708571936022324469953195111777203790991768649505331014663942129033557170202854982786444774022418642091519819812608833583015427972495767446068937965000660578869067871686812348502640608601208727113806442771045916691194398056771351035591967111175924180858849215499499123574702904973988611100838467366542596089410127064527121030945139272769137537223680247580891286905703633308420155312593392260741987791980190909922846757470437879501836840375175428382543731302211867734206085056834371024876921557083174142291742185117474726136556363398859005742943423716591884977367027000339720303022812863530056849628102083369914336339123368409483174043980027670231502769023514216656184765642783820706512021854606783488857106868138276473768032012983977509555719835622093374031990208476718725101907703660163884653287590782511913715694414407430962920024193407018694972058520873601424843266784139204883162685042704041191324200011860650230192551722834780198267152329707231360223407652032685103660503213227014498856265538270360376464438571277406393485085672985963559403969803170564915819179031147385861780332991720976220843753501100507084952604150936739757567135123351294049152010856066852209440398355199771117620539449512119366837991393802268813092629824989340600355035437504491208482087104705265135383939090505082887689974915130634452301968301447977484098449820610004856593322877249762093596122426537524858148188297946172045739650762987731078436554197605910250878159269023295401600762033004002359814255360782869371170797915240720331372665980820279481531654955721467463411360702777938556834894502472863134916920029193488466498765475568499389141559426294269878346785068528135354837596777682061357434140082453743799473037426572303737876973450617435119220456714662208999270041088561428175389727440666720612511439443236214358281142026075280298298709500015700183365545233814859183027029816839089627320691373572749724670207564377360185980768753107152211489471014329820815065772788739025402229995813114172009560815333535818154025108429011007273462576042334920400027058844818083533016158252422414741623127407527587602696289561616649658762375087525661040326600861933008979405756467455806678124772076351025196458938048239294742568042103638375474818235328965471202486510026977230288421233404949576145120352567477731175135515138793941486106880544513554430682118978758415127150848863396050646260749085511301109509625683261380392677025105575949647679400796390551370833817849061581959918982263573165099968709035605237156098605262474521239633330141968144774345558554653885182663393584819276101981019401738301168517248467317330802997595744542078112872954581461106941962331813568984615339002982182838144526794436636948489320991333677067558004754469761483732308862037927999398573984651647638398378104734787048901182491370109441872280392197251607613822420926932283493307819063677068502097241144829030718008666672149472888087450661526270322651731402210791656504579432251963447859859945953879736801012633203190696086990414205040607161045184609038261165318430558197282540342471344656573834601148994948322506975308014250193120498640812388677844389740437141703369992500595400253540987554713217491775813596869163018899095293359670092872172479072726091886273235274653565937998915852905849729320583171751859150914605432217628945436159122562908860023450804532847300880103077234488543931595210013882295687574663204946022707554092646148099041958925556813997598143251408785754614536921245607816904858887472596193224903925504303107921244990596669120055098296830260749874259517900553014861569125361876723045027326122373292167196560756262199738210428551159287380928399794653874808635786459507554859734651533608716878952949786283703174320067044019771454562409646691682813242654101618030463649665444761307027101133349027038333280991205673952018705614234675736502037122443841742676187100037598128826767288967003539253755488994784312910970926140728383347342952922612846246064206848838562719839727308046914657101674576035656736884052825462423043809294697635654065862745600530957817408316702231783449664811646131833119558476931468840997558526452905873463231673132117658010506311973031216548912055005647647350538397008051323862767717147520947583802072081655983088743787029449390131710302135601150220422434151343057980697039752771945657786290246229971243423209348617409179508328294948836933199682581889129648237939821877619348876837974170443214575393544961599030139399415922056861499134788794864144357955145540140500267384820331067514551659464288342830958966821704834618695705107718425858448699296113890303144317462641183521003893121671736734625850253880708227676988377746088773126169815787099828485373800204363753703391955260264175736520596428799220611877696228752894404381716773427975205492110915479664737496470092897301072399302945221652131206968195916929746020822491971148508377552493755588001194781148213947518946966668417410724696997053149124510985255710107472876722016474746493947442391338968089512969606687489287177655972846438083518966356636037582387515859084418136028171066255176745020072377300063785689601351067856070398351678558006482572280078284589814609182507317983281950248355973401816769026586996237500888376891495062797143496344204791037672706369834642672973562810495971551248353586340291859314275329111283250460097253152625969536939626177603551101532613906556401708241138374213171658063216489462241621250560882937865541754048828961866959986174362271795401540243244222972797620750273030418434069853215689302878250136454067860429851263570071974746172670015104939986383027230417966492214994340310026644259960466774370445349540253777019936460927197516351995831596245023665218190286820877674520961195311434255389303236021071053446728815555676793106020656411186405574722008395824240699019303171258799498385452221945469528478793378061619978013990681917666173778377901128410567692017320998945803085502327389097564417879469556900196608658667611424375275932228038016453817253740267964790574009561163987343161124138032229765658989135023825714702266954459254837128978466472608593700740733811592045273680474530564879419975925448535418223845269095590959851323750550664271401317301112025803301392859177316129313965759969652782095819748260379786320791481619482751998465320406582966417871262533719383382851388532408198555423470561508576645106069592929577737159002351856741634721881433214823048037622713764724347316291654433724053425865434461238408873374529017718018934876592597984708721423644962451566629483051520399780635898689511890087545486130449246866782085747687094490050929826673890675106946461811680654180821924242019515397864421416255039536862995728065196777574535174040262015632309614982939425845352306600233407130629664202635190358657352524945778969567094249508817852679007534333538830110443039210673141309008895469611165507511652108396550424976196260826315341839395687675468704206852828840629099427444683828711640233564547906676099850459281997324243964814157971337855383191716340985945118272131627211024150912586535674579668160965385018818123087274943361961737158811410833144927597684922365790842193773590955112818648746157892316636088847430445651441860520538182297797822703902116074453194354552080073299699429645253845738820563414529370560561096352463431910323694494934314929571710330218889344200384974563424442822871645177140597670478138742085931663757309748846495406802308934093490664523525050717740958462231605011608955261406785767069261012270984789246317196336413178792954556575284900607087248180167671535184784464162983176724824404812857548676944489617316047601454126949369217514593269815170216517309969770672754755969831908125615051375833958410269984339839203167124853124325794060354192824237916373821837314526695414726389980012021025411798888563181229530261778382645648981316856688421139389707481246353039378602106878515129558659498400859454073455941940637280803011986725400190563276378817644772764465107586938810602628715720589181981074338988682805156247629955248272828356518575845648598640920370182351993914832826377057014775120324945866351092322285262829619584841074546181047277341605768023470807378653668847287740167409962933388187806467086354460005000418618838411809703265882436327779066063237282096877043165228985047650776603080863563408070186022921484543842269945436984529842846147209400918565955663673162590607255515028926162211710106980043851611319305098159068920811052142488767829505552008059202637321072542314130214871738097091410221216309001611793291641495807690812948433662215541991600011597838725969051092898221735679893757254061882103700375434040500568454958792790522746196114335319073188178577270636574623342452097018224119731237170339534293599278407361662807562223904464009436063565505318129152971691175706213211409690008591971266382565864651820007741345990818487742317706659880262705879422662970128424548908377451996642923679057965639587029406350022686444118458489123001092430100816175008406266866375993991570132371308307739144711738960453472136630260508214994459065529107903062313909691698707164137749390825615936507742639905612057353149116952141928979589148395460600604009404028211918023467619559502015989759833054695987710328791669243933326652430039785896343400013815031513851423014376895231392029504117942721970173848517990568406410086081759387949398311924558798534914460007615411963526390250891497822459577646455622831183383519744619313528565192009294003087600359718879723812877838779898824491775252289490855847272131299479351545339084056604903747695504907166692591052719709025772529155487857597534669395230145432140455851158622639445410619710519780307041195031454023885873251440783845443734031054647976618980637098221940696936771765601330112098517558951182014106466785252501676416762410591593811000807141382185105762974648713454247264800598682047224014365000010143916186631597038871418102051755052393645961010410197573788200262782960771414346324580816840280906740209018843952177591199007748707517592648471582584954345816036384357223719298665001851237505118882659699421858446290055065018779357015016063429371604647800011298318798233255577854226871702000054383386880128264687804663082295201412991868711526600313259065815227517644050858479376242973675114783738179892408970871275684086110645825846337786210459293828821056962810067469613943721360779478162003214259261279954167780695843354039473451386317148262056566996147743405867753245792334698765084113264311034443715297447476202385235999271708059381576783663469451090508602858325886179377595178169798429166744177904630182860287230684610551243527347649270544538194913462557963353715256120002146943380671954978040310192857451106566035708509380457629902958699847772402178702803767357841099883102791108431447474545273667796631718887361901162159548398165672948651538542504310278166318759845080627224592221968315473047148667955495268160609613193588006493629352806896305793429438874402967280676401701419662678400859533802258287832569579098381865167147230103725081207323097392667653225512507956354933012906279597503705533392924146241679151977069929112497159965717462377597513062322286040555522439847732655836743140455295194549141372178439175146717665603121490576723394159055820343659768490411175454135524807742352558452156232207145897625575077277327855872421382411064721305015991283894255999610511496598670724375135526587470966629829364995897318408455598056898331958368024667564665260645964065205148578275276353880932510022976425238022770864701687119834470459679474311307960670919601307109171734991781417936724655724112048143061460682905121767944477016659302208679321233070277375544305072302166308602509287773968243798569429236155492764455139386830374000600442095504843895819177782523582112792233893214739340954132364891825882381714530261930553882672006631060048056218651683068253868772207958687011099263411873510757080093003094838380822767250409903320213165713896480290937848242428086837589384696441884809439643469413812538634820048395909345372148435460671693661418262563210846672106192663906112246517409243548235814135613845058780598686325792230057536391560836299539888268335403526575862694519328180456456254943539989249252378605955615601444039668101621383957119054094308548259426282433981420582552985307793555997975743819849621153678870420607740518558377979878287630909979487440901800265713011160337736366794598512693133577161904160163933565445810746947180112800107829473674872028294463722620037861779337929927524180782122610095804944126561216039879566437236054323684684474015547347444433655941199723107094885445804250080809347281484221677068767025128337914413743326136508253476405599164726555408270927293308630541026915147469722615699096166690321592775601620078543196499144938005224967213916563173685650202320773639711051760916531158216880511382816216913405636129371301392505573192237882282979564115981191267730220166608757058413559971935843090183994443036816751917304493419431007047178678540602136926225303466323056883633594870909269224648867095091863283899993381651177018251495648973562012784423332671058250945071474520117538355452067005185043497489328631983394447747024687580599137941510830008745400767512105008629577948355488074163939658991145212771098089987120190715948570116191830762498491900720652537944986807714793638609045067856348920950172809857378904891847675642956865925003952769339883248055211726553933209292584700957859702503613774206777168219062886024408279546668028922192821319591720152943507504592479596368594787900770427423907134246531529189863465517281491446613664614513260745977069048440401887526000245533210438690576174888380727524051467089550677925665180464770393934951434207207117345622875519528768530454952488928868475853154160696454494925031692928362896563017827224093037590929690762676184744592703736840191585622433633248960353682296895770096477416738087209933975893477891064677301266721794536057704903308572429416222819125184161002195689689613620429394821976087462891031488027127526601044631320116390206276870972415328260542713837882454304079169646516553011954836508840722969900986463751964300298966471073538315389339353527233141857386959610406160399966141208847508757308248482807177876110712861253768060435594121453337256918546464789110520999075155250785339449255433290175729198216717282059399048253463014294665083053498697422066756173563610456334570896150594122188552005300241264569221468851075066251258105206747177054698352309672081451592734228480846849163593775842909527703161276507027785861246937894427095217122537700819234954470218072948706695318892370854190478046813746411304525093225065942442810864103212794931825298677529669007857785370637579215376775224284524383870526354307277144018259362779745175241611787817245457886132925178035568472186518146328517658104077481572377207607338148307021162665907736607810558594872992355727889843594554593655163325172829538915008493102247631443013131931811733283937201109829507191034732765473574101723754069553094183773812843860211326276245286445887709452413207149759408685041716658702661341524840190580180563083148021929544553286667067770601245976475774689424170920166790683340322085616555275495832297697923130626542204404474343011316851903557969243925177017010811713040231481843490441243169270229131459199064237139605123283841692528560819985704100708929353299516357586262335594811681134827025702031396336498118462755787492465610854779832320026305232196549177399970064756047012092822079530389991567069304980229315446268892026540768411901524203391731162335487702810340731273098305718865576949011230169932804791317908114861802297852557764297752734998807945997229988374976941516091399453061112023931293114713144795926049790494777630420808726486952559128640807455449622956352293295757897373955689644287920847886963370607455610476425974228351455885569870435867498119919325837576034917596820378090952409022935451489703892151730661760949016722839001340453819242692338127039413099373126480433644143854634531780316635649481155395847097140935132945952645056168087960019324126928173164595481814537691394662436739975023864759896218116071372059792632621199192693203549513514927746202379918235256307321898748251357508547766241385994693001412122807148253352817423296152810334262289409313783377275248493298390071937351106653099695238083009791120750402143554564390580696681603958964417067400796218567335878106975584876385530457018739320293896950821731815519509913303002418525305904632984397272473440726836350110352203986988197986587122438549917068729598424237146957867025369403542371760947691026484911951083022744974286314367228464877764921213604396379608210333490714347655850625212679408740248682708822110046441458555134874364400088713547308739925679874898091540332399348406051599395844214973398661444723725415969723481616130041036774945579201705062105958857650871970986323375672693847225454243154971263892818724521106957375937419939374852091317412665272263688886004447115053024924494129066252833421784345736184570574446189495473834457000573861469779492239589105839672210743305045111286757404744758269819196035551662666162439424360161593755685197169939630908222409765472819368181760815816151526906348807999498514821033972515099654203996578658427614730887837801395996360051369684292065717766281185488663946422953881565580232023548879277828012468028286110309990602857589557179464389450271267805879042301934672544834102135294609621317525305830331487709086810937552785440194037759954332927889972098609659575077375655759127645263771212396392381334087089923739794627788021567961505445444399803944378959626723354477460626099794935991889243888602745861157966778381198009637862812863169977036583573503191439861340919987579808606278518806587270340561893307208247071857590669713247910099756666872311176949378900327751159109581745485124950798991804671135992588405596944154560537066914382252528171771664137111867881343015416913818635378156987640595795662778379538031482963817431793126715208312739098813634678259710565791283654888058311472376272853901341647257971953616249139644016310381530762544624340204341242538004562117438794352635645147588758375826883963626462920193037829043292294719188844227107264763407421383143131199577392380799429678074860841656471793228260145820638922261323528551183376468550576611759498894518913724841789435829003887683810392996712960581312584161677540502329058880399241084458699450018266915445457466453095398758612240204179112594592758959475361731605244812239495247524522666444028676954729004821560462230890394545838750683658600780387679889354157856191430673541957481363310067161157067633236564325189852941310703630323579789355802228254934274063451142206972365221980428656907315546208932346994616279840356580242266754357287488144940640415849809769675947664979295903486820285818880364634536520638986030012743127350744599477671832051404614953746807667184639437278786005466911581244006649958907425186220682162888914629523779542711128230465383760289155050726030468261266428941461103026700666544713750353012108171293396399944143071060565235780972607502072020003459422067565678474162958372588194286540250929828918831921856596374995661216219017306814377581612694891609106678038981232701944901682423179968731864774956107956222249168899468963323281468225523508834919603408024324922490905587319087517164415681065062141369645034685288827806573957707283817983432071183653748237374199912778621542114493940285591570493739481990298528497170293788064765433136950982752658972482848336394363063371774697200533059777916509200185860048061400969941833895189371389287605155871273062219072156182672286434955603740999638485678860283938617415353499703453814899668367958115141436298853046290467895023188636722448321858803550188610017785570727417839647942116137019807401386809783367304237406379816240921548586621205357064031054766408215637422958957139712873316230013144426307713402852364969281894280228072989182330340143722836378249080153614202967513452701815853692980761310177980162587480424520779092694032860813868842673376051223331042263034872020608107511365196410595535576299980356781796121644480244294369554266104079966279738038554355479294086201745215479825564365591453619963666809422347746271340547340295877248490228527718600410124295199325434008485830393115238064471666045555896087918879307008366916341032692425320477882569014057892733346105624712177418167335441960143111197956920239629865175789001935202657598200371078503521765718975491560761983950492670561567288020320359788907144141563445466494419762282966342800747087210688612869198646931558230197563927010508982533556434127296477481108753162515736343357538789097157435216054676616115469696958666879705100188585824870910961853407532629160357697420993136115506598221664544881179850836548219977888893155945639757789013748259373666195658365890194826426331683140571018194580505682053678205354006006355393492150570194898431713036139145634329543776553367519185255047693807844549934152567928425915178992983910377351435739619384455890945062418018741380335671819964906156161954616679743297058820009927828668373347544934716431454904928202117098454297010828630391804230171472124242948678677982917502232152624601209107466362614616674303780673945936270356740041472431854437511776997621242797453486825091741108320160020749722035768602961304057668613346501507887397600160905261502633464993874905024150294680293198321674702848055841888490518524489327012710614365463464181513379284119581984124446356630611818557024021350019406849791648827099005720238639136199299157493638610986876940481681730692706324088804859498167792384474905921963672927696943502533208813627654901693235803899513706951059510595518679583451274725156681250102604976525637343168675958535592821775716172603033743833531827895916030642177341447877015692731684575286328060896020728986099615546073779332729105921763866518458874314212071892815395757722886944091697183175141294963641844187190217117327050910002309840101061665762302826974134984417896961868770787852665204090031370719997967557024442283206175186904999019016626836302129406587460425151058247202721246148356776756032852760722729387518614367964372932724736761880165314984298528469005210640411151668138379634159543748571927571843146787301296478075030679795491047358818128024845414647494420657441259573711749717737256395112214729421505551883862420300075309657204868903772824518036606598837209888590400347011720493509496148049441530150338656030074213363685775134380084079759609645809657320183146200475585553960519539891461445040065329974786857455862742479943845314290860170879761270315586252691485397553609156912838341104685746614402393992144567686371993676610880391940727422897899630924117453516671606458239324071815526624649200066494419102733530338049372732507284686873660058550606034406001464359955313697704904349634180262481513213513170810092531584108195412078782669627429039034615656863485140730522917382170873706643929234494679116337043504317451558678447406398845873883182837047177004782479600899745762072941076155605081018068994108920046784173072757964862285607668085087864862437362727704515286187851788152882576055846899943947930148087795511720883979718160616883907816534810393598311173242084135221171657282896085999098829962426199092320253115876626142783528070979982578396770784006250385501539154747917679172386359210670162944170696043237405371392523829951421050689854404826890674969489451071472261208183753433374915147633770877086753851115735004997426640207129111537484880210911182888106985708459985717122248296115790897274307717798625750204433691957802097702125712844173524503717446556150220715506545025938850685440495776679108537748618786009975922449579588164732915899669847871535676299592416420719298746062318421686537375783420453594764695567928652551045836342016708392501528859998132128776066675597884047392247858370891140574075184872635948908665068573186315253079845151928316017042881697456769942719078331126658907436683762320317819602950520185590275128795991907824847805438935353795880206444088871331296095335634529059009055228876270773991953920833396876860163808662288036715183850458981125293140191848700694496776242319950044952395981354621368318543101072697938246040802932313404062164324088298823102050739150105012926241075399822159791451667913017691367262269345523861555890399102102732394282780541953503635024541200695895606346879462184675653997425802853176330611051332936775686126782071071470371215002865950363066901882595026070752671585552331037879435706823378529983498418039723124952170998516643220566878291208686357989619538069514774313277532549405268757448964442691084651090400061809633133393461263803770067575774596114135308519169644775092344813662126501265761757733912426074885265316176680727123645109945068334266247738279647491750192502070049732822687020784859339143997339344984755082566376132953064567696193931497306036219948994495158697811272999905760477915517110891175070911649009094165755467815182458947615315668020967892595818040031303891631213160551915704404317421997724393738464934835915580316908927430236042063884664545433953486093770416248153002782066795993655891729593895608225507399718843910992573794274880231809334660759021678948306430491211623665930358087426370741838458474356169723564611413504284402831124391552510026127157374505889821141107636852998131085803696010074478648138754738466761814854948630063916940410554486828700605836146674024574711383328878156501815559889502406808628136129004864222886037466078640937793502413730690236909058950023116481081263963876803975136513792178240312457660896736127280950861867397452628882025132707345675311469361961353064188085067561972811489238698241957042137417656856884170140546315356513987383415595281468728899472753114642954003416145498708072999455778649044847542159552254935984932024348249365450588286239098838767690628138730797037193166930699145168170823202302300168152959330022306146331246038342849735267919302443467034222084175553882822427045662058645144130158457161490908762221121519960704729607779495830985549765423574588215708194135204564284469006179973842393714237767195762765626269071456688535402399843815952674548030445873498135931163683487571099655392794253369512233203048079862149204148818578496878023013288154626418657301052720820212927653587152047409487011035339900846171591486245931757009466198074920902954615255407970429063933070955717648185920871972393161542995037918682517543910617541683439026255230269194564466763358712366703157305975693905796238937236299992908339845860086357731787406980560560698065719907616533055132434619327445559290607179383308962723474302632236451154321930138323337549396550878521143319443836934144403192096267442536943420956487956326758335962343188565780458150568400286264134572833534290110298885591295450972897489137625588082362427180375595547285352262489872403605870619185793762483451675137552546791174708711173411704274247273178193425397817248292642685943123694700506496004141701901762636873950084497459516474655006701515995488621030191060247941429101380528150571989786686095033713321580190493433489449264688700550336220434711762035440487029528204874357324139127710822287319805953984567380608852187033875031848667454422401745848713072131089399081239495702999488750691206539323013489376917878844821390299838295726515542820272636813096200536243706827975053224586772202947321787358888159888374537785025518177151853265341720150293761849195492858029235486815187639396179061573652167469820500100014859026830325188497837467278116715468728354435570538312228600298047365389997431401222095377537560609917470941691400363164632720020255318102761332938190398610404863064759272965555491275521271513769605729665689065728546887325885797466386350954483873428578535310955935680864657483109830799035939193786051124215157308854521838968556567207734135653959918427562859684835151620072086526068779752384942478816382647773324881253030887486939042507771439881679242910397377959105656541220732122038684177629712373608876759293262772194894869430605506350273489426367380846661464907107770207260496122707591127576834643448423673119154340416750390389330507948445707528057044279098641409034174794545213905366045873534951282097855176361332250554065967751359470732644911313924649462034526996117279364726798173084303151401956623999403702735574640398272640796347630198802147459652369095244147328843294540781236348613655697348878715259306675944866492227398762342826551571693749851757115001154640094426051025298576847021081234465131048947233970895904675254786957377066000792124519669732431407235914657097991669313922404768113669988880141251642850282831223849721481901312933744559447406743121257670704390552371356666508905039201529249575005618522068672334973164304981950311483665219543937718189491297263770455841319317536129751213584307101791029892905171012072320431524235709526162624195293940160910021625204241202783282692972448764298059072806190365884434049212025732670682239161772505564124269943489271090666789067861858139692155911559683027882568218904619321814448554265648754395467964824980656277633274201229199341930845570670259230081075005557276571996050811531714885964522390835915234685425127100143869176905597762994083953727608134566336093504613286364298055325717514338977608130524552126860789528570609977526515232991622176477988668127295706677829382917887548978148493768680378931341894405203852999921844814479270436539847065916367430900541418991237935901818047654931526666086698056785778839932661008739145391701764301546330728144987768152273458223773691406634634723365483861368259394465009437995349227959228760388156791797032424369881105900740465089163502992652765033817271784025540870960993576241784471398289286506631930544146937316944455455214125099180273203956355620080358062881365283180351518692311799462925762204451722260629151984698527956861359130262943615252994414643403915955979212185144765684649387779318729830736524732922452752797253580070525911116702669868061356676100816732767166777653279169754524239013602117416325462586934595849372923736127163445442682111528910336974849719405796293025091723616715335030442767129184111524327074920091506235227025159989985746117310778322843924341923671436034701336682751745999662702021747710737594921507021143301530918477006886899908444704476657852873923078122490213857353128378486590895497753322815621417201632156953394791724374953984329219083150973100633068109550897710808215839276224045203688988173043923701576825323621114740509033695301741291272860787585611802803144924492370856336409026724716732370563687476133933490802100897187420268829461954984156214487837148711467290614654717394613149967895758316708149414875064473496108319108400147289983612110701230537385719859457064054739348857556465899629048667788695745030126662783971028601790315680208529429374877318032810582386772009320033488287602125837244532686035054945272675556940957352453178183914547698182364355132096575380121901497613991325701955345364744912085647925795149138790019135609714377259449814968959295381775925853905552442828905601559369492343842316940216834131677499580798634197048211551480022102979578052377061659740215815579822724907956962784825000710995842974379430669757484519625587947800344463736701838705452241528297356849797909516008694209102563769781920672417454369871112926748616875939216214485794265897402424427432857439562381259480271944995487593360102935127273783037173750386614129911821597336470559604136046139238663795616385119759408422816549598808532007660078598960068505781743942534611893292670547826801375554509637471672799952193874699916366874914302560683036804124094347618055439101017245676101350789371361621300934092631286313089086724132762782722300448310863673000524524404202454806048242460211290184296097549123931438694598608355957496839939432882397868457537676748471477434757371427528391152948137284498695475878039839620541024027303682287474805092784461678762953185043214883066548025024649926855365404851945624780317430312221749317420850277601755210388321578298810014168111246971388895074207838610958107748870072188786251242016443156704860359615584589530516681745332897071464642719515965557460784231808119073842284575140683711239259195518590559699337979365581064107667860912189717998745302843212691171076375406075352663992495107770625491726050671644167147894775137998178821044464228299212882644935102070208971852802289117455806369627388254253767619287087954757936422197102927798078523514188432927209748744647974697213557130407622593225487476686557944290025357044028892045165962202432309339242702464213861500091873295745764350964564803372580309094710787371649046158686734168904051237410181513625050543206849143307923573417907055062920827620899496632033863675668180474676983160343982811731956778179201175384452554860840664131781991010223309482214670401192259016582003562496197509993754896449705539735388964547422060464834117742424961770814083446222102288472460571806999650194971539848965145660016426451810038430260185333417464399892774657834611155381058179198122392425931102991144183609543865389356709374942732295592393840148653736816238807124274473629719957605927535637550131553168281996192345057524125430297454975295291426689973701247837321008397612199706849623409019702091369847927400312025709602797939158601759274268872463929257373665105323948719915291327876846515990866406203845553563844090984301055682644461311416108099776305988559840823531396799354968459069944426005202414792327547323507056708725089270511511612921306671433198032422170433025034715885442209810609381811675470495732282004206179630710046367146159324861117650581946497461615524327041029560951832890013947098326238718432563882116935691516603757526463249951276362292945682728887160774201096037186618071069222003494918297658105488177363403039029945261419774092007830976554605319296590211146241497751883128738899939567018305927648693292231907580282153634707450710214619119813253369190766986021845840119488950472653553083611457843501410180960106891713082580848694234055689853497836379520473303045208919787108832207948000888098768113099549186766850835944652832336182600461768462159698300356907853461598717697994201449097752463372587528668700473569518038805072949831842596892524534642994605864057762662585234198570702273365292273863750069013042524925190226992631110503125097596352603865334637103832659263802484482264555296087602346276733427222949823414307696421892674252245450997031843947498997146663271425634165519581621716803148428672170664456253327559229010942411233321541850799396535996764845987095471799720301900399277407616159849355017572666800383489809034474345900182602350063081330387810254000332781158490490739369268465189174992734767222328659082053767770028713891462642749839126648634429930306241143361579156411912250411957649775002988295868125606669789836453940491539383966185791139049221041867094191780896938478050468074410101069181734399642916223956287749998215903641342597338680273096679421578416565985585484155119322859575724832634656321742732490782984390695546444627799472876410560718625328045469724357203388694101152755912637396944240172749519403566471502368218049749832387136742944471892154634384861028641693046615431498211706434216191806352586487811374396228597216608435401294316168635796750445346579683847908436596539725958078611514794175950189763795163342580644462486815978415238005293669059253917624418146996619583783214520175711725956162907590495638759965456328845436816424507386827695256452082278087044449158724253084768469336409322059098584014117866433961331984941426026645179119407459418600381280173184933063111163402733224987699480372179467977502349727247014161854100128937565561163272011917195831268625133885573730035742001558066774789000206709992126231447972452831115846481454248403993426886947936684297234709717898757236499706973372731789980111750010434730897406478034960957584603217183563352283622743723207137707683607043183558379726249065472940578109082336865641882977515845574056263839044202319077254252561617569350908721484691766240823691426561741545485043802518802740768889337776508433641400928765288287873667161138429527505106865055481657001888921505237117845926512072517167714966842671361865329037392385203495120256812179937398961132223984013908749680418346952742310133726507618086321507769750377315845572742260459427794730446826436808940618604679492891982908348271610775297366525020153697621638181858813791998480007509267345027049761880225760328386892173208217912677594699464918889427986493967267216481319185164018155694926349302448762522801420546374290248231700700081385307966350831445848470657085434053554750534521081745172791180294569632627991564626609847360705058842004414079807974615288235457491068740831282637216483123755735499605408480545654206384241675572421300627120605104954789694072874290489496614879979277787813714186972247186999411446177734017002854585664849968089545617815544405317187815962373916117683536197074561915819913484611165411647311920928370825049966476630902331109169505913256376291396764891470914510751457478441038496997916295907595623052476084300239918669063277790439395983151803976099073290268991088162026205513655603842063458665704974462924560085551554875131400949961698344890778564081588199773403622009009780746233428897430839896855754687041188341485570135974196121975362270743759686499339237425932467410517854491952487506991822599842962303508555996189714474294028732498589545281547413145889802895290995606698823920585110594196781470605720941545544060593060243284235712084674148631057688764077562127472631032851040871986367989926434649813348883417536238526744730979681023827833877564512669027294378869237818906407961541944609616594852515304676538535914885873822067968692754031298263585035036292777163329193693193739677307327768250658247623858722030362876789705128021683399751061713462726120551403516715549706208970449621744071702810357528356651449534916475348676489910119658166841577293396391510597312448316638115095382134229720425354740420523946719739353420582237774208637275442659061063281542108514169183556166999752759774285990256448197634132547266388647506199762233818094375909267279212519891579450714204413294921232491289700849256432992717179301031403459848246133347023210509397129309269540577171542702001703515746654844253771505773445933270244993212988377735950179489588709546587402913355540909660769665349162190177170165280082567837602203332715295472113478067598552116154643642931959610563339534294066802101599608460438543718208704343736705936711744581115346662485877790817353062412014721706251107012858665405145106748912353047945713717457754936553753003024177494376604515667680201414914367782880364309694068560225083445399057124615215704638458867293133430473769601778191635370823041850620806069946668973691182793669726487518692725496364454991235820378383202797539581800418578259132106210098823683504314930372608836764751075090536763042062524934538744718048648952616983018058699209927162324294962239202006449764309635812505323240571830349104605325398828236170392001215162396962623899623450989360218209623930973006272264141342466326833475429869435942387543881599849374762032728283693233063643356342170135656440302706272559047897533755650710231850226398512543149464245253083400210923291078758955608428356525813551923519914902013721965718073602516237543057541986377469005255865550937063031169607333685295193068997406922145465287235120506382192931715120383148917299986703333993169011344034286162303275098507298838839901509088487827682359011462688655185038976717205050977760680951401221333887384407921298324491690172362013845369644877426198723835860745998403928409190829443391160453939541708223700513961269130556142568758518120582143542128587124249202318199355380010681989479273465992730240972014463396596046514560018712583415594136427342376707579266733253273256218539956587505333003616904845703632356122742901064418226152049964842138634539734951236689019168723915129364881937245369624237147398006201613057563700135107299572696106792481838447893641270902166417049886715847619600810860443709081906630053427727629753344358823824348784430192195515833727709392277511397552927533317433001649092474583458677228932312424224168599841410727027845347345464818279045710919500021663499033503045144736638214223665122330349162270422534718228185455267594448258651106053753604737125412413703178946592153998496039377520180860206789465118846965322220288699844996834240816578017577324663797769961726840001386046137488604284469842066734337493984644105069068488228440296235460488229583539138677014268994301091876443053380482850523086397928213683938465189112312573967791870821651081130878481187792730131786610468463045150184945688708112055681925740255532374925250920870049020187951830753967204819922164618368571951062713718022713717409037761393666904389075305781310166150528006118574470536802794869201329528646657211401712529384474618992159943408318374188231848192502698287422813559712337015227364633316720899464216642686791195572358865636928105226430559535381974370330712264976402572166053760161447520984357425233399639495980400606839663208626238703261057354963738021238406114381978218213357433892406818466781245339679737609576062721811510284325777892075019130448758500177644931600548477473053613178694111079118049966072572524604616024049125014624629732677786563538744973234694368528395011328090323119214250835957131808663947445828542764718799174254252459138615986032450059644524509445820828228580158322326103423201453717953576939222375580320500350566929714261631984133100359701070918518335697339612936855981144797250641800352441749902562437490321315028321612873558943981064885045799926453659330348662539747488326449714914258236021654993914619811033899199951805998815577280928623778602091877908892195895590666811150049859817701399353395218607633545075572027379812770679674241180243284150195474716688375376100545155657925957451161466700158723301319506675616277861702215218289235614781430291254920412245934350579590848009965848389137009649998124414366856728033954491742643394644585999285211587001380539606936832862390374028255646105574496114434544490372320953232517778437257734978339276273109329406731944180517839136049645863680817936862509405510527719039164656143719741953459845685950615882763345240813935325519230590593971773509845473903620948114520655735809071803785011391201359026494910970550478560234804156288958196697569279612935248390237924217322654846351738664680747461269251775497753866444495425005824261945763660825227413841403566188371897679386888940141933990806826242163002334010541499823979842025967645931466556525756596670103614560488170319273921319335961426590791006519016228470821696935795610580489712737083620465300050030499213292833958284278589283392133090265331228622934459632237107378463823693929002400711334143093383917466257107687151519749328846999192225161279270131562594623098847754185901267993318038941846747505500952572901508475796323601998616031253697895431090579043114235589170303196231455426159974762957990242947064559441271154187174246255251421167342339746516746210332482241529543364963628434464876982441352973422237013807200603770223247436863466064874006548404483123440404444498050810108517467602093311342886975896067382807386495857442401131009242711321265222475263915811820292609589894028256230138314527092689597179827729596756500961785448035791966328612110369005555356354193997782210840717042895637150711390287021647904098392808898751211416744112672803727777352943695245411149121925939659302193349336577105737853370370557003889006886079360980099445703661225117775496090221861163376489179924020278627830150200944088121122033626248212792634648024200570272902130715280238623798397587389807679639610881883270900268332993983343066614164828823095498649240677343878130294791201177331178800174496139230529032348175162673946244413422161921414940597574037278519468431896071452134455653884194955445778322193560965159518378872271684538492356065296053697266091501017947544896585077715992666593396033096963750419181200080460753810344539163643773251542174327045859793237992336919151884368762559210586150187957760998150314209684593117451156952871339272460970106928844067598544847439428429847987596354266654323489981209499497283062214607694890524145378466899826722433459486984597919449720291346093527601674073327517439812055422440402497327529136773942085143117922265748835967006519428830827938666187523580173118205968126294976061580110090871073821002679570582688801660294154371084677693065487225677159948519170701632245237216853191207013492514322083280157540746702938839061476457212905809832993248149991148308290205899528297203665991020851079472163481102783048058032701675259999205455520717097229539508270751185775944748332306600438425555065102127323730096839535471550309236067225876721544540836106333534111233041175577218060267524462015675354413403441874968692774781998627421992914156384590531149451527642510813446474030131994869910063477391837583347514551896147681410711397483616368357995913823683920642243045490636194725352558932727384168443787124310384176878870392565070879255326084251548218443837820624724044138081456851296594207624098923927404219820672030072463922218217623321044645099969980947119099020528478721653204205625777451802263093177327291277022511450124864547154637457384223499652137150811151449161941058011786292231012505039790989734188464008091801216549395715518678738872972263146384944667749690316363399887804590592099580330990547593140386853313796897918815262605345671076227692356072968833976172982427381378077404052902311873193584338257160952293607254211730682546927172372894423018955011341631277286400313105958145473555853387707836261717297308639790890147558956860409340609049863270553691876553481085005558802651187260575230929874026191554580766092305150675446714247270640037900485198409562257658118032875984101421150611171680937432637021906885628898479131971907655470249186441552987213121743500068742972603008166775197437652330880398358588547218152280311672172228310103755514333360512260061989144894141822604470791305913906334918051584151721808723273788173109672072750422974828886365393890771295133060930260852736939441364282515553576143751383602384150584887391762304867125510430628127795627444083662902202537892101352636306810274654687556446858917090800061028343833077680285219222992281633366425017232669763959339793454177981878984938802272527085154028564801726015965618241592818995508247305260629480964034326671200382735520314819223295941568675932354255404236974457479856116858973325301607103322023933619685275567390317531684789705692485628699953456034939683862242841296638820272293382487700381623171400195965498256861788219434291837639200311541698397026612732559532674267948532829535146385204848025963280289468289054374542674512933573990966109032845614508251394295843444556543848825895723146358263246081182349117366003095097642326932188563378122369526735317417295778790472629255160471962842579617629410162820636661520529886797208866103757609902448699111851803736749330463332336994698140737404961257258506337395087688761404382282113866998142273221387919922549351807032777200384967413242530289536796228550056238714350584603709453221888833810276077916951340017313878462941540428955299386152189606171284279577784427516605758775327389020010499326555826304251360422163751299309708187060659622023858677429759394976431016510648399331447468091511895776600378959587530595043807302492665390609127580839955121224208184461551914065195519596431459368682405665745838377258651767560495703141555048619890009860133553928908245155798059669194630803903003603702179192176609555748988675777834757239271268789828922872431941173405189937474272432865014557616649469421139144503608599417841657185092286591298182843688906942403258780026917022954318696134761343123763830187601071948294725741059362649252190358718537883879321436395528598822265622451066207177187807916587410944070784395174069650587682733852224072213662442337627288778276596287240675370588710567826023943387562189518323936641925210347843339019054163782295200773901142168826429015750250817657439392423175041257089386338864197892144003902895886949182099687529837275515859814585043513526355034449749569279365542922578832614624229313880424284689077859731945189146307172940454267444046970432467732009933050642167559418760042811109824097643317430617939926776349610653715649569494952267370355865606503949333837119828694114531687456329575090308805251962079783407967655952596053958497495001348931008383521592521987469376201496022073343519323426935377034838060670840177264111846663748798942744888611956111418091208836929398763911916510822453854798022649109755060986280973607249927064861740517806137593690456421511206604151970119484939307707532660999017737860554649397962537188975448594856083796843387368662405285241196007742796180917614274704748199200006643431556709430164712559372796153898028906933337054934033494947158518974205296536519651633800209229102754443994966139760758037683655248642048893136351727789522562120947873501753153972976827514671478067880851096569445253121123559899078299238571264646685645741423935545857561417354282447879600372884041436999926457756665487529125186891093561012812926223978546717252370876541203827006502816071236014336484056412411030819918481079307496121494163134118646892579897601145821062638234311400970069118176674654210850787951498501159185473367712828028441674864234335019007363462134429171437046772168363631900755782415338562236205609496698661119682289134912608394593939530156430565846405343600353592396609697071320582704387156060155358884433514313480389016019833074071992054270775399536481475011702329573408717441373509833220572211357044962300358399700461098074282615099403609409934144668368179952967039543930149479268573746429630468662427691346030140650433266364791215211783010312134372561179348422364079277894100327234084303727354340371853902967404945540578364619483007941037900581896662859723928555318737220128606632422362655259017899566421149317263284431588518385963063513438033152018928583582499662232167676701106881008355342632344440436053797556732119109541373771387115071496141144385221884927399297452184161960702371415679130760615783371599886236413929702896163433494485448949821646384935767185312016802894746717648339644094660027610868814976644436845612958264518544419989787351868603448210522492226299420494455665470096982130560093043987925843254010816868645003117608606944397876786299622216015731970765178579655702287603749825490444779417553515823603320290079666274119241799538360283977816971676558496606614429512414778186015636087865257258842782797180155832174763035856295611973426488761682441346874004918674426130727843268869669741981628313314969694351868078678046998711835562186584724893248056923572566108715955179166754844807341827760468831796032326959426470215387429761457571645323704425799987775367387206368700820949154916069898044859312097090585938116886653042729614243541968271875480305631902017036665514452601135167198360972065675070125405046972131261974408940518757800601715541698884818506417909489292932223318320682305350603596987014860876601260863493140432270383979518129775023240551348926726208641893021685175466987451492280498051393114234747504561152271909820506268431359879920484777259754840642543486038868187354766659478731465360555401137874900659835124096096428898291133493599501832456771391653870681186437288236061459343392761957233824715976254003839589808196846599101473415187836718507031033458695852209983872134391111260259750331496409886606084301071077365042761824216293889270043308468553998786489068578852520683349652156868103891655318204826327153488282396775613625806170915404052198998290054086121726986389690549934666145960714849638397784608829141422777652574487912956404507343319359255809250286357539151710759330231238209806063083458905501657579469549591869118421595887968380061683793619734912847959423157403411758388411191859571624327700677970642378034058408306437788804670302740446559508890544596458414298911143988583979696003297928388523411361016329164207235058636874892680174300489656705186829414337630653487346948256499833596862653609604378181158513304292515922906840517874426965471209147553964438780650994274028621359662643264893278100836267209614090075865472126506357086051982877113886712855330381483069373973565084156705898417587457727190238779832391520362722086339995268060716212352782408910948288906778101551253198277135920142229425081946026139743605972651014236650028909333410838737969943080396260678561348864260080483624872834238773271589022533912629664788669979757417697339692697460757002649958171215518315912476704918109875533148145140500572621010219042126823576649059366941009984544965317966810397678123148044815919426353116760806715690324315655890696039357579313996055658317078995022366323787729453844654052647070189602075183326192097653669238126478870361669135241048535710847070806128539047340641862647314274947532474359215427838868953916932632491516264267809687358227065808433283808581973887074588659839064373618008984572268852106091672172745019981894238338881709224498743928983711139827669750567705773000952868073552007637379447490023560843671284146975057883635165063287701015551644433353807188364748332509210638711405258697800910062136381946984952262473757280346243196045031289168846811351952752984996679690711042809462718990528307842436638722114898900921527890054478919442454317024883489392221432546663124658686103042312163807081422848283186943566091750152184518104974061458669353257498215316522100919837171415952067201778986148275664097212814666711999522947281197179082176604426442851105634105991021379678011725819542780638933156832228040071805209827055439563377116752492691708501837707395238655148753891326422382495343116929827755582959750102124888773970505141207632051652818403484798614347139216221793222250662267211407515202428852389938027562698476025071437322823029843554564548512727598975502121045426934188039093441929217481775823348425411045761665938006380556672740175992220888414856460017657063649730945609041384239528049866951794405134592477369931065693135908697558699111192602512274438428671501686317014759360241897784520723434163630396026725777279272319355618240487325913926060441168171604794786262116269272462143155544070889464991500992853209034692587823395144601045355869379121144571781075866605073310094649356997009215249981240770787524674516482685616551378212850345374122216443134654497484161939215368450019513592347399108008932154303210217425546815032116327170352693891690031778227283889307228987350034079507870711091644319306491951310321136273563825092559541035553596538115219587510583164653486247055252621035165071097346280713810405766955277322376121083694016795874595009378417090329845319656507672804528324245930846802938215953940970197381959219953617783267965539671165452896874250371019029490962634301198425338372126948017349665572429824145217308882116086038125414980284702199751418154411520234450945546109369881772100545926418007674708691430213116041912455916276978630836780579140108064117872516862423929154080936298066458305792331874391368437054697135788956163299658721559958896724676858061989287290847975401856052406819681528881977356929762525555952560093684910786086376464728042852450942193116271826595069997963266267457714809256140682733768717678103053240509181523074223790849192514689328482309478224027740096941258961403347029938656214367597414155145528610329370412361171238666514496556032381227320377226702807630814513258470336899873743472630582277103164722255166869745743893368084272014617986787337291683177816072543515361190265168428154709624975981059628376679243505717710261124192731842118659244492351208922306901777942640507394816152287077679322849242249810523927549035380708613790709555364288164864654867294055075050621035675693823213703893610275553319826847187159380105066602524188086346790141023790520889598967819246763617668234884710803794218986352484363490129691845992895611889250211368170283259197822951428367498409504050198131436628760700429158971078747067350241730756378679663608444748202326467552857870152881026172932411274331299634753745790670280739346378085837683490364186733181958050955988713438503185663974170254695621619258542198993236882021128241891671904323233446864500773507385186715118755372658255742649343018539921292434099242129262763765027544427090986198485749819521588841999567273973579286615002946988600299203710166637644243552249193357153857036528513998023659556922688142344342204949412905737425418098972440353929612586294943718971675743674945409900289488866315113305175250338054668695491704609086759874750419354856846758853682588473096671673117019021091281568875143326856473903091922110263806551973132671394170179858214739267622061396500658376956537390749828939766584075107388455681798975374057426007259489932095558973807804432226438232558261669830883757942592417705774224021640930417635598404905176148378556400305678540042553484235140425786476469187397508950853040800111139974482886131195528420215045276742093044211032932736922161915477631342550427062897993894579518850314115017557426013223447125573603425596400354879224140934928934204166386843329872426439230781224326726482346796006156974788213564441946741423924860916854357019171548288289370092317124718607813502923198805907439159727304096409318106021630423414010505916851919311642950417407511679154903085430791485285493429097245834800554079867004995504868722533597794664389977190065582536560832944185634515904201210270439870164698988352054688882371547302782853671499303574821898068292787999772430445048474440844630013384546366967337969214189456113802009297520260780494749346853317216839052631413484702788974898155004228254996258341284291670128092937315340560617454019697259983113017471519602434612084955459244803059123889523094475769712914333284809001912759520086190827220764422090586842506395610925333854785479102200703018426108391968914619447812091419301747944606485210993845501786425423084230234377688722609773429531644182063660901591693279647622864323578631643426884505429085389051927548862805461599162666005248832930156110917937981799038756293326171632100621570131717499218958794619546805409951047231919000377958617873135861452357358881696687461578684577903561179520550398889135570635618405628844832676908817555609778959401196591824409831669493190465551377186235934702416998361054973408912861549440575097870368255425742940690394795148029102085148220207345700160680774302369128969389776667634176647927306910901653023404351181013967269643967977509948602513585303653878040231472645954721858448734113819078160597047960241483104443895842844885670983667932032736549653809777162159268330207486466426525528719734673106026551082228774495468235797005814824412822855913861664025031875219008161046735731080982771694160646865385156859767784806011805593429999635911137981764172390377024932123222941363853704891752624757314821500035910711232582458958002304690315174970936872650013337056630616155674212381595227563345292706626584551569229416418833884491653247641005987677565305277183766120454619566766134663635985349582051853414591404868456980962759614401881532262935688402213847095142997894252184173957912762913877277249933602264886192454091761181127192890178765560874011652351587109233563135511596201502555563879363633317462846851270678627960486969987201327895197083065616117485500334284105207059483137658619363631709058906966961215289370385886794076223024887825017827454260959353283644962085999157516527905708199112099831460162235567530211915497367260926446428153976538139556808182679464853961165411837436084134118557198452946495701485142186129018214011960685817335458856459416554596782916443118096421916503510883362649235006173972595872540457560393874916324001887371548553827797920930614663284074571798376197246660861813137436663962959830469372931819863351555331082990080655983492532886334021041586719600575803907473329007775527276529523739904327584239046770836681877519556091047667347280762001766582935987266359329559589426540007825297080861714997053142941183175223606807355431364561900804339510198782744091640591924339241414801198006372867443377160282025855373593330946130072629786209845326809832009829720046573962523726619768925169722893734092463752046349145842705688054060436203991159338561069307473733879085291728240929285336117594219337371427833457340573785315586975268956115736267757420912477381095293630695887136785504704974551372585763195114803893642283157764255003304216607781179327762458497808789681157284849039957131021771558198227517908862096998172536027857284917534124295941756809122201780094943803523211254396696634748219943451900878428558434781118039246545429870818341764759333607248490254169473757096146306588260244117019952021487076953880398741917384921676395865261928670041575570970918761915986901241109330331660549031636129790897904269053738093941951535961621837437688508430647959001489553229749570344159374432009381966905725133697087963565822643762695483630367824374858825380702519762373738489863999012507474363897853356253453401806360886128464878120801902061495431226604805088813959668052179026112546129181625585864556244009403381745607150729302326005534883592701900255383701953007124329816069998497173683654452057680506972226533648353493497198738124768908388533410468701218258154409901103512448983214128365892288130715464723357331135811893239686888517212452861253272240299672991624107422497579647662863873315198239932783299937617060953535408953034744530655163653824817035645617716454125228215471957698168800122430440244028401040729717727010148434810051501878333978901634238840436190190772355702769405300871301500091584300357403886124881123156372048328131311170103636463274757676792614499192149025444745006440570247951142377122603600838246183216069326419109603699925631287227826602172703894363577524697940772766878310510357204980493216489927016944439784688021407601349369093427430365654948597027525514636972354893392744902684601165322473870360276768809158765641419949720985226294685847037612854938294503782962407149167471479082661614230596917529093916321823493417231334696814780744591754639231872946654626247980415028428719175710886077987877000800703122235298128057095404669661737618796865971750948826819171376385593181703537566786397987926028720089050010276909557928409338760694101699955246484630068113094313517613593004400379564912809516311915618086497548773431463499116532764432678337469564290119798512585441285671662549534485860910669000211170663332762084850917025769623805454506661352197836184639184542501950906161953212400911908557049109452909648722619534172449545352123629708592672713291209122765067289320670860609777912097351566441290469172650946968598248392439321485938830975048000738849678375121513291597441510388932577465963741347316717623113263192810337408809005889410933343868393463888564040050058609103025170175902883782863336938073407496821180861939210479518814160928348808072830439458409452195805778376889088459584738263322764050835501052814628990501017991949993230999258647668891173688927131480097437012749710852977508805067689821273679116141373017999929022011979348231404432090252782758368339339239974701926637462502930624215844505606646557073793757017131183737723278022927149416575468556973279204071872740880641950810494167308073962042174219255236794062084297353127727123891107193448128085467850782812048283804408506763161745254150087451899292142965346364632835239006952269039966800429134145895649122745357858180563787828430037257091639743235336239616819434264815090709349088672653446692628435560614769769541819431628906690186038256243610581330314843552027411630834896370385256034087788122908969190687107740271443619020093370852614023794498833265244439527535635718835072105662196208470620107388914662105486623249302518900134489741320692945253222711951772742823443908407000593211435110333396294158759283451567367237361031154473832661326982524496438026808231187843033106482618022093742781730529811951686734922999294823382347582887210309592455354576788105998356205287312434199532504835624737239285830472579510810039052775870470265458363200146489422249604900034125263105242150113376441592393313975173760547193585166829554536390009853771817359236863553478282130903396184333048781537138809434533813576827678920774704430376373164851733474343600335883597745407391554282093271729071630621276738494658727194164134953639528257404559874438323647298663101351782656779238802691042932864016885272247891364329640328029583446171971004834813926013060671390911531910911303447057010403282055031358243997931271208673299933103977405094780392506310876450875630115530542145735940288522365481866360434930725789884805444173688120123296866512188477946588867416028943790192883886837224022524292412232838842426721115209891240506839263479609573867116938998665202559159465161100892066099968877425031415730930183587137733063716952470515726281762537520663080085777718924345431297292829338801911903817591307989544041960136595676440295360193307617228565511975482885790864543255816820187864457557823654515925552959253014340121821684583628965480644335876590294982831822496293631882633837147719073767536157652958870979706094002441528610255414933849187336997358450372929540899182255822752133614977844303563178130662392604766000681693016506710962206157718085122917636923520669324834174468954408975808271075402590242468248121405129706362666111951310554814342760742794775306985575538673493667300993968830576710269669521578895282594868324259957290258107984573708534453783769127812237406186496690696901848258539362062293880868945264413105320588205228801385102842651955361549309430608707022427868836828397819607431687913786082188840620066324115975889195884445304986981802290650424304585020710935330105424955916435674577376491411565264111477528987682612502648352677781794717514970284987125279294197720181648840835213816472728834880315779746789933889806342380864480479545043639165573854047799203518191810963383414359989666103047779564809271118959946059222107271183742406846091192099860734523065361036794810792645797804936674380928775524182748174085098434306043024802535336886757868972512384626374237579197628393196918247223565658893584334187701914075774258695886284880353804384561057206908879190443286873153097264078311669411986552095910592464739759837994633103451631748952411897267211982735307012125515491582421029050354746570903719880843543663544943405571307042889065077200665937481335419383667645912445428283885579164854316530854631133611945672795034608646947014069327630832971855826859643848926493473095863871158786071560471034514345789310663826073625081649235458618125995610307806685813459824948401969155208712144350081052699495302886985985013067510235681732301032355031129694895854560712732108950922448223084465272090999079939626515868203228739620260359845440448192886786923699910122358882636933837798409722673351578067679517331884032805995938558006689055606229354182257720376925336719075420622614339991419652828253578523452592294710711143870881788780109103470938158053275427616182722100866299553315326956978824774359672034686459520479626806763011265464509071705375369914167461514244460154507476742249380263487228684554437257425656716269140698962132417381175032499672080289343933545694651817752086742089914823828390068555749225305751108450135556346793460872079164237905562359959994706067015520124718522208843107835783722855362994201020275346907555537791231980054183236354829433673769380945304681354899666374186747457922773097139944543365172516197972342800007240184505481012493127323785643707108782531900400905437533110510128469296009635073820445363012999539705473535718905330291740840696778425928643066257652293187448969281248613218259496312477966626269536568072436788667065140277203751439324785542854406659915047663626860002898388331570583394643285957151825332132139739646868501321691842336455348924542372597267264892026148810940651150113458663347049951734861037748348849075455359475688408491389216366172916526337062290238464855799608906306145802732969423577165396512250463314981449681572787746228151063618331854683073701531136868615810986022106237116901629928017796134948627018519892159869801479218869360435078412333209727670700139230825829390693684216747454463341648357508787207479871155646476953430394209185632440996313194416854314879819909929576506537304294363533148163567057992939580514279081026745457956210497223928960572254706002893322456887358200946698671709497173928538875575651945135286979081295607204596024756800623686433897560518814792777387862327255554909744667478646016543638135414793819747502924055548968339847220215646879481264151545030004990919492526956774987269754243887875028169462407073146367794992866457958632854467575461735000192637823972494219857012200054611362716384017014196912075687657569192471209493313732913431183769056652055831831574296546730976905609075174838105526682064410345848140708684447758572128949263103647927375378950127597693178756839389072989155259545507437887869517438040549806276551097825874628737639951576843027341593037095240147991118368749004104843824284173903952563735779801007011337134367057540101687823850345566035373933842296423881748505330128801494083348533585978507622648975463540684789355293307029003597483479263411714554677412680701653953450540961609279685346273730740604747600692448635720800082841689448476197767260043202591918605421741676940486073103282952751856769433444652116691767469053584943996571900238159468931259382639002390173574415134422261509292062438967726443206858522983226165493268101829382700093564186603598980923109834599595363432854806049935938306408894345287304415232419792107855993951752418701935959074622105586862671300318202994034012996342193676570518677441097389181421948208147278719324437140672497402057595504737877115334873602824202351817790799041256005812932297306780270064987209847575161192136092823764172305036266475735995115218980548587967851493747894554993153913287301421292976973936349864311189767821704645056877991753981680752249455010192927559100156437917237712159709243917624354691444030070884485837483572912857944385837558475132666106144383165399616061342880626006505229469224509501692936786313792062430396956934932681405940898263761945808148523039441452759298061978753259842123746033298691313343093936187423904585303784373296108381635342790545984700307153675168502851970361140884369701406369939654262298730722360715027942810730567536434863490292894423960102781147263865044859795620677163564344525638669821900570567304016211256577978776162104075615852791605793616941846271355039834683051164409664594434508830870575438760375322084819074011985932360401710620620631162991315988606518974164606040790238238463652256487419197778783373113759179510097277689898192022630856486779336163592712697173308518648128646517399680680546352919808348738225368929198968777170483577009144239524789079496947205812870376496582201490505490653706542905901364237654518059091416917762214600893174340601922507644659084415585287820609067061076439927427884339788797756892048766955365151811155505171750896297066492994571134498416822380476849910518467152872826094754298105247475937547614245583343045591912845346726012214666622310529538600923954150774769331076133882667434196553534576804683472032082019500335551262384347802255331662360449712804460041724093396632408914942112226598836248842473549632775355478400444827299891385272842299789585060474657744486622724585960226645418238657064520379839561817302365623348449295939836563680255405820156196887135079349075345977908388295059087300737677448386690987119819061841164194081802285371871638101348040107325194530522690503831590922121942543846413606318568070539986453895499015271764803544459737700211525056951952779010898539687338638086246334687398297599378175714772421629819844307328347127353493494897225420179592151040535426161276537325221298844864425338507192286753508990277481457264953170654509966554851486488316909767560297402191340669166595467370726430639564270414410606727373823087554342974294066654564685463102498738121044904705381474178896395861047646986478042829975893772342163554744399877784632166179102160005006230258093304627965833903860357264581993507283573708718547789395229616203199808261571129421423867035411203747635145083159545702849440101799206132046143218689707540191331533559588171678492186592973723418562497004568833894712481993764802150844656499745272287845226249523281361110682364185134691065223823971896595826358578309670208710935685811082945890448429829609124699698626786861349764228437968436416724102885202912211405576442310118028464034294755929399610887220738497683516986780767115556123899896829844181875653061336219865924450614398294316365114772122219602239631911140892186508971123507183674138143989980446398176086886194724598953720563335708545637152131639593781956606741507048336895872550885543259702260505833451192981397645928351497032660597855052162640568662657437269007850296406306941079144489781880744677408545641603157947016832455755737682637157632179369193530704591039160590416217416012027681367097397463073800837569801396800741873089677324958421994363488029599281195720759880308500357430871055341372679210356775196662779526323074483537659480475340436310486883971833036804773868063929718825494681758001266391396170720645616878487685389683828386774344830157112357418272175847023114096922607430037310271359853581123125571550120945266920202596943786403059675345537011704224867912286195370769644879779629995626119347577351240896701362192596229187265829241232252262407414066020082693906250699660218204707767507843772573475562972654041811728389183689138182916369761064266526717810748907582646168055578164477001813166409805657965586192010481353428700601816635433260996720072919642792373942365988598252766801084234129138432860829301074068831609976299659861342551874987964699869340469070017194400305284265883533543107504826854015182688405535551821626944407984195158342110343123478548744559495049345087741167198346888974325720664103252345429868782886821997001120991463688410637177850409525699734712883471000414765092769030982912370687238020379817934724395832883240746897814782539213993175022411811005670875497903114262687817748761427222044996605420809137780817253248210555077687676822645589286839267541452625391390208669573107193627919767363586008437162113349687620774051439394030625795277152237302303903436492835581129214288705617504679690386937002698878772208411905276478615595403212513305310908427013773744419900186097564749531064800940809179177942957081504707171684161410909594562350733279879683908167797058557996861224825849391830573717226275897854404178439379934298669307611477070170116317460790279504904937000806765513079635317848365370697940002281763546526938883642073464731119612865791472174913298643517886133388542863327047217267128610114361263789505658657075375492762732589482662243502171375497705354956951192974458792603145861014484969058533521957412155358411087637229510161905712388019695024898427704348994585369117014541679887018442652055695263352983347412980820224096169683644958730870247239842964820175054023827525582509266322407853418591193497916705002998714369348424942433022076971028179374833862611922305369105977381833521149569426624070677246203851718599124590586297284652893459810040712705356487732587291296797497379897498512389286073143831778809011021097760915788710104449152865904251734331216697259451092702536022706803890689596321197803912329349497117227026925228818130913501711092389732964170338646918420136010254625379695823981642173214300881796413745334575903874642839806196767748017138440944666405636573332701405181518799075959217643790082464045795198674249609414737904370484478410135276389512403558844789482842785962462824599530751339641984755146152364523244188908532502811097997061240336723194051418953268901242312500940498763790986731726162635312903808289213258910008557845061150953542132651880337087510718357274516350114474533184356624775665787369478550103155382650256426240316720025914379180448942140643282902689847783351251236083342247865446940392800673144097927681153898969922263849341716394734860765411136630321441222599259174648965001757179247290868338541521483902305054070691503257657584107487681704553838302397559270238514995111619000875064895793942301386169365153885023063429236346304911406273091182918707789224814754631993302665867787488556346957806839317100311464215962436223658724922066175667400539394046564384920205701737556888561860565451096515784845189692840285539060481611669567180861673133720557409570136223083740864726746586544469423220583712524484434501082589767810560833175580555602976379853485224163224567318013787076726995397242558059881775349603016595406146382349688510143128547806764128058065082334648979875471176801260002268190828595257676661655462746358504567228372850675724234672648150818467564791336561979220596530662978609724023767851895360539142353952591265296209293008023926911028684590551053198183948440018019279810664003837783195252669895959515226362867417629435178493189180495225800953351559392367691158140686102690788679182205588085136226882273790884006112149725805237904472032490763343357049716369580736502300546096722387303825710100221552232510916852155357394713364830316031266385421195729376814805046601038103394729354111202207831916559379936304463830713378670373757297496457201366088827781713528030284656505201594418092679106982404724515284692913006021166854054372275716479125083442082224431926358161936132681328252694851133025222424495283730189331020050795309692747640419328775731712131695837072251295897098047583946009812137776416880250487048416179136405534064708399331186860386616064838506669798412007018975032704989427204469208302921685890808166416002098897892493216381766401537373583586459254621971264964754043419324858229486610852672382976986697024727897000835670966686406519428546748113678228804178798953557549879969903268584927610070986872479647270881098116007083716017842715361103551057050241129087582214355717332529049288293513493859459924585862903476681809332825076211256228174765594705173393141957927739946910254601121592888517822412102846577597312288741742907059790121782141657493159379843361627318795685149355619329556754779570236718340721567873494894474191878182928105725205389519070576689779266949764494836008034242281423596041850852659941353586278820502557379015111957160765941517874419579021333509283036705091871060971578841106950398230254246619824433270567901971482837045986932561969705878447191155307502211609571733141027938588375693619633819243746643311884233997852200764720681511452815476939385364140768844710008111984652268274550331889845222855232266831741365462378342066360726823709684366680887679195817994798443996966495800538819366509553153858700025862667560236132320434707111263353960651059086769444127797781627731096230739556896380581999697691110813467048551064767458162644148570572544648624518082632584778352233458052158485281594778819891373284796261358244269641481418336443605312464829776885512901324365876485508264034991159738216492165460516895325036712598582336439204504691052288732947261863381171890691528400341190839287316561789817532357923469510258899385685973809446546537656032282932954950908713594973248669635403191515178024219243595979341591969336432057398001964414547065691033785434083923934831427004014235136215493820551174280628355514301539866601787392054371790006924772430860553985829567749046272928998911777325316621421601732071484085232027046520779601953765556289000525134613824573336682394754905320491996466933933553065753122774872214419427575109505638368051302579981856456476942787469177187107349911823347223705830312543713369220247332219186422983494038514305091739767467376173620900684290187499693446841349460483535297258653673148185777803328187829221453134574596321316889698317198550961877305274348236873027305482264521067921870107612757700202001825121509286059323391778116560628901430102734764204670189009353042023966511615406041349344666504521505211985097131400163808559984666962785160943683330318808230132455373659207851040255287786445058127925229850435468935720675142427654412981300827067000824977846946002319418370047091863570460440775367516456511824643149622931647563561438688012423857764106863403286189610103854573290116098408456322311024794501273026325601710797536272379968544411734776823184164169172744694597409980873883250128305854956497618898533610359677531871648797982980349781072133257178375563489342965793786004899431203784932434642868889604780686543479907472039441774670788753783546525925436708247329895288760510141571677839433526089495837324006829053979982137889581542574746642409817323579527266159628342936751658128797686194168048947674218612282177432201239920965961953049137237530143812161535218114494473604971774872861498198226487454684401598988988097699511549222459643965144923642957523454857821419558992121328049178914787067996608486788446548467559698729895426301695389099756394250139813587118669880885570249178709318743710210420027464208875295795280324894571172516932757966087892981497527708239359229688708532384512998248459439511450128794079884978134092062026489550317361282436035085082614118658627850427632346141471858993040100611156681374577873555427486875798768560182645047685974834174618142475472252301796155444186577286905340689915251682652311363928592368503264778927615933213097500303874359941473132211063255318594524167139722961894135000627452759003920916276150175375164759639883938178792776135423752583797756581526790145972665113187261121499491125381888297398465761700817523070704781482622585760160502911866091001237162808684840922997463427285786632733169835851455970235735083147959471173382351814882093794896734525280515688708174610748512541569625756128456119667319038188283067269263798659811967839782778263279048083312721914009500657031910331681766532505346557858417667843149224654648137990324957632777444416253982290818758137139061032798174831177259599162084232091375393940141613100809591314212748484564076433910412987462843324871828226436334696210648527817995600449123630778826451131695648190357557085614116455367742780050005538798211962454674660583707728069560115422015031217189613115253670719771770048886817489858256243438996255453494561880107982505849828007426546668190616025841714556489901106769660157658709266494900769797350656405010296288427384392196682415102713115750547066876008901085539853963774184301591408026763366847934463339705433378359813375015873976407234867948875236818561262654384341115618510566795795962158808623353839506780100153475347038208919797781798854655160990958033415850925276726619616298279833377970052719369979231211450895020713258496966517564407907003608032762378532619157309090184520220875599290297636203435400951902789979922801928644675701227267775232577652430152070750751109237838629043572488969032940566205307135852364401765748965831039297980939475683194744620017667258409020099985289044514483624579086391034363557978759339994514037644089545382777120623116755381610575743852704098594125516348934305755775656033617344233616671252439459841046831349103512811801219837346604662993415915951644076648775643192668912009306206662950946288050926235341419696360351751413019300143048621337125530909608386900066058481782766473314806856570402301951416095713243577412477063827787545793605049558683289324460935691792160716028680069557290915923321691820799328315946400029821962701020845672691342840032287817526179408017419604653943578421712942985888926835275064265753892458395397692401209976919184822733953921631591409235566855371054825818941584333191604536493820645312107420130780650029912755736304089147167051416967459322640437552569182421476405311475233213077786248785428133553184803693917469389164099859858272143665982113800428689036308003482051480075116277934432634770294976692494599055361695414468413912872860218575786139296972953720072236218328466734672563533793332026003986599527341248713436230401724408922132061979640384001982398466190345070825486178271525827390970560887785157779532053783321850064922015391066870292590055210114102997567444731328937388786290446235904558719716223095432711217988137974166520505175190221155366445734247364018425688780228302769589645232563408125110540063513093719040816485991888808243713071490129855918237636376759776923206034091155695008301399222403289348565132385120567765592704651428020724253792100479936596458834718627561311452644212079156746188809996445700289452231237209593597616087993271860877576990343930373085635875190236108421450356924358433648567002183710415793128841037398971778571323427926130121322225622586213989913912628101248277576816647254820250342221347209649740013456519209350506849961764410191988473180925419955379789003902997728173672803808438173815793374129573976924320407589822017944609515533648905930177951070789165987117177418765886860965286704728086337258681981965812395044371567368056513708167088869297581309159798601423425468735332837822812668751743727837294964248535143644148133239864343830817221287936428170482686299181635969139672145982424276768143423251569504020314179322143556479743038056363263156119685318354606763510936983053402580492578563920176563776196738598260464410749597227353797748171002757823438787441257547915135475249828760952516727496120576961505655548807572448608640735996319263118740080895901232779927757794891612516028300859668792495480713565213363969850928859929668247605766256419183664078529046661439772379765023005489054927351342192454101951811911730571026106573965243482242903693495032832322377304147956333799538462242401025222401714387985542101654581172303792097215986309776918220245856759424865697460289338163921020814322894089572606765081039109293954004624532255385885865902386081858281316870905172698880616970179793766131536556645495379301853107341192411324881717867255174775385613154040415891686180844467656253047481161298607297316464344662380517067927629944062067493683135995316402614163652046174019393362601940693900488557033984096510877545856750513581974435629870591740957873159344821499302345980815099606343247377914842291102036281287600051367541395834192300680777398055096687983025487457917317340278893661620867934850910809626104923912557017224718656736866585034613708064565518888612797895458065692003938692485917238197576160295057962141138439734108899013780764614397197726730348608360316823459190569771220135897812964522716163328272407390229457525419442034985136905589586481716676382775562413070873272857507347674544037041838102115455320174926801355588289714996668531492402403330425235381927141317243924927685928503289910504939295921185351865884022846716052174170344664588935367739494961571091267087407712732756791211239401610317932843859531045720597380404470103932644914407749386853684577136458778349936980656112846010437904818082198024384965347087023494712199826701331766934448279122796612608379025119052085293030868173083365401839536312526711784508941627010787225853417528144495277695765321221296955549203854320081194695392238943912119376413064169936310205577730207393173542477189619187743773707998091582913701418801999601531939581938238964790455517407704266439735581215488572063113336667122595359358374702004218903976998894556085447101362768953009321636053747259157461898359249305382548094443118567271581164326788445748224382715039765434207533965229308668016399310930283814990545892394061786044879810372099435861618062915351292652206882351438393180561192120268893925441189452019923085251887057704295509393348792556325415257108753703677350440165725655683615222521095976566307736385961368274060280028480166418189914543230759486244688967628939522055864399342598584117305936397413845139172546568748047311293916180342740284201477638631547539035336846291374880084651955411098862255539610146663910579705851794982504046625338202880069710002189851135428034572763207386570977667005976033551268768677467957329016688795430271521851128585779027142818752460404873733580710695258547926690306223968650465629097046145280467846685035202408698787575526394987552704815249302873052153514806372425124365479794844755718101356723331472613757911828106463365117649658161136797276741776924230876041071273903182235205219403413008415748947601748841894350109489641381361873925730309376888112621448556969427326430681336736153690137080436410685618913466075551897082157213307419322655874142679252336154507270273823256090298612061085513093648641458025051322289832996045689633615297770312853362309751126962334344287083466841842109160255888271497877625059285598982365827527495064916688571316555144527992026402628396075902801551350873511249007351480269481692855442326541898584944903829483723446784149939803283181186565663939521202923208521170730268052185683178047818343419227094617897734810563430346925365163083670361427237098884956115297744959462461421030413229556760618805321403992177678484040261679994889357071496492595056713793904696235027104184510410293380727917221867244612761224038088002681270518325864057464543022887198911892033692771467556354208129000327860865517674877729638135168742784311712715370523278333679052499361873450538580329550578179411618754503281143697047153394303449180587228389552818032893182697358418034741733151528447644761580762835386971513120797095587069018781345954594587777211773911405599768051750429138814605995293160031245877971500281099912482745604936732080784566046686446602025617809336826373770987873355951133577973039982019555086902503671398852236679361275610909872880128248036141354226020484636139951604041505630042248137980907272248487980945220266769900553267107946000257247047969756912192489984678779656322130563388225263736740141399711372464612646057238630200183533854589709099024679377770043205659870271317060522935508737846921760495991383095303620967509177552285022698030808253434442540153821682119116930761307722438066961877174880825690006219135932793946504792261802610234336585327709064875293958550695307570238591547181213928531426776105816909206356643211164940211999565541074057130225670803302795739348852019099380809522040397149532024139859114057010130292693580723951972704594416271517427895240925789475129288554461717321207293385419540841387258781650018379612775269916753593665038052546920636979822922524292642681091712022082589372554626787110576813383372670423797087494339909004173183839980107061823991393065048099098054675588662913837308937817731129074303607404602599436078312965180031832643111774492308091297950792325289398550247218218169347561938300063328672757886835769658222844936844764300402080927625791836823614019510911386356131124073538942990154637022125922643312645856953532709743246392401613345650581095380001057892670280092617345844760419852082204705398340313431995634145631193084275180456829394179786477594568251365729231973834513525190660089684507468354370318409797555141200251864235350200098306229610945131813827673089467030342278508950957029309891995909961634324935288056560972953500394341047270377363752509533779735670765772324066818388340109238171823058712856199098422137864630256768079227721818323948416079044287159483829403070235128108247873840672346164266187801709428733128056979575626224705128377974381268547091153337263025710016228928153262809287461126619808390271580560561378053607960417761622396738637665823006081786874093352388155111100772628542773016886688541450021233795332658230979280988750805035103588955746798160849091970345591338399450749382723391778687334007358710571557499160182678443270134576694102624954088678694030942626191389232363698843259602235978444034650185653588755295392373368454859533795472310007492238386098442063608578978214998310354810827903003688721352995450715724654571069616883129874769745680142877109364572921997471458394914171677445398550508601389110894965123183918953538392599139970188381006665934320548597234976905459567166697054860119592440270147272189335169522742100186943669813835860563102876140886975549302666755254542698065211465078048983500497246784785502021069806864334752107623756357877746966134501471606068386784054639333223547436087531969564099133781168089075243554932810713872211583489302794969373180306547586512707439696135565782872122353997886959886431925842875992667597657255693605117093893519450152769242319425783995123127335759678668276618202205877986200934963719416717006860757070332721060649837905740452412803653616846635021385300425372086697343257847510982726831597149351337497195634766004590744129115079460827136897788672091820261301318539490085291913033508224063567526882997315256162337061047081345354056662056903124330378736300761922810940124644210634741288038463994987553832885343075734167929717344202592545085848874425794203876750888426966723179109580383882595697549565162750024485664460376230543253520605678475597881985951647798398878565605444074591343492323911529700302431277892321193549232542367746233324108271493266831453350412091142914995638180592510002426369440693742204782470960636261302083526429387551724014183707394748046192680096867363516552640444424977053735514751166318120616719431166005634682493817047040586656769481408245045442035972825723783157358079172213756843892457349887683610999429354391178290945097397061194096496079510907860951805201591362217233866912269747991959196410963822847585956501506682479206701711428903155296908376162349590329076410386628496068676453150729519946506743569204032521581881684148098457872251783422858512466879586488753828946598334395403402697833024213535075272360716768377655323395266880848106567081587705339800698087407577221460455730667012843805470140552211360293401655876764385240275468571669911316277729682233793452614428456678490237850741895913068753155964351614388551821334362087516622607678886110650884093758570442217466748508652086349482585065192778139546179039501561361053895050162970070140773216421993759537898795007425894363410261385453109146170992905436112159265894437020089609976910305575906707232580990474024380389855044891525267921913102894910632582565065091087848588797820991727780833149950609592571256160312825249363412232185804215751574360261371494884773515931584750198224953289618546875422642465265102221183010725842352307132847491006713116224234147250510156301866547354825539080716176572517480196940084827056162201603248410715013501042063745289856640228171313052349338292776382046817624562149916508232736717536265623409957976383596933181131875236883260494956856282880354862427967965872445373745746586721839304368348569634871035590988343597749276264068458022792824069108760799302489162925274668272308048442963539606697386382115922510649664361851505125281364768060030579204387948046761306449189343420215839700779877276439533805521120398508589135306252135984839001515816794643477321494161363589377706320995613627126964975944456397527650621329906204558006641452924874569905468535576554472118367055161986787419383763125647672324290588416616288835339331045498378887616165181391932428935258945074944281292588534249173651116423711101215146328825793249231957253961126714631912542378202473953438474498927644255409827848175743519685023631603992934622457013966963181540328903848069645974590867442973047523442043337820111150788022418980573650759646195203348003300411235092700345480124632144308029712476856663314092656766864048805637550855477227503487603672635705508647014846645142305240139918908653357637080246461208004467040946160373643663598946861047839383817505246158677537793858078270278083792206112268405275887993574132268948587354186881942236920813323381949748623266522485401375554288163463842077769349522786816223148956487562219991106268093659977492946878793977271028692160265458072427226070502326139086764728469483847559914231816350994317804660668583574295826664677182877187017676513193561851150258075788661541868352046628614885012693534844016096846123400711010086680957842162442838996977063796792723981611171495337553982258495223094920361066178474543788881716724990803964574053502871653107322109026124429162345629597218263488979659788597873792296376662492300178663684176093631526197987532456869131678317789527220895399514401905607623067984963181425564577646875068564447895293801268634697358087247193838238114229951395387922173067038537371761676946938170269337426161513469956690041475341143625953401023532981661412024591803868441209852348601631196722524299739437946891563022748906889177150548554224341286442543868054101061879447610720094993739025604131911991243910974460128054428402960099412078161536671923111902325843998678744012121955544872908816153384913928461191734910291366930661235327082494021196363453925843931693276764552946474600220233031433838384080730918366175933739555819166313239632386066499822549069063453886352348017640007693114822973923996262174535456619976560400073588724141658673642361977825144126953238924270243810821799596487184985910527123105191722442035635115317956815030919931925030218870835237118564073281857282615646212062823078883965652500037517021628038105572108475143156001585544693116263478140810559670570183799324530595501318070161934109515632590712041251870056992639880849407726746155919417025783055974515404132781847620019655464846720145727466238776305726712375704523994985245417889967682285405764654707373019323400138955799949297398085255047889962894684192701857389725718970193670456855191587854895862474572961879244572204085984577159113678662607947674138485395343241457566522295822074124404648437534941425339084262860721886137720029990953832237085142371124140896714146519000377199778482418361530291913343091077779550440474068468845366890391975951580099793050579283864453882081296141038873779761081426777887564614700158519204900570271909096438568369131092271164016272927156677568565393231852562712547798316993485490871992139332406212885328509331629866312806771529862065685077991960517523427316535199511633179920281315621819403428437197011797668180851249956811285443970567749057756910646692576249746725902687828533866494059459292867964599252465208601098213019145712723849998786789935003846988871680429859015923353433320227849356854936416908198693728350227583135184282317642434294654815577087175784204661552736324089408193604886143811022576192820329112786056744691365193687256613286710990810341047561794926328523101259705791355433364802597681275098756009895851220376963037552654313268166039326231461135915152087118539733661112490526594238470763641069445897467182027273670999288078834862729165838633900833211991803433769102786385156596822509151419319361511507652348507875023662245209191658742178430039710799926634106284142745229592103321974424624773118182180284301825697698886140478184688124541244571777395100782148557558541801013148337399749081327663583978222299651315995002937495389920665615148986124870221305374369527114656950860519286797992476238501057990648339471372618641466020711562278478548940583872981248266509727528229686458084224213369446406947537139102502306699551518055562116178147269400241051520999144358746420169429627093666105975257054021315953007727245490375189736290109830342059095357052636837904870989599716234706979766791482297538099169261531133249265900062788263738604362619124021923949976605382870981854656339156737285729667792658157593805734112475303925686223965993355007434634208636421466218935405885437359029877660391327974602261117539411501582769663871813050118563676540276198889525889712666379226607927290803918935990986305365423109008547248500449630878081657370307883765766386551578456121570793591351383996016972991915123936693473252827408640284267297259133729233130513195452597869449887194394905004090880071725271091440168859168886593171809357712941284063885181345124866862947679109908478141236776491221811403098632769701517408050125055357910608697645269174319204804776446171010251726825847896391695792873660032730059569539948204396621999115384207827958389825495229217905074795783813286015408080579025831455885046270661970872606965369890400413819681252884893143594008473181993137033673633675249546561411016416477843454373655850651277435796835845742930844263985045239323340299866760419623146172929235056329422226243132881662305534809344665693541016309930705748027622885939577739376392396902282644040877031150142916896498852461414458820462346963566791811813385039836431478289230865581638909348768398668042099913258095089273539268407792075584167796256617652716103309767771423139194680503256116641161567149283629492593246949133580131283767948068771849385294691765912627258994669124884704017789582068094956515747119747074109372776394863897643799071432890957016864462389942387404457845526400035602071786245697083310607212481943629176971860391906745517804190760029887869338741725960249275980241344786287665804016740519040836561853482751860358934267546226759248731778003682147567713558773945631933054311109393839324505833768464963933625514024001644107969209219223173041881172306931431218144334872274375253292107028049700726986021673658230399716337889755146151407351400542554266139227672364881187213804234736500964125310253916765723281881086396374834587323580345672453304127695748614557817982951364996901308477925440655977836075223733925012642608983852247427657619936094692768582282888716078053486221021296204314130972029438607562383512775297933958240102837222742623721385337416076318533245246030318034643157945370102580387958516959759728086495062646776535087023208089051854045054609698147685784021777537622925983987227292565839270129569925065709660726138708445842242084609174254268271014016452834786626797549218124592983454512917967117439411445362769547047254170050307238846592836523482090792933390855677704270758011664599860272833986539437779144724609358991192049100482239271760903936872127396821774743604160771500391180743880639917845071169869924100898441176468276929405209238717564059889903158908567558578359466337415167295606345398144523139314150323370000795224862328753191015878492661134068689603799503495482629805742846761165375369393558964707660322328489470250352985891553436376207049477666895350011008020364807390227995530708327984790916880759111008768962552078381077251016004943035226686527281896373980130646270605436556890821181327801479749515712791615343579340132377958377300223225007981214389517814183732851428354449222118494362132394890245548383401004019965504379723945171030321087670023562004560552742379687615415999586035783221687322986344789885634195467575715165459713581547096305193660075793655414334548555308139583586794306590850660458651780488101984997389090042361045961413861929801114213396909115158566282659260432153934100801853536664033233271084389715656714776975715020014445121172727948511366618193243729699814693092008386064126756011416893665065900126654510543868999323918467800033309834373414242036156045539574278847048779456544287438882715276089506279560353530415358468674772646306042046428449880626329602086718304795101673960660266336031296454666477271469181763916012401776180342811531109545261872960842780676843012100261849556161336884751564581478383766027355030841166710392428917027625700102805008271987493727534369799387107228131192717906236782826350941604562133746854252552299839825294567825961554284856355859606992989466553163070799811399012859388782197276382006391112854965410339921382464795297750416082693837400279672787831039230446649515278783551134323153984438725084805704437568956957428222679937194097628299493965823842699158770539790198884684118494980125521344929449397222967011525876691508355798802599112604578027129439248785096746472542091780012197890919072313201837125580517299826467715086047608870999749170391109124658573471834591268488014743458042435091364126485007997291792476733084957259756107778739936287416824545497696134298611988735362308018342233799914739665296216760449900076710166632609521666753160817065633415992011124257355023221307780193480605109301705873205007944584429355930334117281373232692503926813514549853066503807827711980877984273692127479228007519928107189252080329581282505836837651259222971665082772568663639609655686446934456520371434747908651434511016288473149769261286508207220480658672346835760415000981251962655129079984563720607604695492894928751303035277322384616149057426815598864766948941313495955239126666169188533437880589630599979603208524685762185343970579899191050612075973415504054814449795276365142115944590162980861253721396507843597468293295777771665457968583662900276013129406252990690142548534528151395835774899801813826984322417264249389890173033575225899697769663911296049998028260023367613541558004123253472707747733114951730993510254366471820072451322172171128319698143907552581022345760644078880149476059919249594661733290279729959358144997622846281887730010736853523080714996356874542033031429625803192751477933695067446326261674734890725774168794268351857673293681955707690491184759419446403601773062846817624986775263960780763060051808182175985665334931020943606401643138984698530773535399159030192317051001767360803913075123488898626436096056433529458556749487403936108703312827042232200467422801530457990058594559835241709491665226798105055288946764039793739681922349949595641236114288872419584796261728992820343031833574223690421590504154351809192637431165003062577090131154789218138018068986590179900205457991821670865761303279875265360286023623213511428496342276166350840355358261811946696882440124598354409146904796957860660306972618214480200443095078797766078750715382824374606564451180137518449634385578587667101613179238506062224231903057412471184903459854064462344529206257655727632625342793081115080063767055961152004182218286462462967584212321143523451755663429053582462491535843032194689989356311622312474830295892762025122474729172455646120968449797727096665306341923620064571375735487821646795808182203595669314592020154483510803628186518122449325900685344929674659087396013200055964107259078557551260626077418368386196499468381937035223676405214957104116020465144448225579472975931781211168382076263235194670260229967951301373384027826774378350978330168388244722871429516361565925420786994521337248930084696117667033440197299547793455668966776868945948331405788456011961636292582089406648056676327279536966243799831618873680748197169131375705326603129855869670545843648925636198460697606322482279103605740524239207072488102304561788996746287511229590598763140923521264141068037360793532409626618934656057038457415683296676833992782116125350580625349251690462492173770304050164178257545877274856971123339868218821102992637157111394099020794224447405893334691187234616108848835650446435427305424707919152150499974008135728947932498548130901987671093482942236030573749447602185710130361559755022918713964151272779647463490081471695273530287243508531434380842423193646221835756526621058409433673904363954648375817084674688737574215575843566406623218416783595732533443783415304095341815621574207576407383172647764242803943953031654089788942616454099939735758574005180282954939366955219858359927336949004962401621270929781887153920186267242072049358212846296607882399444103001339204807353460491405013118117399173272148478812568700380307874580845827716771589217181858208285231505368537749563434088724234392588122553696197413690149552456933201512349235436319209277444478874674646632025226723042715452326511301992900206203373734262019701687413603349976807340463537883908005133612067075994773568830752623505043460154496374484940897078622104211341210404700948559569217199510724915033925460754031427249515379672410341737357587606652417323287005329810125709520202654272862924280923261703559004059295093589716717611661286771400000941663973164082927757441001641616612132819316766232638951950846163540062437741867643869207704640663333975068455594617801413455908403967588053006708607051490167185510505071929003613595983768822477601348003723864413889991050485127228450138899058347598510004289136807437103741795669257220390867853359517138117842965299301123168140236921488678933821947297679490771596043403244079743935549451025036091966668760638873666107033168639812003149391942745298239646035128810103791031846998919180044904892512538782509044513809166427151610868679944972052367678050173597020553979077992774890521674934734797334443338294225154505034721635410598180866164223323316791281699684033190582402181343676615491686073032045235568721183601342902784388024600490721687159651502781376594630732446357236454068466472542651892903689665701985251844676899187482121345803744219793251741844686131333863820954020503675568275716511089776012958515793848429462715120216902086973665991811202897004616810407182429520533932901498075876523490134580289487317396823849203329318255502946703386718540359965877581525670804361212399830944228944226758091732512089768295467731353110383046318736689444504172915354364167122084743605996834283065357922488854312278406909883164649805365772181399433086027052647048074457466151989930022962725794814753841189875064432711478533728420419181530475918620687586038006713214924658734105941712639638042729172857682556094874470353129726155400775655216044831510724412047705582077210755096398651693856976122432803781715545567405712860241527377378115239720051934719946617107833153980979822707125228573886280240259346918302413736398982410555879806446301201951831339132925722363476307353716765811924801908036048976037222537075719544865581881736641621991795909441433887707084884037820143400384094070333529871616372720989742841614223531263024133508716551199897603997292600449948042991624145577136015298751048835941266910474122310860509361702816681078794131505774094298277942659164187370927305871470111358317993904206112822240241684707189110450260710270084888668781264425758781247600549839980045076797220316336949673593563742177532935713282217141964164796602036122034034303225458596138702376175697088455070336368389370672849570922843320060452255007984999078352872675438833134523290444520530377673396712470815077810947229018359525591175472671984605424169288960716965280302144026511765849840621700726806354107259505994493017016736869120310007706030113743577469013677695567088452834816796574340959193824144003563884432890643827173631619218769752572581325885392328158686054225956266267914041492702152248384298587572746023072270263795366578622398102803763373457625568216439296844689784967277078592110273480818321635646777065961825423204776480184357546001728187937177084153414134146585026221985210643295221663518565383048863177225565899806804644894039367816591862323525241488243300427081392428087496182251243473847657971607594125536159203775652375134164920410770903030598540932330518744638605414551969489554837580874817360108570244399314839194998290692422364617351470242634105625146408242988907347176054683634941633403267860012166274662415906932274216590719040986276944141716612367846006206412772783502186755148517724007502846664288941680645123864226529268875691495001354346590691511377748597422571470666561279700358574247189939456868129228682648957437974212849307442248877030100455044290843077346826979307786356554673035863588415721069837162993492407710943821661389864477206001527327276270353250194515904546620091997302217096090049714416728733554613285531151323793835832263298608208600362437910755135962476063215187551150528165522148112482521856042839947457048988989555342543560281412499465553852598077929312002218807513273757229318015289216418853125981605702945811538839465355577180181216985556739157303828187099665769076045232595284984042776657041613865554769982992929155187684816074548100497984709913681876526138357981500184974232768426590838497922953238583375993654406021351031419305081489830151190294518574237358363524914548160846567520050581759445309851086870693346921856476209333161996366325504215436604236862529133722870867392214112771020771035689545270633345992870843177598099592642769377716248216738608985043553409216702417254213814816943525038631690975977728225964539913926513717287070333741369659033411600181734924030481312591244275073709073498321533078235261318080103825133336938019394743326223199642616966276105572608723371107621373401851222105748178784862339691619468133477684471094667470764269742362528867366341890144870671883597338251149286149726310889082582960055332422799585857703627135989050871847656777235799608580550593681811253277953230822720343413095301986199600584945150338280910017803759294875016959983693127976478904182545237625666893984534719633952437571186815216804872761264677853713290174519432248467939450036910881549625351122970626431470655600383788904105536305803028326978328729407208988900065104206041483027361391489141502990744831126335521751987651134383869524046285445311249121229341096442269315406548829384425744702455474173075585992752639144610443378844021827509206011400583557622508209969723568422291667031748332448615136781718469295140337766471379569247532956118924387845470747921671857191975176430365745356691796056227776242727422345758918676209291632515014343015333167931536644328337502744920104842076548086575823160928329469714411525809607154911056984711572571925346107144347895961404605234273040867096049332694831832996034000781260959739893952130045852186511169310879517256879341963599263931527768338168829768754253141023758658414967984449751993375327469385854954647891244110974739936802638980279585340179023088846637682519410589643260187299387480840367950142604424961954636392229295932266949029667768284441263643423381997026470202468260922064429552255058575261162834670346678400820949777772879823832139407363139053388713152160166731115874099881639522251913578518455028995906869732814533219038726258773954557586524114100518995245828479767551312602881725028007921911179009455941534831519537384180908648939471001505372581570606547727113138874605284391706817350267004424566140239808713117899005635902637112994725330580046202826699804555797028769430628464237479575639819265356908495248095013194826720509278742282311961329787984728520108217086016566127217959128629752115591503658206199117929065923549766477393667570111070098458829165748508171102176588545471724082337140896808895543451137183440116417730664365373165893276929713062116641160832187052172644124999790141162549630563278413294633503765144348567145455892595805299801241446242372780590541193752271382992443207322906484247647846435866791574748419064653162186096788159539520026018901402540256473026831478926973482583685263369566868411913724606011710053048942984258774725203166568223253706555030248100184359310865099593396783453096530461451446507583993780038349465807154292767628235896436483820256769608419385608425697766160903890854399857554070576893533941920657105894658574815414189831477776558295324922575240707723654553907864711200073161285261075209318748729216525436801530932200986588368855909659380105363409390272465561136116575475572053280021623368966933165071429922108038363733319635938967368756184659632273659482615823486794682757189969739547442791899960292315369959985949529045668344780159606794749138112880781789220069152928677114617266079487418079445584209887234795928487074306022565123823311713652280246673209332588425083403678615177258063272270374792371001734016864368703639419491771710675122809261013790703028359612431630850444454620612442769234854855525873018571524688607645102402965712603039782816711181509880065169142518160493323610379225478457487639868464317299775272986009895026404822679375488402283734796980034521779394499749405176942404377474806058167064819170549273304348219524942622592601955168366791798920439853267943807419561190867617953252496613015263458107705748261915581464069756951263916135073059730623744364405567178771479011256827159579425677781133803566262192112791671910364958135908365581179681144010603702877785680083601272921201606512182082468255135741802624515500452929092976957170421105761096887697449560097966847091753229695089683683317332998204803224012847188687064957950614547121334175889803903737623520735813958083355067804781990938546392259198062575506981517679817742869746388541724657470649706208545990920980414659000424763463963457724477299184567828371728485347074065641441778575250853923236925731368350346732435220104236867358272882373491235735432545682225993149484387976196187807341309954771463131391959792857173665185456831808603815519100144339150403410791227904999153698799969746884188243056695936085699977100549488216355965279854566733999236685577013530281703593395396170455524401426074828144828847497025308796450077768045548218579317211260598274545828214596242683694207188949089109071821579449678121250776797086441231813603204233111599028112548555386972350813386993685840748222237922327536913672907111691393829736230898159325282641628334408798175467771367159164568570726824114652594871214654553050049840470734409192375874235205635278593055598830923627643057878425744417248878106522090987596775634389225038060853991235338917556195103699852005540470815152339813619552485112715196149177847337487624122626280220464882270635516997248250625961385599642842198282987603167433453783910863406117047852942574936862974953294873805526663135902225672192918685251639555574927342110623211219166121100420367288030066428885714942953267358258245687608380220973111021296006473172347372977104458659317938031544825750265879686543024863029451219283727179290181485204409095687039513374212864360379489467588732476960488785688166042230698871057045974569161048286977891560523296440024569533650240650359614601610087702456868546248572620702157662141091230730384019433542988923511561427381248398326951700293408472694599088268464663386725823730054620323198336503969298655695481033813902118762959674423607735451420422514623343766593038993272629515857598050646621498259084469810732934038104632679673655573640573781378647513286011952025384389335075416668904987616011410977564589278247460764138910112510240526647391365346778660193951616780578280114007949961076022417335307056731338412837679520164136424220717395488281085631672307184001667856039969180543847114468133514308554741109280823271643379074864690563616829182775089028264773929856416087876318454259846000280539021165455583657742488605326145843883641356749733641994243704290802331234829929127090480953069943465890214007622867020800396596791299419258781073279378041373691975236923582943883571395899436924418593139848157697121301213051603928006242604079961303174441426990002443440050138912191148294988844690670861108462301855034981765464517787325258780070408097542489373237252496420304989914186878286927149963466272371928799857017487243777128304673677920285412573317068469622391657802099111019627328679884621800496503643326072764945884600148546575227231287645648241698797335252985531942409870753425201450795296674761983163444336685762283279494885625472387160708118269103118879642563546042030845219118627932096626916230353858239287593402975910389788136413814871102658443467709564283463212956421379927468995962093282590599498728854871583818071463670545150183993720903242806562069951821114402129130601541696425937359563902876248574938698279158491453226459701522424275895809893874146931038267364463359425823293769557661010751823276226418318335205825154701029946828767888209397561091968685688546170502600803544549071906881257039227579709037822391869367805109253474501657412600064036528738095927041067784893936362071173463906058237761053674454523046710608881199006551840163586726198493386793428056875189549175747070871433718083323261186045957928486194459761484184442044264385067380591233873795564529687783845103544324711003182355758250657044855003251899691163366409431395322399277866289292615026626324959321088150535210314879124748811308047736308045879242304794400210575638388212430952287723457497568208829078347747564760849186314212547144360760770068620941086898056776584325057447219998645199071372012939863261450130166861314619523510315120463795757165508521117762009813422576199394567619402283029445499092033531696426830752848043786863135480088568537639307247148003756334380164087367343443702201119175980443224925762123610402385824132539582721851147204081786647150526956903381124518755270783219144556057635190326278333536281702907267797465432606932385690022688851666042246881923638809328037843991988905706788330951152139725171452479176516494329011766244965166258599880977225040660697628893707615689113816327459970492064216294482514369713626652910904980424679680536559462111376660298065955493383022103397793662370503806741779413276196215419718364575903105669231069590806241728945022801214746125147818303972338660985994092618522748526019941794658849782334205332842266420444487364149993315720944141717508370033776899943290615335147471477214022903805157811150587058817436073735358631513087189613897567952464100799963437775202239083621008103754669466422154729835165115300331513956313570783060772798673178116361347710452717260262118759646888352590970940344249978673494524451873291116955746776256078518478725655744183184278614973328558726226618986850147621702024597583534841923306981018431085789648671207655651166833052686295878970710168047808183977744962578789585788599996153644788108274149544758114545920211551507215909584025703306729842323613716158749103310444865280149095740210427677337661215578751339883222061819649717300942074758118353863900111903647609986467052036753776596780648091689772334848767822883168318971623714358444784932358673419697694685746603837182445129820617613168327813923784553459552854762319334469755533482030722500266985683606492859086394543631594154239306557259470697083592916618405914588010147332124001136793807588229264391551056007323763251944027541408578653784151882389824067629672846456441272938405076797327791559070113885684691206296705363556623658519599665982843107123866077754783342541587275827109036145673282592882709421683710356942166269146572418854348811703212735259568425982720658457681721658745531604576017026951989534041404570975715895129175778519786536101769360886680338730590805844475719297916637505593812386644961499548785800333328515626171655394989923046244357284856359625460343513796407755653357571327438016064273916252045384329029275248034022180136644181840376511752618475192240662970145208723054441986924840761281933745191856350468046925009406639669847927398953340346107297079803955159726381329438356375091216063516988638057511295734654106790843757790367377107616320133958778811308603382653200033629681016735437552986959225533653603722498198674175750422837115568766175555584908089468928560973654420756418111508650047679551039800968291270138132109786750684147220259294987284350278368003209454638999742476066935268748928230226105871495152852528259938211023494673364836394429365099931391763125529738220483332883036535235512806656368811180566942710491293430206391635088028148007005194357327261997342670691405254417681291094535580428955194582223139066807187071414180869726163459456260923817856364622577625375709790992530679400673858666693211987388663318562213971566317337093431140208610662780368415753747637151723039794563409669232851479372766198889515551059782158212268007084954846465587305307414346266864425463050676481734869763229020430449743520536849792863296880826910560165717224368500334874134886696725161432935908896948967797705298649964651400284794969965668745491142912267260426471668207737851638150825811725729473438819978280142885662799211092202116488995114738616876735002632998488266951935060108581396155360989955185148791240721395102228252484579191483155756990234909724735995959855932295872772117375810294262736871391424214234709142770734056070144905160338243414269400778508074829189754893575036547368372324258017897896742717765793624499028276053405473220158546555295730743920165166014039968119033754667586591813727474132121089562823899119249893060552065439185734465331205293074683696620115290218201149398217562647365448661999961538833998249427137591330696687775927338374390653440045661306745308307268759094574160251537094436089445656558643086915259934917560205583417118641494299209520810587330930713060505091994470637894915435187785374193770359509627487728843321201117022775727722712773515325577899503247027047703605677204386565324940279283770556317622136729730450133807269919752960434050886365106899303168492762748475729259912940953848795636794008240273204664040418041484145374105274846716348554310120848957725635933927207156620593043545151312729866194344609612392488042691019356549513780146403457678368979855370556353142055353378683657748026994857927856167908627240844423645821337256910689363048771952232878590947841277667196714765858732927903535700156147756199467173228706546505479850492296868031812291114650921233476908242115272190227712556880446670488009599462165834566263598594474703512722312064183097134163117906584179912381691526639957351738602207720365671043036435733006113766465019749037065834903057165604301028344088735101644644283221042764717683214375909281842467844914432286318932671166809459571494957082528547135799130271817553379119511086623568882391920411531199643313697793442976208457247569058527975010379101580527099191035116210993868234546876432913626120492973121756379845833467971344354509848850631607597090320477773627030879599288002128142128441931929457296229983818898655391640528982548145491999014780330886337362632844954167180433875870270804552227707993522107344360809814189159726951797682679431412186436749182051574372228480058677480171079341566786000130457574285947171308260693072072607178741783101292781551771603950240800350302337935347598669981915684371691196803777433969722285467315888555277198662666920962340989985435853678927275512657100745313195763281943628863116221018388140082289724020171711449208395476737126110055411509610775049435488269349079343400303188725149808661782883817543969190978018728387700533114427944317940122685110816021764760497593992822078146430504051920797463730494448539569257997888945830141899841667642111646281915702452379360935286588206096999231996085436106459589900427791649216336217420935553634374231854455238758888711045995739022026501745532260974383326848989964342664834291216118486340306373687283484683253032623276010853430555354160098814487051372402358797389331065465586188555062258826472268415041495577015681168327663739333672773644195106343121206185451511465129161970284915187870085877178257680532526672163848093394248375389183507894821318709644157453494962593458001524840675665226172643651543530252552668458939325097036717741230972641734695873226375411187467444638901390273577300651422231725432432783078849431380149126622437772778674516774037373975906666763439571064001356312532737980198855290949601988916295395283642908222931223846130791397455556521452132084301601582679060294500884774378722550748813422727086436548654897726454352140108667884415528560320247074742932374642308774125138054010244666704855595064940504766979056461728465600140509156892914338641544224575389258305277055191587755171173340325162423241855910879395714363123952301417235172525829015271505243765691123798551009933761404314661436494685449188057862302019600858881769534383200432661544574230090181307913922226888194887963242789386589417818160532322799016864077744779360327085683789108995885011886626338304082889097518775462015065590918991115015893844055080890991138560199121638828205206895980372598364491730436654940033958728605578770063421554094084022022759931174453628309817807284679825797168742193207191432429879228710946453217773498413406449291522521800791630742629722027182074978254434668580855411167312264142412756442411858845009012699321490856621790438167483020647012413077359721683681657395785277072873968293062670056959392857148686988418241450907666044909778343673033441983409824427717536589648455094406113486148198421184606944912520818245086596215665892779399637574846513938162972329535556674629771428007825231602954633486663109910647287139663748362726254263876361986356001241507902100378334739029569324315144331917169550364339422627659833445359250638110583062477265072581744775955604295255330856275776397947392437057855172682694778811283358201102221166335405989923386210666173143254861674207823647549386694672529783908261100365273100992704447317169816200351921633377433197821647496118335055555251378445748131555351148825633169217262643487835195477073342367387279233835325708311656529822300567661497310468048993970526065655977531801630844497805462779029704719189553449847816329633102519225764435923840585253209625841615817263148079508159114934010167994985633370741287471967962704258986332666879728991452605785532533087283691905013210797800511448921695998987337396162086916595187423313881637875723443782746066725513073882920132042176307088927101414482813066205358885124094833155002352633267321410845134832212032449119800401811165546523386477720686508690531814877467369297328639264686064082707618796430155711437901605941723174349125811613568311704558432590601257813923046449772674593019725616755446765474491825309562166922543603944210820294613996860547674530006768994922658465161097838378945151673079210766919483347189827971798285163280679947378570902180810539938439490405235242847948669047400884076487188862307673234555357466117877635590647999364429272064069501844320733156148936699653750245221311784996079803834473076068551909344334499221926751407262113179972390780236386098342851468536571733872862008155627701089960252619474414407423102020476184558559759304119415704819388413790243251862858253242769259173248615032235220773783581246814551516731563839698607918418854893784851244831495686227559864716499581663371445167859456555477329422841000851858081884574834460490003322933596640682982874280499809507685251804637347573203217800478538218926597279223195640616869963773955830870531403675304730399896427230485187178637682626731838841319699957582311693139416803313991562803520750726796962069136679006225074834645127906386903318502304410660182056550589359570080313418377718689975927693434160873769058096763198626737270472217856575551376057511072169889383324883007989750906648820467771530728393924004596391520660961146942410754032460014415302940044707295807444597916008307180569501171936731772816765102440861959743245006332044100638430218528293429389810553546281797541211710389210919578729369403492231659024531505981460361719445166291622207847785303234648333141227755978622758266144250341630252389131923018597516163845423940346695277739930569647434332421602813062118413250144255696434523800246352404006693408869647938953568851951219134125099921995405275554482682284093720639181809254654497879950698873098710875232271016084869878386138347452318555408171627662791248967714546472675630663703390667994375799190570063123863722640161661649199780413158350197425330455297902310291251730276191529831565311291535183327859087471793482650385529047626360489655673920203588522741275511591143823460754141408096532079004205744543852053529468853317415464887085680138621166707653441511085404296794808979832064025105399520492062741133083120225957080858518723132118779458181913761033169974716400529865505201672492179208304524163371278457218095648203022234323664548621124159390236926084443038699236231182682928958726385665249708243574794600579481550958723377756154225856026660910183859792184491065745501620651005148612290930022574918380585658362712314206440430890329327099492330597884730219409701148975516758331596523917268667172392570180653041523250793456897365940558883239758480231908544536778316273943675881281857138412951803366321467862932537389454825817287960059781645986308642250484620758609085264382609651305099606728049840481072777357140026748106331692668500628655559581027602399763076639607543854676274052023633313787302997789391157175698916199234246486586219343824528087315843607624787574012257708900920294952817730880635944099186649219685914351764831660723022125310241036055316063861405933117070461700543214110027606686112110994660473488349963633994412546271244620742289464270432696715853444397398968928907694201782055945589870873379308155761968891939253721266530833948463335475265365495908960125021207868457318054952949221642859786145100251742297073074932627089368028403351798797349991474953085762166508980185221889727189914013832935040037878304858531446051528575938545204274012681273724635842173743966747280682246650560530273307423949199844990601871767504904712723074155049568343384395384142527396125738202543541503214169145367396556302724550894173652645009289147382826296390388842974821448728634723935236249734342292168944555746727557171739323480760814275800479617577361536559072424637544732333860068271579409266215624016897385005674572209319281376091388625502109364036190715159262546560026084857826905800825764578720211841826529342668761487378773979544213460604836544300138698291508040982030093327032374866457164040004572477120347990572845837107267899125617995354163919293730135169627021961808418994486074356864324136072951813789923693026806531000668460662310922346692264559354340638280325118501943107810563991016799495165574041436092538542723880560079465771578754297018399968238012220753394274680081350743715760195933948938881962555362352335991633851158378182721238385237521909798144281982603660899988840150251819339005244387393624518974923786304929214322463677410676510281848922875137493465951539464110445697607805005534587787359030228890538044852790215053072866271306709080076643674896182162535949657661832775592565627560975396396901840097577967662433663317411660303754763538030685480844211774664101475247344721266920452288127451907813493631208313356016220870687532114374517588622423461894180482945810065669686809242605789950703558187630840239708237310365196587826074580903523649324438413716268015325949099675536955193899769197503447779141302996857294254879065914237786760442518460980118587132815937971916973333541762909681691910650873514621901796549326543673039216753070117635530239395206359375013606934573572160445992679454639666741632905124791390820841046446321952500718595912155258845886016475985965407534707155400252259083094582359338615136129689086737390090951867327561567867011502999764405419060040530088943406731517471846065216859963444875117854834380376537398137097405078468329793601856858063120335050960203043626922250394924130999771578229816516347337487761438552876199031198884020524161368500841094584625404192211530450518965537144854768226055333461935812858809906306592012086026490677367436663895992527898961933445414474864661898732738731188138380842656968077733404456468520702402725161485642797532360297505497728946485547765033251904634185192859482606557641227008414667605234799003349494007126210742880499519635212906719758575658148255248749630814160651636749059645730389679840990322743024979383352832411136238037011472346357914556075490767157671839667616714210935477050702182503000368750982942625880506864475857036500273313155973779475467254893756311620374903725813678698994059572472822433863943332235029572556245133156470351618857167224925720394759435668894651119722462080605700510709105323818972465802057361915025374448360870732024129713472917569151172946502928070312610452358683297372919197701255129888155972861645092370463530510929949541323145922893199998060722743810385532254716226416536147378987395695402476660295891064075341447341672776572414329954283713963968017511188533462691823080876669820037939101119428179099733396086374438440738089280817782633926915629516519439431850009094871624284435462448393214648891619456683539543070449526019101093229558483481209544024882340470485616202442291952679044466838184726136258973633670942363760175576134432324323319210240885745700583337540330779579670208694310790517140042177959361455477140676202011865604626599714201648572861390244102172300547463750281304383120023616028267759908083227555582496270144964476194295683698869955096219394498177005059541236672176950378298418546724523315415182819322186699400698632578476824511790755684376420234122512979199282124189047905213417964078823684067932747527821747314346948441258819411713711714830542928739142569434990801117824037004468131143593487491028500912513010523749638447528276664986533601195309424113525090142315147050607669625797225499865668413161306085147374229313135609211072769522820902017936241227076020360239845193946627657248236827716832230094067779927698825259154896049128906449548607236422193700478908171541451583582249798299920559589088188179152160246766100882901386738610310979126209137435239634619490943134038508885526123635703470033947779125140601165173157704336343485653141276181236828871239229964377320662117370315876218965516441898196632882586768336021667477642564572046653479574899141159338735036931658467761322498038537222765205305612696041474383125259119270528850921730660425400841706933024595135282478159641539508863974763392877158838507448099543712421853910131484917477689859161119141321110090395293436611116186490417321278445425815455271843861828135551047416495878325956825116109078349182171449057316215609700554242476415409444559170972999944332469855047452252152355131310612909074518577795090639297080212826117592349548917258860344860359110166314919990167778785335147736141251200078250224441742707457256623494658142605778778605739710418581182289660669794922177794688864903190267141631581161233852944937794430975098494572042821236222492245950687298807752668076747772796093210475968365256946389445809428318863809566793237109276503868751280576638847415800699971122854903232202901673126372526513307817168631759675615768425178184989322656440284227122342772431280590045085256833101333333687420707373994023670337664436182853190983028589717909284311065346149324168255019349289431353400581885077825967945428220541669782508088826909834714187581723504556801410886958081098450708074922448634455312563265084577802286489940179584743691586533443041696920751621483821809386259554679258481457953734199988893137263068268260914363847712289012431352286443491408700201312504786432827812842313493028073617290343663551630482327214396591622244950397661044376030375774873228079076510248917262381813246775754448549831617257366525315312077060901692839432477560204404669288466366577791065338928796673934682667829452107828100853505893815020872880623276153640805875945752241101441600134587497690121544126550354341677541942614525566631243430236045073443346326696139873450887012877019189959491481197152499322491066638722882987638319455846833183804810020022813198264376194775803736371408162448613215750648901143765868289883482219225792891200038860190652854250301237969125913324341097380931446142223267842000971288946530532439794735100910627093808637359897543611264918381022624718205297503604236685870786840243608298561532602319912350218046477480885764269857165946403863381392347687762234556412369652290874220825686897359864393827841925497003386980589656943630449946965047407143313884584181323484174704327595319399348390346886570446324064531920124763579465582393014091769794918665943802226361101040079119671641186885751722031932819150194436434835258419632006313776807940304983391180891115772404682560822511614543250976613285407447200355459863426231637165491179840428557845136405453288322782132777473455428274049526646658464164589592631273345586504928243951975236546855850361439103400113233321582535511104171680988779967695232511554451460754266198995214914310424946679461946168673715762085295124963655006284001185096229997184107101985978470221810209770795461967217222908601547715709254265122826924747063442812033197287890126054621025424430797973261009843379445023327989656347671404097587382211632798324517846490328664368224418675568122926245992740063769312791156228557880912083849599112403051356278359953988147776766675023063415269891718148359995886400341116548964143123984587757947983217531277576180252487027955497373458295385536829183590325769367974177594892233695722392797461959310999163219216497243939100124220435398322703739358846273846595018606823170208273941184206093262889071182669684615307890747620247885558136389850078816521291919634956144238776557023047841791206294174882269666119718692723350199712678505262423952307794443124518178402057726196362528722377090573896265397800585216719600777689671085441008238506484194369729340461910711941009732322582709174744252221687691200747793573964151237231194336672901116478300105029986908193671181616066127607103433130415232375211956615955100648513669927891358367192706823629259733867343157532388346285299197861652788479792305809157184120054354217370465613796635520262115656495056232230987608238097579854382010785068933308619060564807841249296413075665838754800490655872425058946266381186259508340919211790700001924203248298998408914880093831241521118660120568674051063452309025768237914370483440484280742198221704754040497279431121113344178348810964408485465990855186439051976647885663980577243740574365879490657213639794536684802978581042572406487652032547720572679212897587298404393580417699707968579385320036084772302568609931386790277480234006810303418964652678404721681476352162659439880329954476377670763408350735944112236633056459795344944378381417700866525617661177916533423405102464225755404584728065259619758063529953368246115699024175179220317424658075121117480163945579867446648734970370633682549728496128719965086831928837577456784015572804136855625041613749003212852031217629539802154976423384222319758331873862292356021216475386082731516153998594331738803076592691034796695332936216725505407392384967131669008318339745919193401191473427432532475761625696511055848428556942705663362370920676160229186317072461863095223185122885988445335513356797833606802087000468620389911563393109710988922147116484989150534877014333302174289455196265078713922747506432424910285094775200159088264249639384960012127457649357674077252430496596553243485414484552746045565988006105747142945902138342469062494050042592279219314332585974166580258083545805517293124650903341224379997236717735896400038542701159164251789341457972626929831958868569429628262985219972486835138170878483287572969464259947130977858950701236907476318095274356634309520873840490671911972135714607496966733854691216051517038594222590714875021162185203429168262434907368048114561617251118000050911107028202327903739531103853713211386332799411532456809062683967558725566336661976733804071252856929316302491004607950807983536720083325120888957366499707361101874531514154195882075321266621336580039684875111654855249496472248102801192133814642212099368334128449716097197267864690770531393288621699947766395821915506755185658618169348696182731298454289504899072598405440039974269102086202474926945845637294566058511567412208240014584806436212528036684412013730040918293051322038738006305064237825245249810810502984153184384419413448988759910314258476163642898428348342544180786778914648766230110889471148580400131602794355682023403056837500519636211176526062560124039025444534295964009666884714690849720831889271653191189847382857810988900699677924698143327915561328180082192532137684327737622763655775724656429660045069539163574168777112383341895075284329175002898486873806029956431546549869393371078985384455763549192603359132345615434989782124980793826780963404687220349761423725108266071084827733395722507453336142553005797426014412685036530574503939144414701838430252171070774377241019297372222352247721895124835045139236193255052204226320591397966700422750338218406158407282931398874965770333221077527541937810665165919813532389678500144624682504229164994622445050765301933139869220899415974847005280448723411088441530952489506714358287497785998101108955788501101750831576507458201054153184105744515761764550962311300643046252875612855149921646328153163595754860739190896772504188934360888061092276432612598816318166361784516609760366892956100808058802611327115124376063430689114791306547303281460877267104048357270930256696469388071994287740161640623325402314941410438829253282765190370424442183979584205732845590506325592400960240991999211803755497256215478026613937693274404616876579133279252114307185882865509762904180185125757352193515989451490776922067190666724024364142687432312412180931612184761050325370543003058749862470727177794172863395147427665960990621810986345790737808041109370804844681083231202826086185856593289359859030880230402963873646532863192528933631567248536068840664020213071096222004980116994500191735703502094647242107563864307327000111785772909824969322668167540787608401861263235622105928960687445154518165249897784524110558037983741810815584563526750241848724201441471556388468283080567385007681526238596489679350874121464461779317868791560321461677934479104563321618748131509851583894208374873669412436062631860213275139705529595146237957871299824351462934440436578243857539589397356265855400096314200991593451708106771160944419038681825297239878664506822283204212565494969716217257275782832699747415355206602448554128754401872699173624425521672721541486527004712873200426095802103527607761123738284247316756388593499560378491306013703525172886226417072454948424249864079976927528172001678425397201733045093305284262957458280006648184343078537887024455099581113382374769057934838851400597264695054617036897365094284020439233352582029820091373001837443526222619103791401957128427857726257265179097311913427869104057333580576894822008301471150950151828665518055326169806797424031825027369004015591735314177406718073810815715640382320996391584580111138532350828664525486780026185754993717198667551246352430857670854797545611470699073061200144511762037228899735111972270989089442734058687985534368162415289010149196226529828601587442555965247286616824898208198822315460913125591297481433935242466475502323261018947192744779903890157143760909044904625309867530230528728598327097337352442721955620589932389606001483273310131389377199770862176700777558001294390598630270657685103694893997284215639963168740643424413387501873941905051986842260120180536011660695814289492504242506989565765253401071053549678151731244323480897296229924623850543339325677348341858299075206659521311811158211463094336028882934279118070172596243411663992439401823048121764303476051894277269241914067142714391610376893647610783224591178442859089442210073779188204035919003518091116649259270216472671874488078096549801109310638504432513167066226394385175046713360462356098684808823158029559571153882022809684939847649157332591184236509454301849588265010163492308862880699580094931155936480864850872464063935574925146412445139947229349813077562776766314853963518195993035042199030316484297576991083661530086968995263060689374105537680390823589875513231172557373751387715503717932638283064993632116048113925086258638524314051073999439747680624090542060049861536868256394405832698520962610439916883297792114047711355503263935365387887702815593000138392606973240272822157215773681242705235929288336972112767318424982909788693706741972727809286003146998301569001118056473523599037857641381102614368322037219453854558108228608319651333159185500361850345854414407194437283505625929159531352449559835635838278292374362166351909811601398169388107264149132415822111029244203944698586101442353934501963582728554263519206538882258623873365942261003827325325136176829633903641592759499172383241521359145879439757068540681537017550906392592984970710340604432313538790616823205492188668278493318746758625714020976220036075756881638454320829443174427266902087466506476595438887654965499076720458660197036836354202291601731743072907347158473493525183900909935689767463681122653241950870712503895798790747096268768655752376133908468763353151855696679981035038598922955067692793032433855225989266073048913207167147392634945357555111114094633805353605566689099858779556286985854520258524269444223920201805735549188425865653248569203081430687224863982697260060186672530825943343341252054283741725072747827310220178169393163529605644482060292364173503894511549134099022169719056535315100165280425075233092487640163520423892178666017981680717132108716665170588383578916823397100141444757118881060174899356503681692888478181751057674991389361496215921407475440644008878450224042151179481161768709304349217261778070074983260786180411497212138191037270928661820319678886498115149928463330228544247401592244369480154113610526844703995605650109599812492970302019126592447004943175997995722513671465801375623135915801527445992146302816646889106002656394516475269535623488477316922462428589795249774907142456508716463614035648287689667416688349497178146784775675836496018995585486945481970822334361891686150106713289400131168012548869466575594913846091641886792302316419392840760234811075462124057379108982093104194695401045406468957535610412547011883612621930330931652614650938676012880500755180691267382198087751807134111133891239532472450751177879354512903311630953994509039368675489262556563970655661769065211348407658074309632345191568891201242590079169035045451054305146088855590755670083890721820326342165014324563595380177117793186980890041672371025718884491044462645480598890703639802399185653170153933073185255803719289001306969183814001310848754068357336837748490579272524321015885383015088223798740437192504415361051449452759008375069739226287916834333975078455942290467665158945576117121316079519199617965966003669913831502798875342470514262729177946404874627488152739308941707826606186335984491574642035311599173865599928550301505945297308428579762455310000320413299357884920251693957833942318457361304123639740583105734614712949026486198387075055939469357960156303959321251479240569976132894006913838876821091329279124266395395832941757628805012303530891736320749475181922145692697834498417629855777205138002082088679415947294340155793892263547388103854938046806965056430241535901773083020949087176956399581479969068072392347388976176407153089208217104564108667528128413011699413797008412808077854961830145118532452114036569152701701830704870786058968322094851429201167062497036948667071755383259996071865433009174074657558805917406205115459062408136922555176907598112687333070467993808135640657658036118982836620545181388418430949134754872879137533479921534007308019639709307625857339983494836560734209957514798400553353886879989562890619395371804944484763922832265585503553717692448464102573418093784755453076484373168160427666167519932595642303610931630662454459683345838821600532074259092726237756291908950118230934967929956269642067991295945521065887938252761255722818245263713853876110808744485803493804734165961471456411243542009442702490701862132995234896246652887329598043246917762717912560367179389728862376374142050997057786625612455025687034919521930692702831282277137192284389194834351763108666865674059048900318611901996417996768125094270743765116905973421865135059266686180148727467351251060515678316005485075331602812263820259846464076452901310517369959398890725376134822111192770587481469151088537766952050856019035204550350396593775304068372977201669633334787371044091245528400731011217573607826524645200105131316484018654099481735452443547346118671089578839640188476194168454457870542862937953596184509332547324538774579108777558861039349411467053782002323163197162733657187639808099523164882071269642043457499986813767834917046512364399175674809313732898823942252433107097588434607224870232777728229685952011142850988933899138016025227910844393637100015228067487535217331774539354844122339746700602529405224006789833921210084418213959562864751451115059038460423928720612419675081263484573874063777944861766378961218488190071224945826453550609752837156361518985383964403671411695000035047338596148053249556504461794382334661052410500618445322870938974691300623915255763535623917487635756405162606280790003701122789952867282810322832896049983778978999272018775422457149310094799952278181024068788342407857831414868432958204586264279335855630943531575827835222480449607601818737329897558438973700745711916076794476513055323320001098629855657432586834256802921534174363793563913493151410373415658280718479713819929103877665323780638835619325095967799352902972783992509159967583157433208853907473800684744442880596469973360172219435923440267418354231059204482069645092382288713481068412455618075524260009228712595140176600083108012532845776598408625481120741596766567232482605064114511163215892934031018550179869690837605703130713773330078843214431727104808100622219424036638525429141128404941531979212203695593408365804787030267669173613456716180000056372536530779046260188787172426565204679320831955347082175566536248380580848875411456794335571315819864863642960113766000977659770685503145211161898794191355836180808771773647771190483791305568168179487606898903806248976870608593203667238422167927109355988592260711822958405137504899176899179126173331403932014119301129183468469531065204713769499063252502328270642074857110268888880310644027526899032265240773854350735135059858355375707949403513171141042068152364102012221421745731967779475992289165179659886158316283961060235661323738007629402769784208148174596441784943792542193363862088091596107889317918391887160591052177868875620772241319595604446484039022158559158303660600897599191198354105942268424186392413852657818278557860548036409496915294229186281114282168685772197148824921801858648239272793022526747239915481394960687500280744727009918045825930265738388959775869133944102282874793977868580038762680088172016043553328701944920516076146145140616029144748654120993608394349716023481019097421743353047727128881619820843264650164740957888340982756158029121421807520144984097184948545432160542977713308651228929611167795845059221915540515264913221849892336411908908048651184976428231134434049821983958024577974193007990272568339178991037910064353009222358044328635876432501280820255745589056989209952988923585811471269643698817920542167548518060105352142522602373040566530279311325412199352189159243773955145337123621845354526092814738695889203214603744812891521907575549698427407187530656278941315184749116014040534814654666065354104758275482258609035566246529822349486488948268812180229678012740708204460323082471327612053293872831378492196568677149575031077001495412985583090204316850182463179902700722180860041843171416512711320338127855208231658837209353884411196153300616479839171580126563501714206272684008340738348289870707212854746234414160418434092606025615061849711635188683468161498430222248405389259623766116434492930514089609536937548158492682990309657907997985108134388683058098961220204008426051827063284508967629910142329373286096742219780620982974131520076658738618738945748536553946628994023787063141471325684600168111572299441946551690485673871042892664156956252440658593703770551097428732919345162762013560075455624198117126993455044051799221234352828388372888303812544306936093282366580191236882979260912703560070859975746047596886330578917694180825916381861985074882207402875893767135774347537043372019825653084951820128697123843793095541664832204406481580064819700486063672847612700706614174358158934334129286844122633852457966500510962857255372298190543902189668915570177523618390189604409701531236704033962443174489172501876041414502543380221610411896735600388220839528032641642847117714045366620019442057702882197786489003514548820242691150705483558192349229872423986424801702152920727667150127564623969666592360366189249689196385793608087393010613207639213722504732966745505003468874648164729453567846742344144171909628559461748850627808366446945400935322825275116344046850620775940197519310772683365483584690046089611757916078856196614953583588916824942251706182938809057093023594224506518947734366609404277993304791697699452302183319907974493370682771840658034459598150485261967689381169226785368924087375492430518272852861948128189919675810578052790931834573985778449712654236005135236059880393772863423493609903439653275375250238430420766625406177586735690720592276245860717254389996191001399561361579491503397914904485262805199685382061802107384027761083185400795664850389738811257954832279809545919089071504952761901651558768376293132015197543524233580800054547490292002001345842161898075456346242303158409498451167994606040061398136229361470780214974761897071910163816915939962691031212938105441817974534872426775757300157061278722868561921465840935326239222353957166011584539886834305479909485941082455319676118898669281696215337706450410713372740356799107372760533068602440740737669217863001836500785448775799434643364888878439468192485472328913106298397336663863740840833315274350722330676093065465463828297469463666893871954131088465081894228387955818555682931417875600717951656530653776646008615350829441504762150093643384215778942078499859054467637995340330671174548985718588498166578000963558711424715290972908804932821341451517042441445117281715218840249182229271930439623104391424718417889956237106423247349598188904696856938808484302805225026739571112874958882179217173647070816303237191086420911355403797766213404180693114047092591591066195800736677426833969128256476404166217458076939992906197386512235242811965109959715752602697418384397299333454145650882134797271224050344568546413888036618521916544248446444264767293982684769842071457391206735098094797569478184752986689793938326286547716177586127919676929709767822703138079583471122210973402504967110825724301792215391106343208732359709057854339595112957944058473719151784847377528452334421929823028009091074336414349999914168681517631892176433845495558451942871060732876369222982880358344076552991116434625735270676126073106453436204824713067694561065238281259359425526800615865391179865127954891782500920277571953410739815243420706739301401138316979547347493545575253598887188526069145790385606444322413495914869510809841342612713295025691188932367301392877737064883014369521859014982516799688729769680202738767126856240616161557422537653409810236047992377986473341768046665111685231316420994187018555285269936170798801866168604541213336755709787015644379132550976712104817320015593678794838926635989871143281109889106514569414656785038560628741771654978894692050180053525339571489071738814091607304970725194637888929789185194145882033082033687321003838972780719701263953969269698595992513459967092879487342107135885735979061103582665350979393281932817193567996856477312902317111920428557602148885243686992825951886678903513951845808203314212903882937255666975451722348865857735002287654068541621987754201530773867050054141156530135711095583731814718552076121153709011943984705174969983704954670772092628412956454977705927775997703510201206744004613351832479902086728065651014494107236126225059009427677560520590521728077563725249359348673056917248170771643764632240364831483262201123256955601194806108916534190835798960896729598876302226826427806011714887431725632810786273205587695264481982470701668793646512664872083676820829622111861284873113850972613071242244516708365811692576502079922954507039902899441400153674579901018564936016369401675649089281214700082239400140273230305033557949349564598158118013992119891827744799627894829586934911217711597021902622593803657476021045784081402042009881482861897334177428201951842969781768008625290197707931729864266205688043432531989764845336114234702780598588494129720813229397191565964411112308321788707169622515369290831955198522372737812381939816156272234162928199237422476761948860601659154408479082929592199876489157721959974995321753020814554236359071845625198264131791559614046964846860977386824144705766430548725771481101940171009552556052561930071525408380885770741073520393169911926862576666107417161840474523014392379737442695704280221994928971326803966487891691889324917996220078345552474450049351180098509637057260620584558038581220843580530200439273946991520564108130074684369228005640232870489181824088771473878570020202445763807041454011515095942199315220952739756205348655656020785524223230205605524469724368538785155897343373493845380084751066308555136457681746266154473106032236699748254444082182946137476394097574131982171039145862422892383748454036864231533403488905326794702291847413750770242797110740859694224199336497858855094242157104587354219497774806382199264609646558439348838345191320550790616018633576031328516164624902481287734861643381667682859812368090212087785595551397833009895977065262015443245272765700544917728241806865077148422203700125606258913725061168624615182446057935531211196134734575937490726475066707235302652434835024853717997448946220984974596221997039727311537539027521409000204945793141259874933991950846095018572591564351096652676593501243884116061526644930453414942345786884342463081470297866862361884583465619543448751799552257334429872435712298430384707153740300409835090746909434134457881858475910201669345050767549704176149944497223303777497713910305850224473627981201222764852352701470864858722434786862708688749695105057609836500530355994425955599567475335698225257166930922445300685842807020056216426635610062904364020000677997383772457755975078744007448795706140820827850790550731931854115599505940194980028080642071956945100515079978356012720948141568840416332905734701809899993435053641180739084987311525559456274836729057265804910201656834491718265812177875160500097502160658951990853429272247652984566712751128759604326183560673720559342233961030075871948115862228414337364489815591654888405528142724088014036122622304813672904940740374165469209494415859404505406748702287102566751371899566479022521132433310878252838978745232940006006285228120959655277213561314009574609680305749535176794462015310963726708397884848508388373557043623189725750746603380026448603687963244798328629570275865215239704236492970514887171707285917592248021732133343911926466135457137243368998042925466266538182938907743194600892546334042223550991173466315986045947577359071114184866138643643828203648905167252812776200463923939851774669994108621035846474007103534273609566404364543994656447456555863826301966252629446609341660511014172449842790853258307397746960065909407774257018548095139110634803244169435186132094374516616853729374259536324693475549668715271691767154722984362153539740625157876725231917384469003555078782158487381691016140735764763954933384428258358525539232841784677319481518975650245678053770493508522484422948674423601264756801366380461346853616549416443122186230101124460867360501041461556489279078766242726923757313579893120226228141747434283473950575394780523904029659946297783068453361656288360429601707668322702880434969923894242425903576479760253458757973685504550641345249674490759738443109169826740586259417520540436424955347133138635166587786166351259367361352953471082448154174175784644671132239655725954915924715900639047007765812500036184032680322674448087595472202969823460165090670432468459654688271412400312212509367176688840067421402663691293233733976481563619369945697035807639353255266925975566384950027274327918963120939203327625520116580002347865030184602113920113651327220716239689492636036758280869554771858208348448850697266573484403992694306209952521230875596424891768817843409885383378966450552740160979101470315426748745533461860340175137606227117294987357405588597117287817453159684444591436449644422165948190312110518209949189943561961563235412230008059883053290949391022935748732674218285375535314398874407102950769620332059167401960940525567046993468443189154896851834009481480684971508656743413362865237917499100117392907426935729271707109424416550284347567179155363530274275269383145212295869896341406638686836692252228374167883941530532024079303788269319980184816822653605638127559268103740189758929106636877877331648761660029117347136612485171015421339461254020080297173710386291315703210656336934574035619802276751176773996988521373108264021521256690644958433169766856610222633375369728349401258521709658320510944224214625485743754151740079160322426869294585661400894032896978451259394518588018376081580472023799189593735239061961091224923382538486547780095148028658366953239761929354186847544447972268499538810811883163781765381637792085241394862656940789421837442113362078712402823447837806457339155953807643972901221051797268854396172134820260583955676633487684583860326893716269565910088495889623445872300906878626578477114514010576604167466088262843233622420677058603977563601049688502955192011180752095821689126844943455509620919090331115552973298844791332701481395236436961697289046304409676540323837621031078958744892583375780085660880006450014805376589415679003463528558821310632138395945007062942208961163643278186597275452957116573294386566199451455294028945368793324724048007500992627560247310168298482194266666939536178647067286851053220378987149207003431759750519807930529999620235487255280450816115292225765822785870751525516199392344132360067823649184627194335891257544528624416108270912196383787362358734433794674278246277377929552088171481202111021310228922880882656132767646261891157713164090791836093180919989656733344510734454711254900085449202411602036344631677973736394299716755422044454284851409569317098415725044449511618969799215886749052260981968180284081019695076479560610754014228239982486093641656894962836758820846390598707251095307692101246793855934239246575243038615142882316669117136433499440950511879359936768578275110497415922654944383069163057917177681034962112700434979815546874498785974474068419650718127391133519414894223985843896305187093557540227230482675828954619931000252806763902438095436508799504053372350796046198410171020630094654803289668638424657137927206345867091193648720466377169089142840505391466089253997785879722685956056714108029433094205891457582391464672044993527958671045603949289151463293453158327732931986473204631797185908003944615925199899088736102095417592996606837114299876896283290895264767365551051389126225207906286447978353080619730168509633901919338246041926439428845323848023983310203634139973799446899419091589413140904770830252512340316955401367227028395582946626152488808074346638526556071297749311019833746238458800508862939890511448074817259571758393537723145767926623984727536619897570875440781476506476005023316024741470243944520871609506573888814806272409072144025356210317816414855312945216673377624231562071420660197747512914339514033125093445922093134493331029760408489752761390153462731561048757492517682496001693596574010042886504340618125380516446424473991110526030366190248239179583600362770321080199046785967427757800722242030996014187592991503189326045278713997231111205058574341938951005897625026784881410399634672762324780705631262510695863322953403484277740043538779582362893883658305288976133463318504990412700321844072971948973400568015405334490942783019338684450058393604491106886717215412099057005711687040961454470797504357682598648593489344592864112860224740444087160401758210793158434027246370924457387968394985942110793783719681182505869403575834192840628615848397600107071465653473233619904265655522129085072860813091754728474440295406582910278611364993103411660455944192899225685107881841752342413310733856676312132557848577492059566310215972466880041246784085249200023464557788431930021879834070231846187679701878044426050134803013947864445975034448341184569489314084793656638544037474100172292399560339660762300111373880012967393440376877518444466716441925594958395274791383602318587619801291537402294096564905491194253596448078301753393377629683770858707062499010375868938394381237601996410026018608303324810385468495587807965145464918520936354296741920081271005929483389869638068747244650408745481554597769283434294969219550215787044436196441802287739470672292410474053762844387084444338255691973213312612544944875745765225959700093354035296376833083577389969375125924095494222023850534228999495848606128598223796155205550720046813205987721521759136748912548088977279881838256256712826190266540919966989852839265686836261934240417733562510717100908649694566455903624992909520220110888263414083511569754863669068136425889842381092816414134794210381289270867946860642436698310113991785635474162358326010776974573110096917316966152353486235115265441801045962005630087697266340952830687067600796251440829442927097673206858552359182724786119795845843018763106262678681991694458723249482736827639997310481306935758073199921047663796869965012929783486639232325556162042328247284288306779817839824260127854506035463546339920612630451451569151217622258680744470095224204823653528442293249631440961215709211201955927403712386833136517195755077140000711026091364903525199241283309676423750824128616476454576201302466385286345417492817600490703229172475456608522562980422992914246372148120957590408258165286083129265989386992873287732433771044889916078842022214554160901389695437709674060818725816772422387630136515512185955015325299998610526042205029879727459679621035294624500550597583868009822235080016194699728502489230830474594782097009616341527798743189228820392250947924299733508211637993593292127760364977953549102461553467977400387404907899209653492922963401735591737283819895276498413919084870416170692385541175725801619350779247155221898743469749461370135679271608193239259279172286518440802956566248895896933042449906681769291919570117071313744161836498590486545650496022176906844534658393354423760271025243547694153657426666395219220009897151649310299693883558956720446065104226652218848154270118475509083280260769432012715859085515137392285341246526359448997154097071518288107241012045978463168122171207982618434025914102292696356647165497449478322884552020029248710118108702181548209298964603554515041972105666801105600093766791777607184881020165886742432021329067666731082961315945784925891113371306354042237896200907972679934124393462778952579832387916487511862555745275339908106131934135855469310834210822752384301746385932337829511192380121706023572453293367979998650655804649458106052203079629985457720608998299401163667244905719865497841270966739320113355234892392984570658574209466922956277188990009725783157049897090089172228331124499047913910571105135524676357478615414152577727685784093900875907646395552684322579031737050127737762426305544990472465160984248853777415887915038834941858717944519876794413578736091060502415306582620845924766686605360615775895036630325934840477938389493449996555226665705103753484818556419797117648207756431513113594054643906634395303711790570640443842452114633786147309839849714122117932464689232485017452097774957966315976014058993264192348624071345446386025828494436969061044050045713760797596872718096408385970565083430975977661101037553607446649620280377041633438706544644112600845169281101191249927599464579950739866673919124806798907555624387627885387653453644103845138728229352768512390741369691286292279289996768921485834541474155984312012006084762182943890282434828022811633695064891312355296052796530102492773602975620190827923671798363502892088540182012547825530193821663651903964159588586058221142466226683476312884003426689322591319061170148046693277207951082726141479262682747685936832078870608905045332945334240521680557848280193272443005814536837504133569398091446463148463683687686395767781612640166378488156590084059521487721848860234959824175863893880144571289415490168762088013160785684774952108101830647001752838558786220388552033348251508278910444573428912953531677346013439414048031915001131002685276835999049312904344973048167377708278699293150730136524422067494255262201039095259665192274108812280860021569678804700876699838411670724551726634673676641794998535720952947833981331549439300792634514210975748207846417411543464124811631454300768796270342551349913413690405925399444407451664026474001549011435757418371919088577756451020311583431964217296600986047334374840465019115785855877592787180618968655539003464552349895524889880667763941049227549912387174805251268886183580132998824473305286729419194266762665322108881094024927303666327883130008512555039034542428953517637789836935501936832839372332669314199194188385629594604232480904041263583335806069894765605843235847483138113237425965860144274710779840905625588194259131444912592017908586623780872339194259725947691896089901819113229654717969512721541689257340333308114031388304368200210950937856826911988786518545147021816671597491873966081638939336704767048184642406603340129102286845001695658195527059340110997632266771922256079773418426591523356587377498928770409817098148822134071441280109347271551226988257455303284588197533169541863407067387318831153450215589636537735991385315299466966679099642726109624735193952009575445549711357755805009845504834484234684759074128433896232393384918550881899082247254428372944132030961690232085623109518935729731767250247398624122751366394217924529547753064033516249843560104506215065139456461338879405702282174797888467694776781128313549879682213926129381333344107695185992644658907361254952672222223171355080116538761616012924747626756654459231530451058124256676800379472722215613865743812460410444380732957211800287835219064704993742569310284163170512606044225050654023467423590433127370552192334569765743099363043208910345481064337352286314351490117805933949260262424197040922338328448738667922403088976644872688021757777881926612176528521375407787404464710910441873912621631844047926662211063876335971972443607139382799828558821017177857075262473546118186674967409934783752260677372534850069588337258345622148561574592693249153765842701435403224609861587573641900095747980266235164433928891855796053436937275854029729111571411529758583611781137764551202079953786317606063548622782639426677967075515413879035645511944321765910399840250937132295519928156949550158142446491361952635755994853059496351365187435734689689777078527155707600904766745939709392949177607494447270924540789569063066235426625084997251686730271838409233170467807035819136227843013911479797712248795813313329404213907759830676717246251740208053473911082708671656738921491890851165938528945354805396878233048056183527270087003521520838675525673116703869195169862578478973062319693849267792792843561129784829157192479570566842651441409048428267889588752272730219595706492886831754509270251936569342120389255547707285098143117389464607049315361389302529148640896413874024739455541381216143792531942644180772992920976723014723256537173868632300927669979748725126987788400522431117062945504234959600742040808033294412139084039902877233393135315669836924032851584038817796332190105875849227900670072536380437865915007993640054942758746930525219715568728415834265049710315714297830671924150381450091133567134981558597958980851180331809730767705593633181084242206947176300053583847281943874293682867989607312789041022999091326695824521820638832404330758812823539934987611010669341430463491272951084412505333762300970214886045065273089693631746745077718862873372772936768698031160879780792820843544502249641671399902460680408973642184705457496681238646146553196917661578451955695782516661505768032505607502054270047594404508346385209205113060055137207438197846042311595792450051815995445532814485953555232198655238002228759213150493347638693549044294982579082130245180473095896258275713327988305778340896473841573870856110277517198743860636380654242642291370419027064802094397799228178748201301238662291416617992914722330598608255203422898765901187617346318452659020816152651106726537812431943044163822044039339110124027596270758528099052439338060999638448117615048690182248370403605570309818401390578502816183116950114895354371423122393507005292153954645242504136337535046858851090772001862023687076619614089904806852938978969647249503250378127660985995711377063776281818906381049044677920306666421548519933412954965218753120635105467759911762439861745841769402353901828226436848234371840097980554482902741888638333043746622340060239532036530464235255012404314573039292056107169616691956754950839053980493376061158732808894093117019104239806974145596419727264966740915749192660432115008020591035458594635625547497930893244831567988985086460382323553451379290434527790923483638435354247788228098605789343010881817416394073427609906221175099381528948035905978133844319275974058818833313248272190125035573594322530926558479898258971046623110179150142827734456868667018183786135464189746268432420918764855554389770626928429250833950235900072879612363466727645551845061591252767765188583905074926375059985570479918399161710768831143857782896148631242541711587155007195003379704097438028970963629289126687307408419196474892271086919556308149143302609011483673272700716447090467714939597080494043926960778463217748917734927251512989536211091369058266542901905631060319531875028271931755393602755859906020907875933626126925510281103516519977585916546868718001229954590909449070286476620323031136841560882094493039336752606708062698465780535744015915822321989153530611071683339552952058943989486237996801555631490445613183983238753156359106062618565442599175549272089873802226294641754196718549035981385719545985317188329546620810869357724656956000330838869348747060458302136903758834431765344396759286387872415810804587826236792563170660503251221414253444295667369341191167593721135679869986246310249241224781918919306317490915612995097683844804995905291280378688801069874998926951843340911679233868895298252719950455881268202622170544294981037039140747003019937422805646477816967599583314685449498688971689245200225082035800204674849128570406395550602725469813318065822687091674863261811598528749957224354737425671700417440161641371438263575593932756335405736639506609725011387267407433115657512651355164944980264605335436361007584977787366800170566433049618077122589271911046562941757826115738846796376749145674614407683463821516299069579365641554075846220352501961982698951213215057873350871605756405977515197758676360376349935588499666611482577718365380538520293101773071848495320829702255660731979449547543866120648909222905405880170839221100047858425557999373976330023450924953537491402836001095480589820208618805733552502734740601722633633721120729725346952371091776221870880946705480750816986911958995062219274337586551479429189090469982343352605328333967762828168603693978644444747682180255392166494812481170124396877769005700285134239059186733901419092290430730783502588897011674087633946932827860197760819965298948324984886536508589732532440740895055744246493071320659497942233558362682363057645344145911598280362239018537716912326646998694026542095373137887569659721926956388904473920298095128165815723255988293998681585024672010872020192523533286639022895130916370328097090226548910406465782392469336855737632792709949478658728902081213333156050141083208857829272762532443493683824166956399411234344821953563419528097470936900271708022207428780371185746768469812529642550713170726934001493368631508143052670917518507230303236338917793235522574926560450738786251706047446897038300390372904681666029208264425678304673157799833142607217126684012927989278636148073418374585996950759673284378207370552036248911755806417116451995100812266181607740367103664434142712304135961657072076376020734986780484199304679078945980845178363560112226845633679749773622135553947863389879718956090071256279277877461956197827841684604973277917196179988326320389924254187185609306770265061594435929585765794856398787299336115937809165919514631731277890033812895664757151223559595404182972950047790911793324838419484287184318006685108087021886989087725389371595665410615024498465549010700400475651521892237317980329980485774071617574537941821042354989604072748476848634007099320506184813900829469613285126701852354116033072657847921080201300363795170632985718054104335126972196594133141134821521274695936932685481542073701103730341656617994033462627470995868446416126425720276440785082254190208265704504737008393420221367524097195773740133295654476914723208257301729552061318898461470806478245470995846039780334570163722389274836604048038498476004296249219927125425335983067782034937019708034932088439581373353461636817113644096100227488598448687388603852490774820388617829304815339593126668090581966092276601980925949247088369913820692496430200173786045369450224187476742409360738614682647715709569760567808333500075779585622413657545088005906574561417226209999010347574225820882816747625626872239460770391412860080774171142286795190354214007786980034181570059352989197722252677281697625032456420896206936483979463960416454571288063852226664042010229990637190855647511530887888224223927784013586462505012639057504723355285659295884980534849848061632821929096420371102113502478596659481653671084068540273064082308115837486311952757266451535594856636059391758900462620246764695095344993848746090261960691744616299858105641463982264299523787182148243069105020191001455858971403632243131178878802207040847965640979727582088910001167453133701201825853817141446980569652016053396825200759059193444697689615684888486400902267421472123426768993603917316190970380566760232430374134201435564402866396138158905898475084126999947810865940763863143766115004815984372659135994281753550371266866273490588932145695016662485825420756487504711019785886743332420192570893587851476871153407533498669054090397466320302277777542693742316978359395042661611598488737314639559302053832159647839688266813552195566130906686724628381930221586657178028150091506180650176954240686297464379995312563688064512130982821982474933040797453043697226975732567175782448980606433579583422518892878316638505379261939530888057321276300948981868362465143785494926628103726872880032921078273412796579246008731392191560607623818976112776503408746358965033961032208134394050603391302303585288440918636754031320275220034846736380587772788246561804074466604351590098437160208552311100957328824054347100935322786542113079648152310678580130474170763107238677224161870583027019503711730843277953720416695078112589869903308677484527765057370297547718038038991640224620490702753878982486033585168967347576646743270262295696922331327721734155471899952984636752188601961814745575175543445173846382232295297498798126320324783757588359725220285249943221745759607832695954016577348852037798512662790493102952688783758116977722380032592317359043257604215330709964374152775151231256566206412408145651637265118361986277617907443213144360930746199670441083839371987629624444736461227417300851263658181408171140043316719615733463119400552707752943154297532567213639839457755949801435074813810517131610118099827600879491453060739086986639394451413315685397319814481486967007968587933707355937999379869741661537961274717134288322461213234004633638783495872070660076509491641818874759307994244263015118821076087938075615574171866774654557189189801152888391252938966685816581599669193103022842553828998719251920391346030696585816472244932320900418385695817632694809149617926190005673182403530949191686231775816015936206526830765237823320596261224782052712687407343105780514676469371731759028770672651437559392688862756439447486693623802214115794659713338713156585380623815211826319339949824289915602190131793971499957999053843640845754027012971741819736484635950030720944959094815154146614943981788068947266319803050586482869871249457090293295470995383969988326877251613589906409017417339271718504056392216286295267272763196204589231751889595740690352950700862153878097138601703296518629733012133578944504820953368830610412412328402499354569040010651419510300686205658489848957082325279861773317202735472713858039146696006058310811894458480227827995533857485470455401843681148346426103871391719189984265591978286097519499218417906914680090676002718473051054919911573932388338093817698559378223138389933402208437029706951328740672525201502490164054180736747754729629192245923361248971634798394625625112756811054207155825278237436772646111808497278867986100808286651908291518237343727290992575906134871127649022045721226581479842893221452801191733627455653185188439313056597837913809399235860808831717497306874997680913847562323038227322636143406723951369127464133444148288156940764331915636275099047775251713966107123145447811968302499057752008628920787067804714713961064302782668119580411896376613052498745889014252679836594010683149724781772617286802317930314448194397731086736695372509444451265138639896182113109325730600497887356850280861138050433757141397240711446106056639006373827803995792094981657684606244306053932753747617338388988439684847124773068280983684618670004040683120793776855711875116153712145066820563033305503190004515152109359371003825543827107438987125320788760510188674000439393097801924642719353201574485303662926018500350324165108196568260269551610751657480881544673007699053789870305709236516195719061588446310962873776275493079734667580133421292776991743053902883155153094160546694777743153816003219934872746355942610650505742597639387809391150481724278576516018401945054486150978254261914354249974963415079588302090367357448545000113619135909218658543621359114102897121236353691855197647898185513119727598298940642193066635594474064577135466903862307938676079967324371042459822942794733374110820466733756037483562312828343366123215697364007226084828886476496756346141262655562586447014927707081510073637239610690591618172685693466174579174220916151408412950565182783306841553519280835736415343766249385061481322404903572925112793881316085891787349387444383315802310247280245948317826358202294717740275174201036999474540791228684913668605333384071314701748369607254473065747430836021969508718470684254592556516544438368758277714871007926362207227971280807586506317733669762328333647312741928725435228727252578279507409980125773638692997025369799147324839077354682949564112433008747624592438805794725251138396310060670827779424289449686069516718978162467843457744253716115462640586083275974188839753669867715927293023338207262728013212398129931691264311288168462182647588466043578675016791721645175028546718250063906748079334518470210872371939880520258413548381617344706412722272759415375496675756321751844605615886758999542844274914265936604241712643164781276101685647266786271786288732471245527201878056302169183133111872769479045132621073216503073376172586040104815672744893728515732745164541716471216875892342360479760469123203908412544938686203462399215186271797350770445825379528611816557072700724221756304329843053646665301102402205954655399825252607926035631887925355436504662373977509895761325372556394145930892571911796457405872369616896572715834241373216142712595693371894952368799013398925500592379145809374424666292912146280245672023832211765966503964205161281240646838697948288136848135741697073339333850375834011908949279791962513906023485096579812712495758915780314789507099081473893791169683985868429960240349579156456807474660817621797878428640510219319130853976939561107115749853502983898345335136631865776077744402031260240188949360303660190361250302331070285172390046155930149902244893424766929835255239217450803307680692009393930233274437976237812591691260535431020101726715396569935056717188419379282035468429487875807743052947131647179807351767823637878550753856862388569937572637595187459005594646654175198133300534835526276986120971907785303233917440499532268736359344403107900342046864621429681348211327130006152586274253687363238803857326263116588810234431913272095897150383089572435414230266588500511737156084424856617445719060980472095713838237766555069165390265777889111082598225635192853684619167330461861902830543852716557518825769707221965343785863146971713382587045785211672861186675676205146475396120165904782844866245121310847313090378469512032355592962246997309706107540218426048182966661251946294418680518292202220588118998158958569022132564211463366389525475664107629842032234237549232351233617976439615531875480006431350538824126539641267099412568280862831182317957552100958471238646106735988532700207751146290779179575464474757717563852218296840860442768080991297619012202915495475956723542214757804440750935296447009090069364073448288559748944433619441332664185320815282478119313021704370115778263277322740141883496551754242250759366312319182368654685757076569276333134734230858911885529898742657649957436334163476236558933213285964893609048063808149568626028295499992186492751912872108386771040457030628620720133296918411005226701893987086943100709050411474689245624038898077683722263311112106557443691872681997483964683733365657755980327891499263332471163699553286144962976219094352323569022623033614466133682133544345318110418298029298132826539501980633672694501570459305724400628126901494829823992782189049193907949836481415624620777266724901610829904769744029606356128639376685152676668957424388440273084983029631170473570881572561712952883474581185044491186347858405982126565566950253970275066176008671455176022830710742246465096340950616332336872837270033179859998765397745159188754764283244511269612258319020568254312210910712298709779996829006928951151526289607044487695824923877708267959857097636453329605852214450681048186177065669170512594653903230924738077666824390603765942311532226688526649790459767403339189912786493647352660616118428508134162072060133964724015511171041329816203286268366504898300052449256536866007475679627830678306364816750456970118259459577145738908344819935318531509556601210711733781646091001401781815309637091795491815958839125641347730117605693538141352273306288247869778587272729399497194139285512184428510639559183262271636816691853270519567738672099797164095735734462791832138911529242984765030561137295479345903290546737233933437318127866111646537189157798934002880255509549680370782491852457122858003966085555702093386101823601253923714894875314598765658494372000082808404124438902380422781961441019638261329643714673114185988719334932647285938494658346284720039629914436646266989595346524233894173273956844677591056947165373257140370668904556898322500350494710951933640200436405069895167006314481613866720816294849007281567731792236013632651508738447404094923441391823660890881753476062069212076298116923246210041744676413081184136871294240876879406057304994325486659212950828103442703916959825201547621021557842969538184308967224983480653522698542032094932061716056865287058892723218510003830844235350064255855299471361234079850289651964800690188617291674377044536559150299447586237353298595064961363965950425332022362833064303573353407737729563280775421941215534452612644769792384189978952834324544184982920552380430907475770784644290792387656902634123596574741241694486999397220930138517750364781046322362291448576241150208792044108679784946285147444966032988128478847688495177352993264481759339236820719455274386595798855184083067123379431069362990232210802021620043648015791049262203663842293479970206651431347993611050432341568672461127684558760858171637616805277232816362171050902760083035034196624289271857430458737205385940997339021988595648916210724666451488273690517131053460933770473008364374112275782670193883054309490145796450189535639817740279323657874545791925938588369139264077665792750021020164954531889339357759938908374388393030182542705771823986168969201762678505591452383290911646400641002478702078062987779942075504173467046453794132939402822620820694528915113885362782300805029942994984623270083819181065522055504464791350981447791197269348435105692587741038617233393856084744270802101513800879550837721366912501628343439600715017488679319476919123878546584553884513812311006057462087353409269146918872471499417701932222394973242310972476379465053613777591517761132690887739399700300168046885928344379319212336015013509136963380161914528510380610809998416333532147453187064636471622274020814402362147862893633015644932467257547055989528443905796350811640295731372631171851839759783124581693099710951115586060984625860833587461884902827979935039863439026566710459358564966898198924793052089209705900775460450900823468256231008333172131146558041896006727238631409893364504085881986304722232361635954949576198797133945462414119312263069099842460923533868677453738995626243934083700877567369585002692355822618603949702525207559383932318062249416024810799145721910018580947283809319282931568474766471954286514166004863908537784734899415455635806773872869374415894751150744504710956350703431585909641008682517159922225368573772825391601258262332242653810044056085743873582046450846602573579587661129348095034745171526672015568273415899286347332306516573928585135776775931407041418475397886337288592972753925211942004728187749040164193295174185191478831433221578397829944239706241279727773424961254314560258273542139861158759630694601217442178844031188717883207559620396802789204105856140324350919297118569800815748772990942355059239041677528093633581303938007801114517402324338931881193801264865442272515806411039260374979568633320633187488017604198437759403810758637477374919463260363834266514000137630327536653719618549363197891412128615362878655281294699573883331334412385377232360353064171024342943320862980671206910496662932718442972722180402712910996663862119223216135099476461660464157773414251134406482588213356529086732911648459554203845409098276721391433046340943908825785044185917957192349885435150619316562676946474792474859137720755812140837783702139757572552350581804342992389467060011260855474009615430251666187621106285064501093267430135683223950908591125008560849327414654177285247662782937794222389670875379557410683290795926769389406587693781564934283667822227144558491308574676397599418098723262671881989719537214052910457532397965714561652682883858935910162814439557483375658440926831512933547493307320658621563409127612553409391175344981058885471617251739448289260455739203458992067876762591009090649411975942913240572573964365495606075981761022435887242853051159813296974263242660306561914673729354809767847833718618592782945538234933242331084416082197536409613327732639660754504328842377641442257391351063768506307341468105467152057241529272277314705805546800818868869707420476136290479370497960906261879758505324993239351277581232542084440650642513283766168115139983667326901849337213768411392726802013081204078646776281242821669328351581226098627816096950763039227394713121344789253545182709372555246994575842166392014505648692128432442595607189256168724782937203776680664791882398975887618456578434678401596869850114995197874720164099994804466088286159997292411601388965495225222616858719270127195453306028708255645970654155764580355162251842367752512854047512569923229975087923414203545269100367481750757041077457589251103926017778483005818593967343840111181633468107478490401738273744243315991014296015004106236619150090294952210985340475041179720440834660900291582957210286201335000963988088308535519213904382120929042100887155383405247651182606824896263218280389179141488046349566381251984879406048564966022593477427074147759838610032963952295341200037497352537525359257189127505071858486485817012358345340192476416199039336379867628701635835741340904303137164323603575390618607354835306685374241975782918037867224673520715468797678702374461358118360468710542427734000628633709417126521574249191110917215120049162218333427695363449235596966400291418004870888443924054982392759661888250104009807599931083620620688007677077364039045389779759671088577519548990593469678406678650540251651458825466005260319274710098502578698687687233860325277463377348428727020874576192681483794719579697772599153587365178944722021126167162349575866791240815410177707653536618760671007970014520387738276260678807039441936551440460554501326440312863068711698931480987521269376164682791757289757259854509040126300734599978709775028070298940763227953082896659496195832462358251457073437560752297595946110374187327927200118728426656429225954018059615658390022287251603747028708551979129698851064868050577517396881071162506499995767473115436427390766099956740262157260473992403394362602799245670866833866857671078356107380326817619280156445925896080343458824374162225573386756815951426311817303201435528491241678031544799844470150980091584475307906109833800656105573744866924121449455094570818224804995624210454720649171380406649781374322311893007152224338885605045383000090928549435455961645989221756715891675143971645262703778770653835312041860118848064570723215606070297352275000831139088369744267989067351585418991431857330093339244893728355820434200923685504510773352918364490157528943467029780366754225817549049062109032787778672287207048558184930124514529802608267594163207558011953378272602516559903046102436207797345465245371600530282524141010455499033194300529055199329150635484336332235758314340553682023870906089728164551238259156304362722842504862188882688191473409251398766543220869951004435447765050137288684454946936176733763607062801159642024555113441715841069028107555057512821513330785059930048501490107497197611899862638592071203411077105207761016912540806955822135291679802520349747293450822707114398548202120090054075057148405988334370807939980718138174431199039234159455472617522382297782776565743753968097407319806011626499480469778303613296090674504002657026717413115696096125416878606014006343586719032372871427491614733795117502237018208681699736970999217633109146863614579355809934462351579506944196446351993807895643809386648930164923709254299100700853779343502702047875205968990984658063551379198988553462575418465715348766260116565021395675622114710475596147013209815752626376378067637520569288145644197974990194087578051421328607778777768838896142734469410146226764410809077938408649668980211694699348006639761126746063793460884493656876885685656676868523846450038489613701271812551160099625654052161208934277582490787223399410619732164387487555432598235285056125753819162276954021994313251292439511622942282135065853489270600160118513249337323111654570621452979151518582132017541171575648348555117464705249081501828099575332397852054511767131652835961605354623243349538009476131803241872612978861156689254353519364193195676453449788928073125861509893274540846605875643142445451001471624927853755893495208811386996321405971250074007090203761036013481627365073076416490576026468418012290254311099953691794036246303468442299212223978115643296042425416810568553168940020230745848332404734057214725090760662939837943485680404064514403177823855667041469253989960628622428780893162801203021227867726375191335439503755362996855190265003259416286542686988803677846966156249875487225226639032175553332856057585351870477622812156090295734075417958639555724430370886492580789420660367379118825766294557152348371167707158968011137990851288613943440856540931243980370385819163258224485682616887049622720734859280467223726483154316335275221348093819687887914211217468226836187440546906575508230057283762957259947655721216153628604581317425674831055754969273441540191064530532541053390479540310909292388078879220227121674331968446307515915529051699011197666952578155883729309018878297192507596067731737184522452560478283130226265403147516560650947349481232379185072104275463949655251111063555553937955391470933167993509332449085510449983905947465486353130584730391160845763854187217661163753946767429720943513857662384902582800418971051190284149900786867977029481666572145089723736466913834038081501951276771505066602637391997598423722047820530398694047168802985653804964429362227904011084980295780100694372110818218632281247484340562901299128751411811921679898870861618049261011701708111993259497416082231415319376175006063330566382944383034492953755459615747694766605284546368372784914485036306403143631634766223754583572989351340437631771858332615503283198371031939825122877186112558030057683415711900578715519827544623592187231349713059267299014669819916059828040764927141434211225777368893787527158382668235718761345942372866976855780657315126253597774770796149468681453369439119486455946730796151786582860351892607356696888023027765413865648285609430076611018477279169437894635045930129508726908400283660482622131976606281696287626393229492697793053487973981137059903044766016296491477718253635674604803832660376606107843942219573012512668827521727485084150695863490716149209277774220701627587693360070746990704030312833677601288162323394193858481329908702347232907633695490029821740106581417800093039904532780201544756731192344664184073352801237615683182221035853895501957598637315063907896918315905827371758698650179626349155635985142614662998393513703233334099849844922147587568458733218180280618684955059978544975151700343479108653941439421956011856862761838412433371134829943778415748200035718199570444665667660792491047414145841742834323492710163483294294257741619961808371539604111477916379424109800686222493500191688359771074085681772882487646826088173543500125125416515205036079639594327371811203843890318109172787381309375685086493156928174387208707444226307585241518829322205750596800198554892682768998169817199420093961233945176208301020553445532185684461785503461619527602407796602742367511248177587959527537449255173637774435864852194138852304375201308843112251043714284717052167464243123333862740351480288709630547965120289504803386000473069413500642662236871581380703446465960620292048838624081912588336673768604268191018568356367517196471735269689200814231874523682076103560261744246972645758608328659501514621140949572586580515916787991503988078925591715510226848855001264626568055285919996129679019806159254478298304806955942468799122711305938989692190460789647337333022540268506606884338897677992130902645393817697168239220656714386216691147102157732204633642495609854296282374895907251620895450620123464848025821210974488028949631289336046062195011676093218154573500623196980410203807050663738580274538661788504447636129538123103983148326208609730797221106816215077199085012689446746900390983343490974139802936816191932458907565039889166626066681057638722913212374965732180705753420280969632350075999497765743224229648784216924577591968179334564784353065259565384807596322355701468211619059769492896038406893117225497376542644794929061679732928424186873511935543557906039933198236992947962334031515922563431663473915939340677567125178294623056003222089764500379684019486110971436875321727310366310374746856160548974017967597460826046813440174493390541465241754945817265799723008122711645356056345351191242128400798451579193553439413412239256364573001267170453359008489498096766801664923142865381262197748856496413840549144435503027190755450360657117246903870901144619286568650865597773506984581974291464506390414834690607500601042816563198280434812648450342835542971019367620776409763436590118270714678162783308687214307965313156288687979424268182899347126781409964017119048979121197997445745497932330931287771278713424571097803890621126256518172484836078174297395958918905171317589648783723587169717989901408722613608791978217832745218214818462638680286202997774703881316675639679690461232167178246860658474992233619139078695704097974510982887326830297210600831479767822912179363832711961930881208099726160237745722528460039442280171358032771300030433997059353516234574694078689447485754693394086663357734516599528198876098459692366382790048055579325733208299841465870818690890651900755176442246298216338454708591219047204670098822925637195457873023951322193724610042530410723791260501417788910730248372332904678052448178255437643954248687499001306603971492198411204761275806291719170552269476551025256545879662929065368997701367667876876503396908436793910983972649828296712798946899514994729708297362614165069885653822507013115165689439017979283788667104369281303253622266202388687899500786714139996647873461834531541418338914259670374814346149133800156394080402606306516708864960798542708648549716566933198218734376120177528196395021992920875889761303513544415938084228819538335408192701110842961573841514856516967487788176850504366644258085952772665337424571504898972229588627424448130680530689893896935315474307990662138006168191854164019900110131625731397331544620318277909753386958950616455545666563068174273806103456679939315808364405385551849977376999731016710982966349718511723003593968111290241230972204609144355587511003660475536099323363374087600262852884541163670136919454247589938821083066891884421267905521698327679684764756038394742582222864849063634672109685874610056845809106414002766434662660077339552706917216507154026935691073913209081133760523548884056151292329908800726459866438021808623639341735429310101779011282466850291208908123228689686924731602906645066181724754675152452540844642220314279633791136042860326636064653047607533132693227495387635277146264912846977663656660639422154912649849727116104061953991646892369564038550058888296252604573909908720420631660446044631010821113818821104518036888829167490353587456690783881760775948769217729669327064164630635855612489973372343296636489962138749392982029869695604549453706637516033878172449816827193390203554855239403303426307993070528996576257381987622156073960574651139664263719747619059414574806854076591342148396643058566610743486838153081683589080886557718821709306376104986660173266616733613822705301769093655784624126055116955958844282388268942882116738630979930135938845016832094813728799545055227242263367917469809975709135611209938142405149197741964931895162511360301790144714335534677798808408459383962859382043472867036675346378421050475091920613388677200119153339864356989077077015513050567229738834341225164812270181436327931424792126178329017455356620959751858547957365945826864637213720839572448189838238375404077803736347295028598799978779598856383210917389320733804309218222616399871917407399313836476448738424949415697216195686838647859435080637719507462615800696769694085422327633031810930245830549842991600922616625206805853736240149493352724694190173949750407613264203713688758758877787712500150226182147842076730912449579572080467213870311746050964552698138017292657203365843822203288377952751085397481180975879289704725534669779662202801053933791168488640902973124574039235470361530208521416502925949936806268452292388005643677197577982264533237905241424685676789288547746533792159777949307007070368332635601338518501433025603292198790355028069503923814916154954678917967748614971237091321601454000866243190462982895495901115173779181639132692498766081346356881057279552705632662114841387244506839948178035136660920511054600463537508554842103260211911841945796208218864131900909723905272902333792146786203887178443378348661712716264327802038235204808464584015713706015756229885425226556279118553896967645674930313210742401179369944991893621977590447890373620352332160879532154488414287881862852148382880974920320458985159081254815960466036721951023283009866724138861532178005672749815341808154165957655511147991099894119794887931319300691938063936458812932554671185402158070163908005487014023697794706071440311891558157715656160167928246892484672453241992680431987710257136735248318591759047964265250290042642668166713104856770254316192383560629315987959030137785930318724257804074673444187485178859896165840972759465340827423577810917525723082825573614972985135232218285300622870952063493150750606332168179366156279614935938719592266821576313391063660423926189106121473870841116506246395750167518557056481178600059032219048347520834302374298865745028820709605483760079467657606896236148442204598343210682507162558849477496567628133322452407334423717605852294620026997739678015709434408189225994623535127495800659517972310960804933467075060883169177126615536604641940128377803769502158892724311985720282702823584466280585216922323424485745972546141889221832657141002907748879558544853269002894091233047569227720632377170947099159058571324019030347498444663909530709106796818110668862842118037311177402103141982769903577753673892870024407554614096449275504751804320053095056328045760937870883456530109726074770258857885054828629732002370504010376072849512206637176816605515022000874145788826540757123176581512912057644901648819501745109679411810598532890054555276267454941205323833601181407790831303564158173977129493995298033503928679860739254492712440625712470506353804382613566518232458043058484121232771224358974927068171759912435234206378705379135454374558045767291179611058529833202852211425361457791329032595832160808882280208941966142928504134929581455503497322376246617862280549041212852362006381987399690423268939741613346248962285515854903215913443258240475477457856101497036191799543229823343955373525537093573027716644718161560145375443909439581467189607917544184270053324414245406256501415524066896866622581580795313738878046108195395722695726489655213000732693478595989574298771120276119638207447798010101325091912755767637423649985900295888806391527516212296424048423582351927751556783425195777728022554207887724549361569648224435867769040255272545221848398540471961377067205569292917333860252365433787908801800582996556099329354760182203223546852635317800684040719574370035489750731534996489859447585569781049981769644028997767141620349945207279244366165166238920691986958598172936150368264090647086157701570332522137173165501195880797942552494426142198477700714991549588375027654558912955730456629868256026753733944583253986170445990731960413391843099626447462442469625863981829658967808538102047647941140399072731030813886402047982587033107293645205484271355325280068690933948558560596255267363944590777336404290067882238900677846804146225690019362448189540799977602488208042080425164839637675398552893627107784536246098553499818692121498507399789004121357310182744993353920837490919487352722219073813085689436538740441161144783184676576651136136011860968748879314237984669147104260708336731190105155854633735617912935842869944740121206180259519535021417225359194442671099191310849014362800330553730475913079379069271802951008623652423109978811125401712982003377492175658776528315456311201842690463493988730426231690462904400131228502006906578969949099180939087309108816237019993230114815476936273517835906813122322987527538065983482805080635700095663436449639419015158532807064872973816082626632260569517951038417551500972644787801303722251987006560452534359330501334260971163568212557678162925105616591156650300369451574558865169225038670218531744986783346609876096072722533251002331124989822758650311497422488297251619921273956162119370030529662507934084444370806596621495673220880651365991569239893684664628789614475940020448853135281530428754283080710549252547488446071014141102280953273323352643446970930446034115573782555173642885829060743468242915266021361179068627571127645588934819827427935218731622438786855223641405027900917064370941378110356985451753115062710104444169461459618014700551371773089819544787990730274241744268477202999557805037071919013126703646950097231359912111684809200774757433463862686629138084167487838777813795304523995630953122439115868967193456267681882542476941353044514285398648090649424989700992181445671837500277387317661782324720931937156365997650515297433257741523644376358825441960599068060255166576921120861327568792998910077965954957268632195281868397501133753440497825770506901793041510722577565714111032984611234812972359967887757464700131615558945553464049035417415525545781203720837153968705116749067580065412751097130817627241574400417401473249939150170890819828056578401823096117450709348519317808265978518079831913761831468892779659792837098094738555798677999743969669172393573859805025686236798527603567828784462349885774150889240949289186197085912363863840621418646717288317963818928635318156505264855134832034680526325560942290357879678963281582163628642004184913807678017296067437679556445616200657966040830573159401827134166684868809094795569509219748188363420643699411739844656466687315554585365065247786954024341741172099010835473859623012831216025297397070215276514392292883028267581513847109808584785422906874749905336868884637239562990158026298543460997425596679124584730509165814473574520181122895608145399559654719158538609020757856301727168349106567329172977645853343760387558757494099931689056848420551766905275387660562120218874364170068375146756904870994873032980992121766016803421285881927329621368321824682070367319270130438907781759546361574602549047602489958157857295388318273480313118685613925133293137778673717916403912292227560032172427793473872710684076835937934130139545235198262948652907641110501368823765274677324152792768822547984937787891460353760626157542341049021811484384910786659647256287557679506993681697151787591683612855359236559023969670906150444369941001739673761803665054168812545795351358089065374212159921352365279246188899260263660751390325006494988022224303718223866478646900015897461738532913251367346344681256843136384763143943074431464984562029925540823133931942317828083763975155394153341978185757714736552005665602127388194105244111352674374340572857199593537245195958278049302043033017793143409341579692768650676942059197014770024892699672609549925921296585049177784378977489735476754309955365451505779100906251183938980818480961881006301523378473269426768327419185061865619649923857815212722572948568766518064028028637993175056884393092248881407931302752680107240808006121292242224381896860830559729570721378786576350135435362133388127934535923882897824190974749798054659940195530719056644520249129902542648817680438842056252526268416520103458245578286358270208947677963977550348019617179503108938116439478016155733465839432100747157483960300443127880587334057486939732619638495889343613072244978121333673981805071579458575804495338829294162261263599310673166505285035152927199225462805397226928595484253203076024572691875881145641367544690405914207700167553776642711799485145829201102225294462510970576659471042436500813537448510596313615865448604868427386925032411365564070685344458714538309607761436681772229397990147681715551913316668964969634940017079354978582979949270100629899490139291253474103909499986654635702040843825103336571618516122192668712418198288015007342731964499415454816115203324256379757546191196058401944914582374343680139410681351144943027900975906610427835332680366103265100253600186286582077744251004412191479624377925944079122250162777805741196398171330457587495034916946219426271697844425010633497886054916193138608578817796699537356024716665420843587586143112373233690170654936186553310396570381904090392933453975666562731102979596502053631496573758396422512008617361622784870749817308192587029419391186438138588021209250639131832484660232925002203658989806669113634418878807949541311187379296836195169365825820241350453009312772580175813568058153925191781728751436089717478798167787872036975028132562394392178199323166412884865470412697671604335099808632154484220484285974876265226767209530965367229425693365245339883540108769340752714858896260794930427309615615644821945491646520464308384452618348185469724920860215779848272425670478501794921165777651312788073948463498583590169122041562845062515476211941718220805170782083981088219172647447978973251098659313318976884840014443874298292494492043961170740980537649664357740843266011145606163287489471899227183642921287724180570478514601211025797899256103690923108340761438260681981020456325682655037736504491229832418862658457580094228811438407483038269207105630444753213924583118314780373989653626473137384552204559757203618335980632107318740540307112805206260080571896594298721286689234715548153598710098408857946717742025416268333806754481888804521182300443664092732004558427494276839565352554283830121875910114243318291560849350719723710581660448369964970791729855977120821332271384023426946105374711556088487685354135044783399258864627122819556336905713032868958546795916949451885784995382299663528776892693167154394690224783250141905883731211968542980673468414024036557019751756157267053268057258244869491637491082409782567346352882652533940098440474531793537770814257138662827108817027112643644010144950971112331258244920354477797354688316879047960481930981025271826204866381237516284154657641503913629107762082030116264224608461654777983591260919293111966151657868891910629825624769286799871499807690870034487283292585527533069569975743057065384150663343300123424660610186522708528096671659917822948742180089608470257532077604945605877985321032487714037436751963498308310266937430910208435301173295447544563850295056681440475536577528280198460414747392499651893253995041806848583049293934146412552230194271524203619586593398329971262542311047328491261008084879770474747456216157903417480264798408353326088659783589401541159119679785872305847929974873674992029633259418174053501663767625803845546474835065025015453547006633056074429221054142111021780277169558991526378828723311545818062646328580078679050304289934855188059888848339899727504800487263826016796110831096026430932719267611902173587034788328615974660172999440703950845104384688815964956810275665137153731590870223355950801334442643461905673253776110877264696764681970393760979611243149069260938053483392868594714001767987459319179239060432494465873148519855458258514741529716675838796264975772034334362724636266492897564757569911060845556352451127818007051222718846881385828970574637616628385646231815988306962153074786512745424337328114520631857506894684987628260942943477382960872072055830591679617795004131475567055982903804801024872350742334001287428723420507574507902798715818348416250152957211170639022061437250545915634927228861219716267695767624032200199820268905266006138221958168497925117421810515440849590082958886049117751204397598626488270114857613838731717888611268962164052147766422607990671145445886784089089640660999128015184774152818522323099549436114655707904821752994797445282965905466889414436859462056212397281495857221881149786480358705105337684381458372674119333198070989026271779208572571135026869046755330018513789090816501878532836436665298453632801777019039314018659707419423826026876761120392679540840674254859231409921598031254571495907830876830199249904765822912657732932394411093437877123359254057252344063785765476480580484604340613015288658253661452556125570782007924356000960169514102783764927672769953150095263757054726650343598107204714630740371981507110063674581151005321326758422004443729347590950701866974137296880217232121022290981227079749033244410468499756021308752882832821875397686418856284695473037793432391752623765309774310947883090286260260864748261554433856237758918971915870572843048951604351198195843802824926429340718311854684040875471185061315930016952879913091297451172358866955036371453236295926182517808586082660499698535022522549462121252738640580347032243335512902077488006247429592096640411686411516584056173889630519363915369706403744352818413271831470275305125320060221435877794453585115504653376161281215641142244528667546943914273826565409472121079175825980874755257852290545067487860352214244554828105887863978483312551164017558175322041254919728605954661431871350425970077950667861324474805518604150082541114699488468007206990934942908187730237744361243042922852121546048374968721065771713855786299706978124195706201182221987995510812267467649318725356719305874856957595525651214493279993553357997874394044518476726307355312624343105529662181043909460934042856189511483751956571339965104539209397482874891769505550900338174806923218197158488411832632321327961320284839689376180072326193662250588266514423153904154492090856522500266574996461597409966420824233633092892390886895984451601806778501324267478829116240533391181841796535634580334746216153358113315028413286742869321685450683204003723535399954023030028821481582200385441626852202115325874380922654199366122934144161131670527916833809267814181233310660369826352258557356709831480600869954355723421469901339955523415796802577372843509467983133419942498383937585381883921512641287523098464928870867154504178915650268065940530849562207947020160467592477743542391600679925286907848060392456033254194666113686611152068468629969988044929875745581452019804944565773344544612845788502063099780279031261734944308414196917509454170241316220707722244274878450361514076676612211026523657227864060184567310432608184017325642090862598263090476036479595336283477462297174814906075618487683639272919052795142286099131887975420207240500410981092592534772792245656996061100604718052585061919084471814608001384675982704406321284483297307681123565948794759321767364689252811487536997721819692905276066038451262941089594197431688830892697113536628323807326280976302341318440929031410003658925163696877799181514925236176910016925876149229684487870310712741427059381093492470383730377430357918191701207000501320395860956903859857006091563864222122412288068960539590118229717952079292426234317644106296280748747173058007974356174906236404839569183734920109159562717735163002139569326440841732650859432184143147432312057066133364705336275006906617551729975994105062197732763454198883839179805009733725408238556313102620910015176850593756994974287519294858325555943158700130193530028055816193495746336612619445779300453210465237472264761475935449700619584557079688406438147514848077333246118680321638253545969685299240108011739911609174057024336168135765861496565966040776210724899418495932424939249579810154398125896294751606610139490381385133105753073768127174025259648254999617003693226368484208210692434130905218791230735571484410425480153428213331191021246793291825020407596894982240686716809712353383332317699429708112246266697488006526301056107449911059198423635634701977742989875708346332849109338187465913241987450857218485260993482142249781510976532481497901193239578254886873180056954943670681987456814546405003280119281660356367388212885922157767316753656276744704795552603367599018535514243145544705686486957267215860741934558870785453241818562592770496336872420238849177651681817560883997307058473704232374579098300617151313034812412925155499895967687712293537699601850173454135070810752333476211296720025384807557884037208744305980743452045639691320961430912734382409180909036507957693185945745384074230730663800429130611310974635202960762271114462730316326397149231319104226382883250970459484469675109696698118179026494590611650912899915799391543804658367455053917877321006052379403118926324101803020441428615789963434795194092164979666585618502582494108724238379242164024742280739788918408666488692443544040174777089523555645059390190738777173949782076778870883885627225056233484394104634482678636645907263593249464807364849553634099976585585953417929344174232247795831774695559021669007240513689123289293309186401266751345804159380953820301351487625787766155768040888595777140390705361151190468193950797619982370579197477430220222973680058269208608648692876053716021074961048620335859616828397563281550836019733214266019704854650155294637317615423794479564082462090954778389721146863746988434915962332734973754466777297148957123010956221268945938400844989637031474650095972836015613601550424701479808287635046088945729943633158287406870794996958685627628824468172863688198355755742273237673595400614538438420902394479270593584295975409971017248864285960379423520197811661106624781518406643658102755515886830649908011047797635429250429992529293158296279784086969204609684557533297679768064713376630873079580795877286076163267825165198793724779639112709029353158971317116324218607080361626481522162634368148088365750868897450726078006672819528015825415237050693856108018820319370206868675110415598305071945512506433672608042717042882474819802591346707902079212609018466813523242558995978793873138416228586342994087478877264159834276248394067281687098054154580567662110188832550659184260933924123333855956586375162103300007355099263116764806086865556931740938261511702120723712794008251402985715386396913768337680250341110211824795658417073378008645324414137381494103187846582861863102679975457397897912895252071315248715611495358293322918101038582641705782454540160843424497784174531545501448168591109849172866337878899671276175216374157700688824487643201718587207728088025435578056732072950693113173681611117277531735921060865499428170459775656220703321094321268120581974694350538669412990006827232037738988400216128362465573396234846197128797115982981708520563870331304438598942971252728244889844197385630033209143725144420228656077744806555558097501498195649908980945594681442761138328144192733788886377033134917460402337950058832586534895043690122878339944599439981302087474478309630169153400672174093451228453531379528434697050923545833598366545828864024957200692476383848815124160076446418366244347783457628261416470345103826416297309345876821613297451592883300041964492659562288034884234303213828989689751061581712890702761418102040249589034595786468185803956657053211746855578598214650927155413936561694642068224301955298432148476257791734148079795952765743448946479322144656341491540460606483704053081984431837565324225264126643718958726990156688895129813974595147812447323139329302938350856783411630556575997223958462992264442080809671569597035628409642489094735564467693006094965905878298520346824847139657097128483592927391443863973766039373918913008556921358091721502603996969041441295383238891874362893897710309875930947544742395181000168451814869277537889076392081386582763454571436115163806155723210218648302207358456131679944466927330713572081688061256409131791055251484571293193344658561814860904006416128152085559034912714877458455142428484140165115299825792752204993810988852839892158640387907171731698171022926886912539041069128286609427418693797665859613257673530201635940926256863904411955728719333665096787821846530921532825269496617145024787531932547213940342493460022723154344426745610894921878569961694003203110477867127555574515702273713186758587683860773790996879158205546594286085435597334467768457613070105214956029963273314521863408477424484587137414411623048068905772668386785024782698959604396673531197973651999655777225472414448659654038168820396968914096299710929509514956872979738888378166335498380589869621466525321012755638207557321782939838593660002344428440289324265228527503499468740206907248317596096407549093728464518891794885609817193862599186911223313156110321596304847838525500713175639757887561741108532390358252760100024356240610362118156203055408279060811985049883827033458777764555388019645296210243986141652601578998846712787634192574125009009967267500317095238792872240501728773044140477175394532444257573326043276986297719954508167230120628791636330166995959888486858717548425032070708437519209095924096638829397336563786286017330228731485512928904550609410991616838193764780243868472013598356762599469026086455054259696082717863823819887046078405663901769215972542152066668034865060927378016159267894060053691522499870113821880749449379167376294106471682755994503170386987575872983194808296732464553413067009378188683414806544659544285005429586198957043798268432934545063017630480858060263577890478570655120446763686782955822427082460618396613641058458491544739526624917326933326459381280707557464636348749480320404403917681173252565235521041488747749985661254151165367991078624314117239848321192648413479724328963957557378222878258160844321176533515965780874431745460868215641475645769998298403741610691847160560509101520557906498482636905958272185457688993830360952672990054771502824955501769303847321649074145828022623719844513680069608869712976017605753481084894366400596970626395361329780196644177288730249867421934192757251373889855172671864983889227541513802949110641474149951531280976625463803963679982404562948201944969164802848619263690578369744139108840961133752410953733914960733330015991627631891157485378987318985986760518280927548165793060894486464818662600785873477596478871530318010862972165020603067072914931983453988967280603363440752722236872513299238811244718528849083806010773639245876599396580765544151927197287599250726974731897044769761383142880153115720661174554696059573188669841340231720362772431435691112448258690465405496433345190078080428767368730071981657558804323525260394774866879637007233279074991685529183212926963846473173034592306459582812750076491370583064611412779682980599956911511787928765052300167779417813422198503863229793943768732293431593343747433982158754747387021497910181171897065214556197075011363395531566566901139064754577075103701132451433252760676847227358052037541063149142534083398980081878472570573680518562878528214936954355558739371778727178482556082707695172031915267955039311832888341177603891565848775021761312180351203916898089267448524629835372208710465486294539571664239300428304934284684557901857541917528853205527715843038631961100710171311860223580975172520916173005221744273528765201721108726899184145521950346030332892511348894694295558285289455272350816776092569368706133836668554886508486866287280728617092194523358944559091559002754336648792117945490563061098556690391594771748990320118390389069727956722096466432890575780884811474769851024058603495779489234754049806466960703965234997063273625418747182373803024767066355688565208735058883750396110988959719249585671598844796192342579583425782874383292488349284445959857340727494583442515352272868380338432251702450407741312746736592918160726690883582730980080724978871771213265869709007514204265522009950236617387581947082583527940655837049463716716909619300206775741804407276346388684296479365053817776792326603431514419177609497368848823101981356368341128920286793048177272281705082809832842837553743300732547946668265854137400549506377468580639830659447356326376168562609775802269376474096124303152575576035771805861845525797062572150191200792745981625648489844045323453567880282071536076982312913248691773656577071342004370498936910521105576732113988691991289447909622396059955958479476482765838410492252254349970482191751635060832475935100496341284446976944157346341949246891043472184376767521794222275371007640478870013426961537079788644803345720883972797012061472361738292984961656018744197800812386453403016377959587652114009311448972573589790934791398615812935723872767794546661530908478728184578053212396764018241994683812601049751580826048033963545449182392239344678693461500617488274262294384363203738925742000623334137234375083682478954644945147456379190809726289108213220365135317773164313606667102994199861654236955265930175852449525716863403917038822099495363803187084611774004587173703490992732720310758802068883418695028590373446863048138822506023470862240691018612107727498524131018749427452045261545592159701304614068483295731276278018160085240145038220419390318469664849412074428000866636910693418804255311275808889459597883876420659126450400458509170307261907918824098025944435186530774930242469385365372509021531749324798848180427685332533572092713976461321269263168336930893763639041743212302958393419715426132039131552298629933075437095840324517938425231719073720287408437529273083040597691137402853293254458935907699514416761523688004656360874532366162868611434577293003849400311371894048817686114310673057606521240591215676985977961319457730790827136153042385157513573297574054376338808276733432963054515047258454127697712865662348749228135190083454955624624674259674514598805730990118593111424955780431737527246827294192043118071957116251612732505002024179063232132763364822500361133501674253377290874843087468184899523842581694994808903838194827743536881881090295230338638996900427843010394068786999411026359542198894271194461131856191313220304621279854227005929243716234687664539733291385141823829887150080417866018835876287045423586463958668420763601870806985699259418925704578370465232335343649670614631128434954637084716100095809166648928371891569909622170832070937889508642020573444954899316184616089965951645739736403402894230332842033786077556479841517707323608793409769427918798272137027193887340583459892123161278635356754881522803569296459446409318911037840195833174514234662437603139649063073330143112944224581597394816412261226376277381561989793964855981990095013296888374747243640542002974050197926736016566050917056035471048414731806980183672628067949593001271355538673902352526165888943792416235261950720646363116456222836569030381833347056672866300840893315676172036973527416228029188205653262591300962874095712511106575853652614005336193636311897955015016093963597967071849059381588510442313068031399893951567819907371469050784086154910509429042057466351972477074495362570218981699086765033469143828309339191327722151990395418550360162443980835687865959092934667203515981489883618575058767038629491803677674697548880067946090035182274172357561982554117467326821464425489597393659749044886698942740490459574107489497588455949154974754581451896959687919687986895471829156785032833471043975475528254308165783988247127218866519925321315111881333148730155312685042788668681417677544050290266510187924703226393423159584040398721166409758244106544725049087076433272730905486344375716492224199407818361452007888393784563615218125173297430398650141572313085878378734916792449822985469099255991116814110627926119726679916974600049036048955916473894895055300635547280819588211168972537685528496343592966078387472466042345686015859415352475955966728386841466264610484955021416510805533338685931077540851740015270042335808890570679976620324624302513947432976110589472801434152583702049714207231797375887748184101572124000703243297894601015292826785869339538605648720370802273707540726008145627621391736860504535381755051603514523502584086010198680803115370469681144455930163848128391269286565195154764328620119052703744332547242017630917540595178607159445814561107794992616438790239662409375349326877924624116455936161156148707932021998091514215146568020617273925664467128092132405217721855145268821291256532434649099440860464406219307733917055281695069974645208362576937055693042776984117240967991141042418455710365407836019830305875435714806923564936489213763710521889047478765952875083033302988858259984192688775344264810089985287802432788340262603648929092992515650606425632313667277608628400626227244529005476586895458234992597896646287358067788751470799369426341684786269068681025992749787722966190466839032124389652585843345129336904863467835434636279647802163013858691205806592392907347977412392096328963279453905319060524542542325150318884650046943453133519336985636165283105475979518234691166158027709574029860394025128349230498732162747266927000819428007307099267812376895773399391893621479423817198383327418825298415937589426130067164017379652524422518993593263197890791883361441476731471314010712972696725858678045562435080680871338981653427355919233666012281744856076906715514661200902107364848786962318097408112684653199966232351428031245267634821021735411210605068795744600114338027917969028277713358072401946567742356500616698443378979761074285991502927383151096662763274908713893801271765643393506246403613948029382262802487666781905313542902584667029882462501067979327695581391722592724328930343845408834057560022970759447115522688366306590850654250751046415883450697646140390540729174013399560706450201826146681919049582756943642146620578335074797593177420279384623952570057785132202096588657754561881816328829317157949440768040063247186222143997107383839976373685799910944025992972676045179957082897016275390836463570242049492713583575839543334543130971817300970158745375036513184172564491031361253027406059182123435752372745819168646796509301164346817141427316988164738024451873397197218442546441628426283521670881632677822649310154240203457704291775176672719590894243889871097458682842764952769252177744446386812246170491125008382618391836779073325206898377524468710537739426914113328570442678570015349751425039685146314572026514693625936204609804469298169557884061543680605572291618494199667493133122064141092802944025921810118780648255342880025716461916906172919170380003543376942659045818490162808663389172085739078693733683735533298105296559289593160139300915449587724160220103119644340998313376935907221683607199631432853713301023709861102214601265726153929614670094447192389147281227577653063991067150830902456338317207179463852167158616602463810088921307081744444022883253602860148144715967422007868461131551868514256354830143565856737777348410794434745472746864265266712145292124101733991324223940496943752152998649242835530633413644118127179175812998167833415058067363275009421259967411058700865392152921607976764155988970641399379109120573881218655664541065544391157938686410561437223273526831890124746132232798926438251386053682478567764671564856520563227146847192820267048499136513037671387728920430730332317929878922451460706375911705674242770289992619534303848945769041314536112617833562980323071558894128623892576438741545605850024395100800568324772423491681110348522700923141045723599562555398208962087481765988245252204484643608276716816588654964918300987228126041307594274247283284063577052149563712514535111491491629819228447460873186895910520973394023629431695821275614449231361897595707470121368108497664350479382612052812960092629505962826997281113259982538133583630743154423138736714853296248075387135254141940646823871776470874620008239827317578534425947957175254319186243134670706931097863384673028056559469220186516884946750516539759131470104213859246314199566704519659652759971522924549089016940862336400301478543725512051059610547153344680379981375234378443304164410560036313755781370180654290598055983217639126940823259317396400902605526264157487322516181788367806144759387346442663418036213843059680951656588978879268234862210341483940476466196948949203084610422700394540225855661741419770604383532542081509836125552661226814204198356773320707091490379350163850472744253990283395159243154355251472427660778519180928373316947558620594309695537557563767420827658181393740505518144911112352317805045126155255349931702087050527314857843644040854286185377418458313756785399912262565764946533337514740406723011192265594072551684276963999560249574288140989093474517575902117862447449124763469215132649605158755425158622009832644033350710094330784217865718729206849579898110776984823803821091349032387593667799597496947380074749286479319865138186283652410681682468221157934328296779110756002351911381141451874162490125575987977242790457022935699229788424454310322164566347695566190352907900913874899272073985008658448477051753789611184538323437872620567980075854347430048119448692405982383465255997477798699153860472201570031941629302394293623304354450135670224049245851749273815827885822982083088169234826541512485849861829231423614730415815160569337860061828722326831736372817634407274124238828982892684673056228401855855669384826338594961305527167412702450256097359059406807923018036349624569724279582661105567357923483941488681853525997989258592509477959185499442894168058841937368839997935121876496908940790923219498366998529564972618895437887610684803679167010459569652838095368109984980363804384546961907627680371369297985193685405675599347492287558816479813023213754412581162804087689976198223166150547419188460796039220754967216424587931526039787612320562894832002098650115656506917925658119479182205600942103414944733294680576644097177082360111120051581022700783982023236135628123609970866544703884352968904557543268404641600232933231711889398515669589830107212282294150220123731801981108396413234609437385450574042667798996022567359092449549168946228125348520378447892446446445495169079185892561269875030343745249883342635301272103330596760479946581042388795218409842037667852029314754058491061337725805562003156868926041101938728069177852400418232287824342747374986831221307131912954231183082795835196009781906452387164376292356676118246373060235227837734497026496675911060350068363803409433427519884996869519636804480422389112986573939427432309759950645252897176841176415962248772507081367579235220407340591953416260794587555195108611049197343737691188313122022209073379137523680536137173139023634840830252421758212834227763172333335448334004547405950313329523749406580822681836189021178192114325880813064812909579227858018749904761797876541426406745701789549307167493957414002580800084313222457051031044447705477746181004993024041723338981574792999028712449852008380477729355906550341462331004232198594923988527996888377411406546610679724498525279132550303411363111983476282612357252117696696941173261618011716831237237307395242844980625082137826739199210531546297324529663735678779705023211902887609628244261203216670247440955730342507951023471152836703547478605442205209786509693811644420810959372124057160905308086800171601930097366315119912283865003446314110900110401671120815594750209357585653100823741891913239952833931816950133141319555459971660255474556054559320804693584202815931287960475324129515200082286346960880006982179201256777533794803950821822748497250762536081413293187130255908030616916333613414717211839887554589643251620175044406760904586542875102995441565857706223548002679304103339870645668286511780899981830983785684774009205172572589559229399582666811246954066525206291633222445098331510095806739301016458342683972943111896622834723501534916582927390288807423409588500540032369947197763815494775827543622771600119863870085997971053431030268770052507204563943969028473991628775368279104989857260335427537733505562385321093750079993213135651909282542798153632512514974045990055012718970457813177176970339042536463767203189280644149295279723445650866895748738933939334085267735249099709475422650656071013674935471205116665319607631664257636463676698685135519988207753057524042881830012882517932588106167438847833687114137966532086933981201203702320815005873018197213039130750897761215023844856774830173055152051839538269981368724510580142446906736313352418487585778352306751684684690695067359652074283942606381346416583676415861830698993849493785652591790695433885505939559897161851957147969880265235593703054316109696261400895336358435669472277524296605728399704147319180504199827384192905033575587611665763910908303212807439220625524776217245008750002980319414302532385455468356713234756800555497916966422406814451673804306352226402332811475808635222306733830704063605143768185203599178495074965328175013282344932492549638554653993695227957266353199915062254940044948499103409090237770411769425266328008503779771050855182044365316769817236653370158183796870309830070720254789033779830085265786637808098307632130909845658320505923438208961191871197066612469226257942746155538616782168191449795636405826269717971938816313176436321028748293037615104350719304284375112801386869493557171727436297475802088872967339698196028016469571743173529124376384405338984193222203287664529047914914582089233958311314301478921272297632964492385611413942337680728157049923602696360065465583129082542384062392983812946757858936631543132820213693789665379783297730941618261982077049541662466367276633110103470542583255288712925152771608722961754595444545546632816450340755417540548938940477570079355809139898596082145028870241130246631008133279118744018004931434838406026483034357979293098390541357743574386108658814525642527622768016783626288018060176655683484887073968030098086117123061645439581183109866559224780721797363269101661200332081201295803280328030342711237165269989457598522522156590428660154251979092392353681234160618598464979110883776080569640133849858415954077553010908682308707792933987755402627952545895789320498580236820495735751897017398826681862732247869835320682126927341908153409975954147246486070218092707893480011277398135994875718417388641977544227190210694258003540446912991168609437445044125485735232953518572881514896815884104392475919623820987599650789872655885568306674544694760801902768694446670732559121861522006384250785880760031387384443024722569273347897747869455428672731674678202043496383697637052287781967722447047285627351357556259641555924642155424918165191349288585649397034826903124234874008633413317257030889696656970202101148695017008159650054241641936239621057235837621598780380409009227892892426350680551753799072114609044127489103491913467966358463266992804265067532196962559176739897734628951082417082383446096947509415527629457416672190652602505732481460016888251049684960340368195370759629530690567429401383979570159969442174823517796359968010714925474190290302845822523227358169078363199715696937825124411829888777452456333264492030926993233059511713099818888208855558924328840617235359879955755995187738061119507797659748274881895400027056405639971669408676673670140476152851295321220511600385712202599428889953941979542399526690038868808616391173631222636909069130123479477506135004890782356715762179109972013294075443467753576364768659730299528428612486648057359418836727977429178146159276351380955485904018166707224090495056761580824661955635162586789999957882682336098948734454588170315335146261543357707851732089480572743660919210416491912916934217944625421588242048908004177210510240075821048937043065477152732952397249518614109069952896653189715396759821312827784182573624859318477000958053386270621724390687263353364417237025413008506311677196883668478340580109531592018923411153218357105018247674897863477349664038302652634827972468293591246647919229777009365661679230398676082676108653161250803533307524294936735575792701047768729506143930012819822989557160557185446084861270182748762218089197458218475936761028828375699624506185770586729674212261576173990123738690935486347236107990441665501971053285504955940858604228809434245359132122447402703378347858158287790562325220659784099577394949751075729982079663761048356023440375613566663500799075303918122156731274010387342938228373391047391564151534506663148499185237270647163478004930811184777373342907734253045814001518377199550797874979887194855745632797579694495009315876120125485297308099917646472721233819501023660553258516701066675514841576882220220538858958987717401770491642651295857129360049118322663479455930519890159815210347046038742781695485332447895828203287200622950597658333586775772579510534665788268309086145715052464561349377900792036337350910790651460928074185573103987050783975539864488296410298834477939789635391777074598003778239656649944747544808344386290992466936912926379993913607697950654971129909375803193052106410718978608527461182626900077149547766326620601163282145293881223706824292230340260034174782759801460831206774386702451940218960850953584981591648942724636896530281573305046566451481093308296358751827689801981515881854371857875790413465330357458020502192179374746256924930387497191520322301007250157044460446646766066431511394482075498037325484033155607198300275560997744450136227995498526829767209509484774885028637938727348678626506206969521850985636202832241155519181118401422058659074207128196753119604976139417889910136721049021097858698479980515890590261792119041023942865372649148603407132835828838523960337266285068486146125605801072117503922241682512761063704840972251177669490895191145840194829802338034942718370556889798905987124635026207188652503057640053681442070198208419135964676442869340215979967388975886249346882024860274162774918332666426393714506265547595754131398010791017145153203649554295119406410002440101998112962029888425714506991949831131009354862014863282381701100635717187693576306877224537858439391381900625006806338080014862811515083085138086765268242025864474139218848237378901661891945794529243731903496380205565213031292788602228246404951470178980109713668349869576203728313313332525835316990280298007329827828245963268915781920458495171089280964896749590309359384973679552852991392935820971450350235324927494644459924628128209260829225658342458208095657796513530576773776166471743127976771712427374748465231670452262015597181579086152037247479965630735687949123458249640918419855564973400529179326805441971245375806240240382516610236560853468701615933000750880389459992583433952262545268587860576138867693266344878369084335704422026749442046864385368030707155921439639686909276830799826065789143324468719340604729723425384893700821256975066739425151529137754809625220815178054875675449555373111919065528179629068910334414664176445363047229814242224224180046054763488914993400991049947656297627344895025270906087162622611165952259466084023264442293106152463385879873263710553311983029764916721005016696612747238713223472085700117271811349408173590543682679961364255077723196958672159511696473296535310287700025093070505882102303767467223426945810246264290593714681530699158379183231836454749284664241016840975495550206900367666998412231346565408039851492518113513046232439643463359642775336876217275715755334985372019773416814670863397286772607793917192356945037270494080914862433068265759506441453734302849588505234304163955000616635439603693439039447212239964418117270236788309927072514335281430238312752252343799875239909149877172675767534270025598672457155883400161991426327029897259355575987583293877709444366229570272076303287738634059800263722505674587985627615780803884178359095419214477330606566837092559600107278767589362229371027730648803585962502359864170059497076584743131332119913181956685579668480053129384457044665496674499092418803207316056943137846735118424683840081142752904797670846629675809195797219277803905154433547327612852298795694661528325570481514812114981197357582181697297483534870309128812019859609814594241729414252996651910992058387295954110793914779970903259390523500314100934469259273355722916448087314466232208439673833758621716641991383032679737826905711528722942930557783723481452985729222630399275120420381369127338692795824384508176550380998204371229618529692571505709874714466945899488142062440999567541201130954101458024728576563790704619664845420572719765098485219373673038149715278070325704753983863261435021686249626797292263955494239073867453502272209393698854569464566381160954104855888202998259839148256519766826687546038200755869433629465810651971807950049972894558662060328808422315655783242916143327843145531934818393887654618769260237620606626755638187508709903684796184868928437302186940530159064963291908646336503740946183135050126933324745127705565526826327059153293553017422510036305977744584761027180649592609794747269213367627961057150001992004278878739942241283554429831790599518097689062020228571388464433495963224756306670143797944712712496393146219700450336591764859045246782946196169322362096363105806261293394457764512509505358624184118579572752786204038355253013936997094316707542540245173711412631651335950891523292718746756013873600379777683943838493113948633958955868930706446739894407227967504482298633003945698063915597616811978585289884768408646161778660904096519510447302539040420003514978493944684878862069129450844330781764236039241129723867428318717436843899547234512707090886231371012613273956026413081492269676722098577675238249840382532058800349044060791016944707901567541625405600055507352797109019529533115753237600436116023743655884653841163016441081661306116229207990376194200367781607426717881110333649203250734997571919770442605345966460208797542735195017072761410568326535574403024126542337685368315716571798928139213820763338281888389863335288174351286922111880388744722334053755203547401628791594685043104148758298383709741548224936365281282119148539462642429696669064218099119944950837684822147154031009749774955844149373945947175511619572006779425565156497802815935078293383871737735312011333518340128085740163876789652050262242954099297569865138236583031280893915690140338027923268065482708445487067549648800868864628159881560973368901397833034758338384049009217384505195931505634246610523932601808437075152150125998951285215773984805651928042901588892571882988027288178286395371329747988528832595686873872136690741385643890033691768585943644304216559374696897631672856651473166892087207886810382839381055657147803404212255239388842735488630501973409139029559471578475117327278917353537401288152018434150022350369781691234823367820701561172993526631185968308413572665589430682553190001489452313979496120533454196792257740485594751043486665409430974612848684813179434099135196205967506626500275410711434611453736045155601798810236158652313687074855102057194744147145240421019678365394592772729705918376410354394269316003090433441895359375530358711778198855646834503728961661080254454569332544780364248038350823260008856979973974249889504499251834653577893662303997114055621766194143386415975968357953173703534358369109898593815883956005318036916835675915917772163857853833491229700986140613683503215673592105909460503321528563160996450655476033426214150953198151602550530729940580243013008756096610718492927365542149600513196639001226739236665233556492175986089108742343363839766645832196496963634625052144809805017218097101390325527916396825601725761988870207319130707135843876048038816808229605396663645241961027611630522796626171135358404499475121787845173844735938133391333985717508288072767303736228071701042319654311694947807035227825787447667783053725549651758843686494388611384281794092188030453362024536823507431730445566717849493535740241797819434031573599807461106831876413741878226132228175424918316413846355076234191972537284612670151377343551315894176261928954815626830333420390819191973782638690840390206107524854625876401592122591152243176341765512227449223733502194576598122573308789566077488839476489414597367256700759262265907513541712621535417136592354720604443961154461916863979274477953326984646089348324651882601693474775307044984520921261153035617927305483386558105253195148971793304634513314483192591327458476600848517482372356620540722914688197894198315223317788156819267516609415540420491765758119592328486231644539417421370983688820676889779815469603059202664265672192824911504974001091559308882128053224520165039482596176832813313039411400015420875436849149086247601295869274458730985038461964465352141632459336916266898411746678767644004876182755941036308216688457529554921115017240811216967912832242516798192707376147678327977540219486448038809020753360427122647186317678174017356415740320008708222436614206246217517873366439124916573820748076364214283578706980668612766775272188365305110822740886849223875729908621545407444839000732353136857020748559793466416495315405059087446980177872417920175926299042952899005319584878705630760183145912073219924860928865960895097469007546223006661718487839545811383867618906621489186754375802690854450079009878061677464608439554104834528578470682797245956790278728472922867919516871540439038212405784680438303511068515479822826110070311738048527395115566913434749094032883285607178030317855905910055909785605563324650838713280076525149391735847880289163382636893792562181403917855271203757979368424545662976330128546925323010360083616069135720141042809442181171191954460266061330781282978267010434257701522224115183172110950198128204119164015028256104992916139228702526184819121093786006609102024852019754930735276782098613937656143908468085910957837423256576854516804160780949972042812851103784851204615737360650791106227296498014248525769129977345001620346210240097646583537911475219770181878000767377609569011384766647517508873180088870819465965089129542605844897689624082764038261017905285361650274867752173680646287830349896473087565202621008350284793452634582198621358862961291261359134569757532715172064797402271677756238788445786357846505019220189353112851170271963194164157184834355593002001613175131555224495376927330435863615523003972169792651880035950064766247978412769732033862495973555875503299373857685918397190400182461304541626513163881176758428551993835992633204124229929948331584343341957608460467926377257641691327235404355601206517616088165859255312954379682216605476608586058296858976705617429298369168042309793632614557784629527782943453637433367459585800297600299343335684691945986398249729778637195068492529538076813447720392054439275862855048129276929789304301019056045854954502386502073627387063204143207662005624346477622460418137887409801718202188613103628419077500392612605031516935442242955328401089823805199570888791645892760956933346521863360916051910422438207101616006968017414077042973260282158082520442691398932283083382531566776418432307584141519671088540310634001777185131437552226078248357916574563857489839621850576431849043392972683767751082413559000482085873088706713576959993656258517718292718342853292371012187233124563510987858762848399371707695539706978349757994077098117001321154157932195189269624555464209139674470197489303890623207529391267499045858912934193181788264944863637699171756631584829109523881159666222498438600582254356984918073281793776253098320343517145284932511059675405469130079606929221393697824698891555077033957251634035155659341846454990566513478996348260343980158991774519443213093781815604129161656100861467315053382306856185091727479152520213800586049933390533860237838425549266219841061663312283356621624770418023707297757400492065353434420885502617521204305016125667843372696442664883983602211119066234180140139435540107975355271182107992634581095401579189892414771220931358431224584086577392957402676310137563597419328403054798442124676576920954338639386099533502160240149304585428421262011073273589530909361981339313718714298963548899143120847265439681919516437354576517516005999093257035092864849881291070631077162779446661791725534997028994500659147847856449450089821896890943860006294113524860107431654734467466248496117892370590991883888949551530111030349477940408713262807471363628399792569873305230040730340579961181590337852818809406204129467132980327381607901275718203836272921108694905050329928065500894082529979760107275971088596442741406960763734129545099944750873510528026148482340660967884893984367982786403204102219700869949416734061297109151593104062413492757354734536230906613663939957955347420783958530006206801929627532249675636060038581002866412971123015221167792620874678752005258384856139042389599752112325303761809656308386541468673713841407207215565973969222874343644125050079845572772637247950809627218808846543308934561946689206281452191455510613135783359954010436513073149914167512695996773425673769385503618174407636822322516334381242950855619554044679965341952913431658981570157944179614516349380952451396543838060992439343970114650903412220211231314513443842631230575663021998658763983963950747526535433923652755066469606403477194870460258090949528460131818958922347967009100315093295622210628753884032926929930686358481311354848423217599470265165546112555178753952673367602611303660063863185811515988941430760749492657516088476319243620284339557257786126490777157339550050239210887560114210819034346942570985935155121627998623280825842421379853169308399452661154204325319191348314376259041758058163067061690324199629684159482787584084964870543410997006860716876199855574347326101055497052423956357598977852959823053662973691982176000617214901064547777170000291644036607291070499235219930868197896990520989544466337544117544977666331232515344518166798634776654550282690548097807198961097888301953241698228456356744929526902763987073133524416560997229769899671488798846040334812398614018820497167334899493209451344534238114279800448731269491598957393927072889389770314851053213226985139347614250253712109649839069218446657833768641802100346163338365448803819878435675226924823355786281155705038401912397409920045554426187597492684196039965162744791559893648295647060459205915912799636588947850672105527812193733671966553686642713327964918289543303448152954511724879957211302234921434000953472666539457752358599430574610057038038831390841366296678477803406531735274589090865328275965945371994508283610900502991887178498214834789970325989786914584756214605543727737635934710720907917096273147866154353377553858370177442160833598465054451303666070122819931737167179382984780288759222430908695087300222071062173751633718527761725497481138781170405793761180784336109254077044311504619441967249305153408791617874623914377790209267080249952859736255745102351769850503807950145828116813495782561027454928307480759072139442755905359838754473844612900484180684805624782500796350180017274172993344534475486157492027529346190968088025095681237886452326183068077239006147462685464163907598740435038317766312181476361597222846846630607267615859087595228120839219522645056997289748109310394901684479272748269464324022414543154773841185467952254544188831689262850650795752829414037734528282072438535004748984706372072092284278344111511118342695239062089276651172347713385024100810421580358859212826550510629810015703262924967904845743752899246670857760383870556269535368646807463713524898249439823171457709054663839710290352038568773511747637969259758108038309101590162264683698843302991637258410380007545789733807784999869369561174875710794730721269424866627913067238706760222231022754665998932170063896594151701192711301048660202278714122041495704902006854504902723853398845619706921705709828328746073975426159691579202967780213051900025039163580437113070334862347304004807074342024757958640102138183582165097199204646600357656504065308087717000075137798231249565039758610520125826692594159905526666114511437997677171373379993548660356037546709832131882065371578884145574578153834961307016675056717397133288081759908406603129298632924583499132331365861948587314134652398573541928918495690485436320921913996238141652034412343960230863031699792578331091902477065692947011254048655435562221409289167450219159312613127579292639410976111500501952965333642513594633910686386963454348900700702732532527845329249836163114152919761407856206710135288301165465783271404849350642869040047953918933276240982611112983752031674362794791599712949413380063078466973391520524723419139409696658515374529931564127451993384493642384939720558699387040580249985979885120570152277287816911593139041692077675481633828600141465446912170965821266120642203351017660571002969787568979307693596358257468916428136009447731912323860192302540165552725250099606030703825833735169983938277052022897701672336189296597821375756440353238841194903486029191055643157169808678678133321744591494863534248134357386306404523377472272543560194753982905112176857826428462178170098394740645548931805506175830237233970913349597628854470971348776915552958981805407539996142525773736925713338933108291807461781339280744774899320975621500080016557955895342918917199491140611241332614906841655283748848447657071242184175914908639136731622021488533011963774873447430080996473980756713307234636661536245169626310366396896051431857844561732801867492946568830557737425414925029726989483689836052600989583067917338170025980305623723498082576978303185858294972298106956557471964507164141749638921293882989190034374298085205394802134354984730535710894635891121288860954850778618769814961006568996679363107289323860845130049536714680527591637084192206588056404173432923831295379300349850460405587275699172448215773777946186866381856346758673679869580443890210243921417193876771718839988680157902485445717871585412003700557656384518216028233735102480768671852966777106938425847394036819617834904033663204181998445186024817665452034748523971945956952274350661569825148910406269687847684697502804286722907530139802332532201393067109345662090036527610841645374932074762051676552880301566267243525652694219684150739110252252064250822223845900754040816344809730497566109423375955142613344634029573466561083845258343112120077106884602243236716971498581596645386234840951977712846846270170083383841098105285411356713061573895990654554750042095913889830996235460713106104858185658081838093031820229901683710267094382923876099504429496751225443295794033090552640365696914115384457312585776969523912059545309373035204143775911227219820659291926785919501000770531767813911862232633069766790939605867037720488121880661609281430974254889706499062906903383063140817922375958882432445859151788854335535627330398417374757324038234202211250578964086083798226688122650970491858124341639050532833447914228462800321374442611949763122617666750472361191025438739781563263639041602426407326758952709387368255919897927176232954234401985109450016524869872801300856636837989338163039716645905382312069664617636707182444830690465616194212794893170385549613852029635352236810172815001967975190236560463297782343421818207968182271972499728693006406018056375344332432245287519588536006366453996080638503434006101780779519284564431605638429822880064891676366766701607889930265954768327833302744288540581471208129560374725796619993471028968273683516955165032201554512130067216480754598106681864586365826281554641626372118569096041688039553433792136088114098569252809727644774465532137103009955430725919415445018881299137607537160618382092087623711073693428054039495126053171809584889063874166254290286519522441657359233961018115743981576039192657056385791957943851837963377370137685980210862225192611522453378484818233713325056361408818503538152124603369590539613939844419291141582369228341302105270427817487966722658628547205060453172586915795979193707315182445432103781487630760588244043988218990521087407471423569740772170927909514121621370273831846631677541250652544687646985350423295586857986755971213562388522674710981444173688645859095510835442624593870533731099418666470919152948647290693355603448186904752316462820973663836235410604697325704521531715403708356901344783732270687875796914989395181675100227765904031329991174540528906020955955038805092091705250736200247555798325512506156784739787809289527690942948568772458719480854028559317571662623594776662167633571802461570095177332741638309259424263126738054511770436007942813149622603497718062007354101133877358070447188589920566502013719976600512503893416066755124008951140461891984716896135058266225607759974335325738406822555462697362404280709591983537956136109499997080968873791441088928856410066823247569512099732584439328585751717796848513674450018994488252313985033909426762008930414810196209716447822139317668271528267432541897626748988521901215923006694382034674460526143638821777261303614654135312324719696521695778260448288556230168699819141303347923970830271525751176763658191176804556679733114098891904829834181429166454760978763482379495424974802995610969892128586466074689685464676313699460599312410841899414500855948475552162402466584987185366865849497923747413806162666960498239633676420577743316438296921171796048742145020078607313724385270675268490979835311633371557170635948662502908974256470609044938333421241374966073398128608966200727560455229895593263487915911203368576548064867511035092834279332593507335683271738049468570668059873883072211469730197311933070175318421152787900769688278231888605042489886589397051200910650704866489043877835071672519761039715586156540304746984267760589908180460936437849258188752872965833405006033352916193350541936814394332847526503045739310548571088693586639664646228655464552650528752101134967080788123076484466119367636013434658907160022715149973470257442620350660483544445339067997200220427391554065203661719777884849062631332252060776878301763941108484679420616193872381196891048411260208546876161907703181743119847626557051071404975353913398966093123446385675817345567952456197724249513918860813189718208817532454509673496390581809963014527247586201737952187033160391320823874948721873185410062431306693293788637132341329286312226815325368329625570506183440722062483384521742628663195195802266643663141526823882961993057624158661511324918247861091722482355223013166480278798767202863578814557988819649290801049595151987612643361468451652406327366662228819980129953015662181926371114950586248092839509069514474441499060592998960541241196635599075978943880754045061260563615139055054557859881570707280739359696183498925744175628850347985225254341103340529560675604878189920455007530523944763566379613913543334930466061702457125462965693116333681575555861696900762344808204521083226372468467539291588781722512560861612996045626263556825621697445719437504374674043181282614456210303264797131320775157583034606896203157806525202226856890713687905920056948284749830419316856218598392953475744266628416006754242736117494421082022058263063144940449650614742985904951391010492938031503936585750712507585764488942056047299837869017354312551664468023076582481496572103109426518066539487720938841250069945456952986516040005742476662894689857715882413119606876947319087225297409881962745835815842382779215793417969352712311678571893321697185711502303391221868484951770880765091235785852746224223619317085334991318758388491732483874598918657943102151902275238834190681030494424902711188097286425773697412783420367444917256330556708524135746572409170132741752346492523135871186904809841728135133084011582411684902362322668883289970842248911439232423635359685598280973826355983627799095685050529235364066060911299432284369261722976936025079871065021140788761483405684097264615432111989698503415616686594699508094220900946765312929356737162038473637643741120049295773384635718542300801061252353824950600610656092171848486314745473769252894511811304228204910381015677487881668485557665670253680012107384822367093112616825148740766203521945259019653350990936640820988833441603460587166381080611913855968611138423430601712280990516002226580983441987649265330218113193966554493190021985714362714061360108950058296418170510307574628294385259102068298618864992529980214429623941257071025476208536683479986002621381495904581923639252636263655461161917099952803912705916867484461342428325700410696807957820958694456812569629650872346299266243951970912807218004863746044024765707547879233409357017401861040328178031945527900939535877360284246252869821424840363527763436631845494915105450537951463812132613742935810388582757414961717375166099542506611085282549494460814747277851642464155893117950347361730809700525688872168193895591527752936980436458760765062456011804670494873826366804085369389573393381726651819565798970304510100773664281446919571977410034952415009599064623856644944850879497784617332622836310409086069989415916940909352178419080425759669508092172933324520533306295202335480571059443018170792723056627552872373736723326137883087776915103889492936987453842033089569109078865831190200167845820436094329274083111972877226640992069540526513165586423902161661205345379961032705084907965861191055615147645231946036982490365914205355271164839579800963710647938578611923477198857446848286313638811491754111381792651132954139207257326827042821625106309177794777597698193902100425777266963240805133064539393453281112968687603058237640419125645353492581979294685565609511512631211286937828798381424148056309932864228482353350486257264081647529490782488954126499653446361216129090825642048429923199725954396807742950612421520550878069867076256630023188217965013305219464045025384168751307284398807858547783597367331626227666742714012884518824716578413789059495900735074110647091049535669125881914810076826812213461146163225517338273680029832115366926214647150316885548500596045718169421550158059009013768517832722469032994589432718868848239875361649465587303819120103389073527634046077907986065607476051221884150319016373039760462189395770739114660987120899829844278377800306989800768339511576263202476826401737543288055745837141180644321441072801300573610206873119284463423112226720289680454511635123244063362400831874663368173584632930188797198236262103126917926836888454283374613489773117010950908849128750311733459222185088821505014332495205476449494027245229118663562931314779753862305484412659136236753592321535508135107231189600939313549480496380683807034255718320242434603778161543486524409171488879967354017461483317875707789242969572151202567405360097692236209962560297847642483173100967330710294159360982494051645218426934774813830737275496473580502002201119792768834357261277363640495455344773158592931894267512491806337431331141128979267960751602295897665664269939072150801427044260279315099790774556090966975896783011947071431507122539121142845689051876135598951920265683442654882957487113505611707533088074750083592422042932523021608099286482667836031551610156839429600907834261263476371399556226806548035713956391689610124054103756824805627586484599033292996348220230654210283564947625174305036712474818079922320958131317034884608492077436414863268314780067389369331171446023222944645631599912847815160954073197757306332891714071029056611559221103197950921593975682597774736071603931165545055012125515575068888835130383052696778200800217439134610006030503409226120227837548189815030381964610647138119309609324901650624243324610044335020805958144774831859674630514054781017744365545131895414458604072931584683015890065080198131571429289853941866446891327574037873987816352035753386593304327481419774121183421447235040211915407630223740905988345719918827161460567387087377247221886933367371988582453473340195281726196428804269350376603357298046837122082690310537096427475424447316124112525351659535572443494553393036990313571272312305314949880736437622609818174077473418324544741116586061369414259885855829390121892613753730746891771827920535807534445628580771484066222622056191774609589271014347557637731351294111375790164296584433365398757417232530796236371633282114217108845839833583954635417198158384914022600919481501752642041217562041961716882317602159849442553342712484045827190196551513379575119980028842232240994471276291297299628265978687879484424889644450655316524881050225976231974169132772646010851386614235523615771715368492281394857838833067582218116147213375617450858774697213515478893437960334310529605138531347160832749717607045158284834036359996244310188004280219799864462936223384965438039684436244236906941085370144740427666825499785526585671494534280018278166074057757667773688708777555122278181473011071754523768921251670814155380292900212883229872563832331298477750369054873038899387571850879808064004509593664661791821171231741577579304489559710725036334242021346046301972437807621997608811768152773823667245398440403042216457436717550053392340363981853000903995845880719213297752530473397659749597509308468453588681267490034348372357917040586898909394095963537943882419398106747578785801558949257723554942595017015588395370423473813985327962526948601116341743617974276087326312858983407697893962203605611238007640143363220581867181074917502791364113660589085864157045737558346613435491988807228919266801761382322989416860008040599574604942340530142749798946458637872288124323654785258259169016924834375689655177146592241062578599421853543168965051512350412582633957186867763378743633032378110280789161073346266532947569065366925005378027783000039393371643578433581652982910541703728727390307686319071456847089617902531531665489490740487063178612487151709454495760296153126222722411587931322912478007946246941260335032067270152934478828174928280717680687824971272655998821262108465005878639580525986013600607957982900074977013296913715483386004904490545642033365032762967265413716590304856977388841750726154428130469392852895844368470725963625815587209517047650394648272794001994850742115023162885889149057131033411751969627214131887570407086122005816304626840701921718612060371848173368185208911306235968961323192099150245375821947715409276692834682904314109909964741579310537784921044341606770784757570026281188543725271562775094663201646912231059739414742515015109881311884671812255680811504087487709762153014997989144778628879781346722861543203220547414646985964037178795180529656154017062608561584072683960304234599562057710544119386294638248953351864900694798910449181353886304923986419998747425412396065572597161757583831762565276511450502707586437538056439809570267256701961353678246874376251728344449929548558468976264568744263602123966591326081965449122821368434560428392384051589839601090182529761940510384964577372756311410665104246809035303028792871521092563358257676587220736634630858032655724611425818084206042829479400942892096237318450925254455707890871344153174491876035720404087231005938063335667297201475271919247875623916119182342839064525862584753743130342245287245027629257287244984366713177451717324755099752077129673200685747586392524328266959636423006971474089920445469116838728636567698600660916210051750130378404362563027975608594662778166374573802740084055153286205665992153244752825258024247692634675030562841262152697952630581450926376721367652141569921775103133246192976984819172671186743787937703914071146260021928437727312003839949881389951235549962946423143531872230530011774917773160689557208359828408817379805315803329693837121834241934123061237029076674196752941976582450760162891169516143128048513092596112883202244519753392220501079322902105959724551481451780252615763101000761396429427457112223543728185747844086831764223754353037192024049215729719326609575118351657803135633397247530076942166246616973674139657072097754951828565321383412045605804292688959475316829039431250837970711933903692520991313005941007389115888541317147206615658110495845591323139424654675906765034332738066406771892859189311236010883925271332736050023184571455099537781148094919885650204207796252927423530995049658668844928653202005755456014410861855174247808702302365957361023534217290742885469225085942309417568451061414900313731639562390796106763198942985115437992086017679829767397988915458970330554613025956728585270754407857906549095330777954803311550825387316259247514892031716512466493229929870445084332636553154598934236437913824079151876280949502420672218220657871276743330308009214336267315763153326554009122458766993636540214167557849314198153923010923036261216788425341169954379814550241039879286671857249185934029577246437876679047665791856013777514766061151633919031862010632346983710997717258680614366618324843858397320915920086776077925291704119545033935593347612859989242940699127608934196656596421493472965360673642303069449932561557748609260647509680186288736754746350885939780339044591947251520225870027266505473986179819940693479213501843829387049181830182839917168508996573406148223672996903651570397601120667856054129465066722874600669753147223715326312640036151257149325642782946448428676568281788321504336541618431573258663805877610508738494747164865627949983580402546525546860704998597529022134319472814227970211921953154673892465875051456762904001297059750480662131026242053215094236571109665285336748628505256494849542780482273487839128588542896465808814159490598549811257198728101000690068578234858032052896327110577289078600116018309188536377320755099208561334275206500357890407561154310841973521097683086530402651715377707192675852008207089080338060455626103818378442072157361331281044460680653619554310546048905669939318140190074837444336075988585346502017160124764586740014553015644069673310624357684044594469523127408371031844922948278884115454277988929635128584139064339585297449818343643281979424379906156737556355698819462401066207689510902061450662374917074883583436843965013504918811744037751705161038811873490601007964084187445708143482451741097521064709823143032477010182517889139582533797968306311234698259331086681868793626170995172517667973049740701999713001342322076895369549259233857720827527957830794662811254795893008881436012212066987429803805823498803426165895242670678166584496826745219055462273086654332661687178171544201091853003307588085725447212737326486906361986348263967922186068749209736955005262594201714523053510069665637421400215168789533012575500376296286649116287104320505553151208467364672256148760172683008407139762467010003424931872986565220327625069982300633660870857234391273006476402595686204820263659011601226060664097988057989758959124127190189767296905989372809589577130438418332557849021663725254877778723331789918432992815940517458055321134031765943294052382549997410975087532881451889543724806149727210613182047919880427226862067270387583785527101382464547675432537051187014256237843822180557978948580114484506059496182455603530974425227600032106228595972177915280010720225839459424569509799893303001571223266403118702784568966132772403527084854881008271780084066569763653752236395703156866246260014985328415740581419954265390431480360519149761675644582812229387395582171636443174225763816486157523126926137585448933441323076978368677168596399754375340772784782810313743875588137528753234559097988474880521810348301375625096206546042946684628365362769577217384222843789857150886280265448980835813912183370867278806887124556468513266817857152472422035405593711998357631876262384375922943380131306789745592068718338531764949987040652649773431636229312188431085682398586378541600260818567085987737390183127062420071824257552423452600366451387639530114653586440493162699808068484208195561524998610099524400612666806487638274405800668992032962722799292569732706391390297841178447909928389080571807025967131832796158939195197878068170185147573565621374447830177128507520307892553546390174566747354039854121285213633302150665288543775535190616291546413353229113997259509343988088737015713649604333189941840005073024401090226932855398849298706018044551010604201925306977508889487731380242197304078853111389646488540131221342329573812033125410994234634396152155731434082801791659379827694060761885909019451062447969214213588774877884907717049505002247329739017619414902816299348747307223828463156033066424032013313366843065356717546685119394810051216505676012024123403986613694997075248552002496995528474510649700193027230072780322932329032173262198698377413139463181016190652640991232829388795524035040942065403023135604723940903338800165228948206105853588582962818377301656516886499835945039881190096915884725590686768658934640515707318642814945016536851526272044368726605439376397973908147885209459937628182864766437261875971880958067948259721644158188583564091897608322512017268210525056774126192474772891966755772378075550357557460398701543612332436715636929640278127582653779784013263883856135802587537723128761186476792094020688346754037351941461415595251155057169430738904275547237651561178249192605472693579382820568745171085314155224031947667284816911297323878471385220621134881012348218483981865803052479705695704902317467846301073052490433615229477505050423014661476753508887817885316610059230710538305544939364986298176362573038812780541658850492159052594861170623269300004170234981840872771411787986133922275944084609893052017124278281768976110086885053549720746869271478980583819794036779506675247072642752786435789622013620542691932615633914086346811232220675876990155640506356981207346309517959836907896904139232794518589448604115251485036710168503299821186333660346040585523583109588499631880859928567363120629749434825905134927984376998771372016397031130377791426915580408198374766743453599016328715098629093700626943282662955641036652665470603237986286888263291851909311144871986845345806757639021179019738453475076203762156639193201704647019884114767986373771627434317999794012160524484446353133826740258266877186090162340144592946338577776745452649228844198114879374955994211943126837609972421880917840398847016590075887867033690695409914510794607316711077063791056603627475609053784780494395658207314623305704891534907426659231629627446649029752200560352098642908705424873638692702557128044668905140571470388048722181774544084206479746578731472126556201034835133822021250799332563105718040433073926463744886962329784591189339232648285115363581268686763596517172744539937332535683145323151359056948175750075368013126501674409033868989450070383516845050102398398091520482831955800896300773363036277723006133551853034537902528175723356645736547753328150648731981511642767103579213242808832674400770373969059573198571488054268971448980686348329562437594642088553213475707510684919688842114875965638533819307045842273457151134090313059031159847829949601238199660297853108174670326425039831383112984522607508783699231819924383580446412921195565608539996274892814863307347238777666104789592688362352511879434345510626089418519290321885826694816690265452063216624915525124294252982753078760903040359937274454663399795613484392297844533817831539330593539331811488840498323197138121209463794867812282992347025437669283351545414166495673649228644894437788875624416108171837758054518655017801023545105204146893194869612101053156093960165567886313008103620806662751596614907417861629869979193974902276735259286738074447560626482321302195325502629858362007592232321302764915439168031221445812954381413626804642789197210549942129474033928689387692385694552606605645923076319709257911487714791887580079661397262678849049210629812897570303593081872900796618176156077636946114815202969241109144482707390836929614814122040350462162275838123817652621033560573055979799475877311554539844505320890839665630002049637111323319926146302316258106766825981303193715830636637580362538642016170850937361071825523989916842609936026490426417437845603088399191212717378521264559869898049210467230352524716704251353221640199105614680379660231865479030452039959249514285181355522868223540557475192346152863067586077471574978561732385242451662542623555522849125268860280788600426077074979499220517748957283812301838675799129475285605337344357879441583262156642636899699090638519065385651465679268630760710563820921294204419016126920903745683237967462580751852329930361984808989042800156408475841605543902233439150653749828734834748367920043033979567495964684279892629071149643407063537910711154037885345651838291211404743335278096265864933208598276455397120537605882403610826330761772752582688836766100194633477877734532531590503236026083806000659899443476369249533650456277942216485228232465687243542267592771064479310472578741547090009229255437888607489071162569138403291426993372912480007154460893912684053019940192790261033437941314282745866488634396550836520677711477542319645509351507599303756918596733503440993508868112615759009634026585544807285348384257131356004623858239091254781678281983923198974046997377259545058320586387140526250018463406743023501793023917061479031081342012118741601067872280824422849934249566028764546216653041829928637908938941446078726273564192410666960967414222529498104619979372393826950170856948603389299775546745828773601310940723498945530726330839478444453814925265967749479114276438649339398499582096414937653511181782997807346227236053830462420723028953597999930683813071082349547653963442156802496778571329792392401108455935253736057703771509175523876227343303463966028617266559302005344293712280937957881499703705278720921745380280948835614119458007501188634842895860571457332121701470685709873197721570546872102041548025017762019375368820175116123672276999568494506469652120105000976313405924827239870009677687313251489350494397483160878049995934729244921980550023648792783845157830047825903467130481154631971924108718438721108664633225379516475153061787530398719841039583199048668789189878992637697023778954459566937512373914808533581275200705556069293859368332677607225030669368020641616585775694344122694866788467001674293497885174096230462711101765717494423073645772588892804029849536144250281595526301038479653478843618109985319522384662386024286691756468394076013608594254384919939215805497677897798856481989356177657113365145605947808882428773413873007814536114496919858392722723002761478705743360690844027986839786919236179413747985379967672381583672142559793724388660654296757596797319506778208655903387946620458365146665771821664635388543889120620638329169312644748660372849355702598983453496580047769518041105119766899538596529216261569314103731343042414149061996711913572573104350658396843812340591715493552939401030277344787908110789347359022930191696199887397071898779109739193772044013368801260654048753824055185038388445339171121620328709700987865481414751782267387294072010410731346599848791078648873059065711295185404973219091892792221106830163507081444864020825060916570158702150583011354953685344678251632381104354497603000752415285666485875723830829199766561836146931287164282640360692070702140270196357631792940032708784436079884343301371282500014222589468109969908975104655390782986991223371470250876052764603551419558854726163254839157504529200236087114639853328002515703381266313681129390777763079079529337848070329821014523141018646132519380298194149361976552592578132544215219120348477338334875440721708427308920258777996183926711401201725647709692733007335851750360044830931776940801032790180427716631390268699357722909445735137879892660957984107446769310144515468358261051897678948224615596517284518410901654716012760861085968688305947156893087542971905609054449514497764745502574029549730807497564888088246473757059109439615108217372760717468020179212648582758515008958588313861904772592513521360924055973592351769024148220539981427700400990536933549919922394595361174311822328731184804353553587566887460145892566068571777603653605833411862019192824387000677746850418132397527756569118958800287115571349182234866354711001102551181621636679395919806401809263357603347746916228691248833942913163055825082376000636689797661248181102358952193882091466160045960625144426160380588478602825663748695796515198657589255613090735991460822786237014886944185918055276770189801523203802922891583640646730499516579265737152884777225373819374218479878783920494835341894307261344751380843109667222067846747291633379823950440299893784102519375889584985816143805428187190618941933510563089021601145265275438565796889649019170902354292498866194462646850938323875388519588089521688446387356147401265149849583564415465301809139075394038443352020895157003926428663596364873642573042772485331293598340302023682579822722773533955375358632769342130676956061048605337193398790793393890809461076179454648134734960008379472204986086956859812593909530958383066922184315189185793161934184774108425764965659577633246927767000483988281727527027593767413215766072474346326149883831905030067699410702161739448201242539625169582345844545280613588783607208600757909785617049651412595211088576631473072113112844658023522866191324266178152568208709516988757781040189560387936091975933381904898482855428886921524253979021404849182932545927833037638734973196547969808913647966489693458933300375862922986414418755416930770757476240157086065524961957544384752622038467128846812747636677691193207281132892998754473681190654824492900525083311399846690490503358271918162724388470072999797384998523393835129895805550245496911726548432902272896526340905383383587599846906541975484093659017699839884380100782939484436496289095980400671776546254910845994676974702277189184202576795834751985011876878500198869725079509070629001516518016778458494007194163592664433325003600183217327706743889412747665471535355711933306896180317908342798726807447753318897500760775717840224003880970529600536214385619578805437543771087445678663094000081191926059108032377735291896117971630920372402370804192505691851438241109636236604466694890594200813529448894793470454471342994951393463998464513372916450282184466212093014281484587196613601227326733293094058142329484299456783946905944140332362392702489511159196789330059811391757595182103585275661091700517537854123411386654261596138391740660609392703683876933497095526792774788870315920042600711640779070399743723596452809075653659437222587802925733833320010425223525795825709116151396579748710158156991071393957582338004025008620696109065787361704307247767219367032027253124698031926647638800537048060625790712761761740405409169407717727369256017554603034434501183647093183933128668288544758108022724092418767648539549051497451421176449249409987577143379972650320907333451132038969380183344805085351477161319236535676836938441420285337283338044129397071007137499892988068550829505337805917057976429070212165048005547246347993792541396389125402851362113012893248255569696389989402533142391266185248047305451541673109494141824703066125936403183075233132745553460671415642504035241632562668621282248209897613557043238342327539053500770544686717261760808598423539044572998919769781104065646112464054200502306201326709982842971802165155259204458273350570895801672875432451141876104297669496346733688500579872075185965350324072273369407223415520517518727127255930187219081789857235212569587653071274380333451101087047238463288558132906869557840684717010825696185412250586892092979710840208116482746517896069729170084976336925437564250936625690683040303809704650872269586071527592659979089547631595552876397881000149943863979103581894927706491791411451186880562352963292433825052675500926188436423928636457038619949022818643769288078027425078255622526010623460033668355848246743697316017969203851687717429144022916927871981153405507173273109674130372079529564683309689706493061922315923001526757763138381366702414347471263157726043235310032739314258694944855852164773736333729091990489673316076728574578049870285570810525304988162353668276798056752630428141249682552627338909859703650440595053723028796306187354618651296606588722161091081605215186673823651360094994272455129814697259633342076219295315561954942818946619386999587006590767270540635843104674096874475303766886248861923578966801628918082322254632441102480001088312377332443064510565134291200823242593118756492098439815991216628948242355532808671747665355723730954178275621938204295224191438779443089806488198161091692731895265605910186215753628839895108368513553356846480368275893447292394483346122145921279909349821891592285198188718600183884429669966925337776629767287195279821157161691604137390782928005574873830528127072845180997659807888289680380837035261176550366160184973603439098351966585059146856204736737681444264920007369553742754414252693986450486956436572983044908520024323119443045579463567887237858479178747715470946927445455711138831806719496848681589316925498731591555261498026193750815194457872913010735499784270750440652942640760892401766275093619681578938736636294407729901336573990806995331255083101831534124320070073474947035481183669114062360992600817895864751524106855109473402947118028514087306996149102945807483828355596851222454807255222034117606168966078690609297845908814846712505966801678063390337128738142778438068267380389936888837805734586105333728666688518002278519186390781690832782246119383612752634674415017047413312819377077095922005022934764499713654102546481963446479461280901506904017793865772863960842686482636782213201673976973849573607292786634694768138538421230994860059849565416256955028148863268045648721013667109769030146292974858011556375057716874410287800193947814645612010964190213429866645368969347787767156495585367421873775881137340362536534943795691582839615255655654603905123907836547979104452695719185406767895723499338976060863153375321842215142753287436758215356537358998647240358641613551953490959804999027510561478433846831052485986292019424626405795290478954501457655956524596870199455920573835638781256534953086837863610351443834810932368997586667534964846669199815003744225038166500713676509232350668506789118178660249439103854092272272370956704898712648175919253935357572230723415991816969478876086023006733701169431548256425434156111377101585032201854426739641286809254103184035805854199667931598753693297615136241171769798644145978347466554481874140570362984152719546599243745040937909934353878165768942003467267937057320012813901414327269635560858281067099716706758350716709005260179019142848558299402835860149123064764850162389447462851657964121905962840905329923035106359329364744662512900871724148230979274559462022906429841384086697808667280785562681119390810099351758038706234614424751672027149751995694862473658429748633857593906555320267560203736215946545326745154733384759758294407798286777824973932240705027476837204165576673513693444980027685172547316633357880529705647485909279688427516882265910681713288286106622479190447008889616017273519779753079038796158105514053713474822762680671493800024998333573332646479049053708507451157097857426404807101764475224759577522662469824129729356101323916994076469678733953849181463514813467289934938705635283084478472251205119679699163899309667258048544097510795958647430813107314582298214340919834477844989603835759968241582464445786650819420267265664614237808562121710165471706104066538592353538298667730795416915035946431981451267597864815750908589119754513711542143905068234442156025347704925931313735036798243817336969143712815614181694080022698694337553631868955063038873344959114764278952042669064794648501299205705778790205937929110420589263427826622757944781780256461629131741525190939236862604400783112464984039124933052270375946006163462595848559136534643651846737647096958932789129295193521703670276217460603644819638984537722859783684877254563338294630459627871998611024729017312294790846121255357867469250030083774768521058432225487779728837515465197790218343186219938016624845018863643447882027942452916046597120866724988411226538133101966898761273184335223171796401070142123198211211158769626046156743885901534744726777283719929448584208555285065818251495139595753238821902436923163494176219380790991947500943335546565791701002937110870031550673680477011707072435214533276760135216524855409460212262662077849841190089636899966560556739088522444382163297774508683842112963488041264903098308913631812256852071505880856307565674539163673742896597175611093736208333348343068995951005940408118103938895626936386041263688547252567331806079637376066125342126663305328969873833078800758083750665178531159079605671379992730528135540909313075503877723425608610428774124658506618743888398995478429672467105859224898730825343815463925232111592117668412421771497243178215113456616695789664619845161754962726790389214509614417362724363977709851088620086789472389454720426684164187794915021914753870355117339841764582633576789381874094240387212224404609269240901585291013382040669958272677591860132005848584833501146403960096742189465063888843017754429572782966724969956885321495131607805647222254609325247224071835595732261456417135099660904938682593084131763168457058463263368476150569509914566838561611231895637486502301514045017988321573749927397676886685742475759394877370853667114225413229128073925912397145871502110192064867561145844178794209905284132411623518234922427843910008492674583976410410883748401908369910050466013106725102715664031668703446036331117972540847032347070578847917600930546762058373432203206160899034001601703883624971170990355635854188055734642003104985298967921484277392374122793697581565811808075141605270688776702919285742563065135889443954558236524546966530138586400260541209824625252169771299227842510417541451767841919789865445717727410179016904216599624319912144172449459584019065713380666094376965742939225496013385271671013529897343553790416296887949183490864486377236360628447225497508002365389118381988836137038092658477635100004039053346268919242116000518561081525433469412475612665295454117527263189571027767725607677233229503866324137318801897287996019401713434381115496566550378127510810862968455994916796859170825235234382716611859503129845502500092164308872321360435870087526287145146536251901457552697931887048105011602904798761671153850547210926998092416228047454387642862755621423110197791429192100156320732161424524999858784728353464246519371798510275796012653054183701426615741032032905738748872148765945338109490048972811111340105274506654353758468947278455343821192499331959237035749045223072204733748487657039867012981980202463538556420403021508539809286881281211425122742092270194834788263666587309793586656888936684717211461154400568320353918285356647422895821143461168321532564309203513900388647685076020633113596175251976275738699562697799931090521045584684073718324619752150062974919995776715883235097724300370800820556724201628467640238506439406992738568188831977025935344267679412591347741271571355697517230821363905466845097666240617928249392516796741089643184439581348007922815022607275073607954899903677880489194860594333700857210730882203594520426040491903906904018095019596038515105758938098880468046481373225488275980321267128126325832176915195432355627823840356156134742909353663950986331770256923359349236785320903458087740430408073647866740021064537315486733330062827999804654898461545244183704692016364625371370862185924126935855499219601089546173525762274291416217986744685621997841023057352441718920207516275058504864843992005495932379112731656953216693202205743467538789843441727923494318122052708367454230747643820886989251607795423233098044301611479356041464303351059942731247159000956387790666680359868304219569979819236748855970306131248770522010569082916885994033322286993738995685597093335607883274800428359587989900279936924098662285598414565234965923000776651280237991921709411911886803945375966951082834074374639984546689463726665771489093055169427186667606825042638548685544138263454128156650471903110425763725043063009655453349949561654051174751308077453232399399964689239840229555455950164751588808159329520442458600264763335213301032923248176388706128995702874397780939031351572088967630138945464923594114731784891663708565825572562818819445209233285385387811402455376293880877156145810040208444612856825217493723651198370780585937767247337800292420313081210861583650194884654143623385949680551733705639573119018411009454534448212105209138816166570468946430799138976826001938023719611035780399610412257318472661439723272451405749730369399025741688994074241193380550050825420522237024542017058411384245088003931697759270060445826236858324968873831059948101898991955268320202920192103140037780997715874027133485364039520420072889290068478706974104489460723881749344413348307486624083563529362154726866614776147446582678131797297416643994572756971097251062144407326824167983019538231806089795504325776346207747876430835253733434731748236654252623405819551020570384385427097873727560574966367339250811818805710399867089145986888359222980534145226008190962555932958467675441787109284378774327423031846331723025217751724092734147176542156218217404142284187290823071010280851042307098381245791774998215771378335456788759182095099015290554289268297575614328847749932981104643568411080551013799153203089211855076991060618334666182570072603776383863200757831733054054062411680366045508721513454983273729826148885701820009625132015849054927486691507249019582966057287647861150146125946403906425734573328985416427860762381484312825296021362950288570815344567994659693798404999506803901315686371671209106263563646585151140181670928314232164661493627761379763041131300069069009999919350246169182025029720370597651081883247776637540616326614718827373533202893049743860110007645794756164403453188870221547690206960140317428007619805096043200367604007463583026607987436145781103096356632975735628523643417340735484435691062812247062233276604111411252898823044646525176819832165245678428265802726010737833273638300231071651641848459028030752580062958319234817431683627529045361443838134601530532523873426854021078153620520290652882680525550789217971385859979018987375783666574733924255386559124284842805771115061142803459322377553561124122522663271981867542769163350611489237128224929185367301561525844464253068036553176521708843858926628629305467863261736835347460232515226378657226533320740723331184792812986046206562346031611418112284995052189690035152841805062960239699606309187510186216127907308517207312332356261697784535138093547229350457312615087653545598028808354772286340688864276247815900761844407677075684489614507698483177922452853035026266452875426142491565794892226136624489001113382664452870761316822710911305304176976337593999177956569839707747550744775194202746496306440209489716434683738313588652640170041019633391331978960368410518770025223903294609707672359239976881752078920931145346357309503004126573801763697903642765862505029940482593059087710093403556469849836245641593272017789975182842585946942701326879057354050009743887210219961402585944214932977609272890704492062490055818919056395252116301820529201937754056789603830401116637387877689591071969611630723711108415011013118610648966828524067608618438075008991334664283435086511660256116907703433730197446830002048110371004222052790746572349740188655023139709738279663281486663645726470306038181327402897180464298618161804957228341878616006073083023525950232156690827052856701432920669860301078897993211546524733521248546709617973260545115568876570199158965540334878771245905634510735953232841201683222844941909021728545992505110167656797351952022658560514942128439966454208713766064630343966335947460246106458531553117505853695953104995661140619163543154701939222268710001182883290401808860702178626781850216035576271824691972740605045587012862097891720575871245335128058783247522249601310379402690091476577327873169316237573513533262068015893254930336294142834259245740696150406922992475652261838457581547659450427772539510411786577876017856712257320725783786393639137086174026747385891422372294183557510007956699841723748903301670985031707825001186237924935151373376770387940605303795054165900486973438237848694927550291938105794645514738423412735754615508935893309608068683441384096983955556132227505084661256117294781391932922074362232929762600382571281609317498296829963670338582121541706754097701487892186688956789864607378990011143667343575321695667586151120544896225620221971670046622506206258254779996537792787924956249566341169094385110301587021782796645940510933310857387957704625591322461955724413070309803835972301547983310986379994885338974411544392279479777132979684752036474877331921603293641693879472058300389569003583792450508883716417923335742747612913760372592922659673021519558327629853132694005957027722619748155823022476039198372191849283646582791229534017399019706651830536971099890563387717410820805140895525750488260423984791665473557755777643009855026988741574770390412976552715490986318800885398357430605205469835444195837202661139199342318978038015349991515514030454229882899560573119272077548598603037840437783192806866816495455608030031298509866995417681370759124920963305347848538880883672420638809372826216575420551642177722749418079743456973675513139617849338155806263819116664649193210812654093527622115557357575844221614027078888036107245692802654620648782624824316101708881770679589181745103230572526813612840284778338161660009333526614288751174099308957791936736921029154401489453580256461642794581974258165216753492729948260266699766529090415606430300868521482307270522046172057340984457659295750197280015715883129845539212499330884467007168820641472502056992636811668085847637928227222565257451158060667997567545865921845635263014328231040692590134125790349316295494729895831578305753446801078406250573395096304003071600758996382667707363580564935353416345617674629864724114242915469348360913247563427957706392659401633089955912304765480923856807701645271507839663269448306778887248584453681966664904523026629043631989198532872379709728044572874138648059654601798749548448610351555916772782643582237573985615278978474984967635153860206026772506238339904715715602807199526285744756362449459547462666042408190166900094015172360099288368288391800760205484126941143421103319355460734327258264022814518141579807252592374866940742832000059449957799870846942250854119139337256488375948620177439958583295386417766934181974061529927044937013643145865553630118245826890883290062955154738378359539645634103382476654167994269931478047792305651577994718358302129488941398270608927354693411987259966440760298812003892063064629681245996407662502622559978504159872713315407089517382259735605677858475457490496746327976819310053690371754483241525612143329034691352017725335562217380056110644267953180655266199957066078894463741275793276288297043280398309540369601453912662975885511213304673978242066857911736054338462968006656008026572532418383503052162332773670124333846069946641232026209179471297928852109201973228976918309254710161685415045980855866214244554694488713381308251833044343361627885617303410766276145297776469161207926915078071176276667331054220042362444788776814812615396842363891117505990800018951194501710756977919047234428013377804017309351014148419603931969006844709035146725136533572607962702320317852265818616030088527055627517347630189639376872565319452889323580315215686250278829579384419346589220366197038643564305213841042425576810641601215655177581615478868520434637981283565522995231452647366833275360600084519997381776138972730612396455697828247577673890358951732093236179796804787489840756770578574156864479170869184496878233292738817683830619634617017453338781491526167810812157230934932262829534724428582600435873611610381444942590379392202427585961852400698000743671957141212552279219494965363724775044463910483054532855792626512065856380620310473525510944092603508190005324083588102667314575565700137876133766087130858318306788501902778879418008614832588873570159350255360336019254128602528030026868242690223028721365713782444476245764078069203334312753738645827785812313478355939636027029104896802293259249964514892397593545743414377736299782263333128832175555718217817435949718269567017136657757623872960685554806893606977150244853992160508582312497602433095424160426603588414266419947127666468383391002891138595174546674963027761654287664544214557225222075930236349099437173631531335370717974043367106115481146351827585687112482499323602863881015537689948265107877443132095258285263201468407526424105777254156164802506222248066022333844860742214976387898242958799562302497175712384123018958637359424871415192471544525919336410903894214067221480933682023334938230793856301142796132002870090839724312242895767470371104177332282861266594382080984340280544249087376403444265403676753797558158757035538335591500186695098255888575920838750291535133263298017248712910654139234910045549101808129868465380311646749950200852759679787572809741457460989453068194833540973356974258888604760442378729284578603656263544778469312469890531074124978961478990647046979014739341571004189062427527572669629986279681763094917234486574292918466650049620208450409880618677795600845581421795661243801752503822230523771853748062190324656812876158539778059565514106527708933897998627465506060960657890662112569174132128782860385427701534000278730751744559096898325023450596139801615379707145401429400423737026686517981775317497846213939444040342259984389088628517686071665786062146692399287342540765441733241675344472958742383709283768980549898099056013351886946889774791128572050242254966070933004475164910162518348575392583264209369827375373237785379927763822519732142995584089251379752761490398310588238254949621158463982387591869132040714602158763785061780694725601094400091727159627273958830954486999227845356102726335957426431927843980096645423364074746795908653166938811892065837548430043954206572660027220549928455572332051481920832024227446497516058521951248740329971576508947815018555555179796977836420256266551766236879074521523965114545724046958895683225749319906148590481998515917472408842051262773509953536344404233341211688922719632173264161525382159574812219580820129987446994115964955351140674496164415854053016528039878985254570924363643096710282740943980450119252884222418209968147989106429572183067936908203532998871914405210907603877714974387844975503457429583135629285017725059253219425415827312221057783232653431505532854305513115814742099858559351769806826227804348564639640306858108887251158481525246695286055785372489215218959621851379577795718336583550120178170768599832338586312134443811161420509022129861735621140855106162731315934648091602827980189927819198630098482300206326682896940695212600762725778340478051044144025283198240132548215252741155844023942084338714118426968905332503043446189709847005106142129677766699314134654283763311862910408199053546764759449899689693642192291538882660107516655382573343953020126063270229912225561833242420712693701023673436013383089761044016552749854217614628338142607681063065269557155641360124926599491884090389501543107185840409214180971643206708689073899725263704234245822877368864060911403010405530635752455883830461764328989015283667030298840549445889656470269169508278377922103276673015121640934438915645373731529473074340260303337869324900421745582518501008703450407437625195120388503370719882950446829532490709628390527746332027795804943407880994664942445559074395044009124897479273322887958234914615851220878887049239514235004353899463558676093522690422848137860750150638664225007306898293377863552310613737488066046824143569816168423165188910996212505139508458489653999904067062413198027033025430475022385915445812616680242519810103063149024968457075894205867155961054544703242612516979695542947321039482864682177838759797843165343741131342887376897472272965362073562928370909447756205169018630124617041130365031491094146894629197383497031489660739877068255733357792987301952445874236570943924896064700248548743226812575872533497280827054047918775588184615433301814298635171050509528404433231867589453169554800566406901942749028031439003002785934227808665763769267655763603549158968157169949816112133890266069828214308356598696456607930449281290422504006872049291874502697958626847253078801406681928933479470308225577762016029507195805132025409449865216712852756822121029128063229265150400009032013565743605107484337432420332978167120673197962259497381827029345415070696444864230364717985692994581024835073475100632657764244228665059166059143620075360762562306194175521579129031301006549317356657728456367024643766876240283431485909864842704331234046524850387579260219333006015001423541448793739415346078306966631410054335381946079306410037588896089871001959787108042713652158880213392466848269565223781253690699518598326241855788634434159435363369262343127104451259680812123397412634530284238499887373186912557090447920549781020067539209852167715428106487849418390261229969594297196710166554118248767406565060454625618793787214541297367366797128986315676234143902156933082989342017487067146637723497665661926032201446900159831030830440127517324278509323927325185442997848722332785070266909458351858034579332353705460527040842428576413344062218977605046400371914515949122814593935304937722158059539798851803904746659720482426213357016544545263086572305326302492012521552034525135793408296149532419499458798711728875498676717946866082250298943051652295828390337194613148229696062463333404193980732144816330123605981622059039747350993428981531356549570504963297930456453375342901468852964075525283030830331071540188495381202968401117643083984896858072669006740248368088835123235395141732514017391587387723607042566075374488759081546227676954656568973459087111587270686024640507390435610740013419103226846552606239336816072140625745881115486652971565005242854186304298981299391269850265716626359536194713533690918241388955273746648226067658241412908590139601820609863573824807784658492787832556601707000869580402412340131131906295113555975545875255670539707484960302064590990403340425697375364335880560803697561999735239337074092048061406463156872238815806511616913298235499394889119785355332939666562476831546901512159111592750125220923973970635542249153132561941840136063713610151673287056062819191896412497442767020311884261478555969705224500379691437563833639599871418693876692059424852214714527390839239358550460884995583866614342955984164846140859917640864068247119259144684968226521250452329207294045619421025891714438494224715033786588776163749115221772591367639505159796346272070108108445821279490107514098548105285245743405776483995606850352336885873718917987156935167460447231875194206952311561360027866058687241345185536219633718991632474220014367081761275517024953406865125804110774277739323083266487222699205620655116283628807883254278396849170959462342056995383666082682252610936554488092825741807371647189802807829306179704890018357395310028394140423915761708925874930080491686839300338940071919794706160774243100828367961008646368160686013924129359814168280008131016777907758534296078562216180659087213348883941742809078619953675002777548874264064746357197667935749894842404695532359342650156221240672565820446080538755081735774588081152532747017383687652770642134830666191692464835098429457043913951042041799431588565767150132692501109905658176441737002589901264521616253568613697306006870433132278928703296444209305716495378118985102531843053923331327867896729863089600853698183180754525701596150677890926574693590593773067337869256068807658204939742274049596817272873565897169072376180581451946877990922602364762592938302449384212577901237978588188905886858298234198680844744266245817706612503101175308172469665479359800684142548440700881291577765865349912006502948587113615191002657052444577279717228206990543850846995678644832019006904474996425593691264436102813555608079242298691819178812066199599053821140380353840834200844121667943103606397983461483260612358248673824214968039264023967615737246468989039135983176032633422570657319387712404522960063651673462686152440485694669441339339285287206830259765233308107913756864288673603844408786273054919444308643845718612130999468209650879114593165797997754859817737560236360310169407624025993279587659079690444501343383808532233120635189521916327452856749491672290586575638786635481837445098289268587527600943578070746286666651626140766772538580985717494700475258116900715834427645370168055030005766874525946889746846810148670702514466453065365092142963073221318102423959900417530543483307721107487336096523147950271229979062015054903790112952336337424784738766863512099640743637774134500582837727156023486030969971631771466284402219664528616369111365125860452491455891931113036758651069444626564938772070777569549308505971843517077290416437335679631294300680401195381155557559082711317409719045968331187500168232813647718198723760326260721303057294308818858936954428941413105992580683896457393109816300706397913946960189210727230716621946473166428675608928756992005646987412097126741129879433145425286856867094558424915168331559700904198886834102475127552198099165598979560820036989712527668607477278471062740102996888543046314916181606049972694963416080837118002633730205893853389365096748992363979972675161960108907456194006076250574193688349588250806202239037361253299995619079313105589978233902940201308164524706209911732165782324927669969518520542491118795269249005584013810050814151101411241129781353113977095465475034597109372557834447696603519702151625790906609047403934488023799769300709806668426013911136026428701004408966763643052021434747403743263776415825576023442693842965449951433687401791203536972321092537369188076267531772236085938832692840001261551447399554184642483382669434736847945884933638506004545078701602228372601614434230139249535261068388584172438116513106107643729699632231267327888660904548791953846676538123526742765906047506804583511862001567744813780929103779797615126935486604781869327897264808768990940463744047431851873051410449539179436348117650996558663580525801500861217121270388016066066735152802471526666432244360216809100485307538003007234983202326403263558986598236473599437105387630727271421458771897787771555599285196402782245977014993647674707533388650362771425506444753769922489398264168518859252813385954019192246958848293393882140369868118329052470797960998685186227469446586836154012458856205528949652801267717393031025611532126492773799311575911832208705647586481995889973158612294058098801887408598978298842162461427535205084923511121955207999640387385020909204892657745998452378662953626733334459147972964481517728573592674128863968782233051709708381633739979772558764228298148925896585993040977549327852102096537265750794959803111197368739253809896274243283934129273205517068187262368024953842723833264443263815689316080647241750772942001822203119432856938098662147121534795666205959780549059289933824859856192264893209020396257939586999719091417083449204088789297733897273300357021422094667736876940716635600395120412134267250355775532398061261786730903135749310137349065980457604026039198691004155195844870224667630409570523214801457028712415626773100643890287024950777079694221024430384716629718733402853290235152179262299166329417183892608508675635206690686400138917290897617482715014586650058045223457063551291325206034639312595169124664068083076231435346803162394770417939002650439419034824831395559629693328402895028382638009905943353837942805809601654904711230978908694459294919419757123263988102626402379322380133088192472062398060837130306779568782544415302995358291423460956069397912945906809644043859178688145345824752038982249374015513190863967717279659114211020256374034310765421597442833326873734616490822669025260306623036320089858865163568834120550027050170780345840801608776200560077121881331612279869392630746104626762206360509099200309644322368980393611598141555036148354639115088484094816027222921170702921201216142799590975336403766595136651323963596805762829104448701899239775139825163205406880015750648577288083759129996680480293356580896346231042588057079494101864949982494097253431920374407826185469191747550933749855329578505548263775988000830129856479415988484398767511517443129298425671321002841227977716778594960415327626450375559689291456473196681286910526543747258673073813495282535896863991610183267703302271988745167839733585648317692965521002348756963524146353877874837394833381532791294799490689932690439005343464206652242977132129040784244452340419636174721454121110193046764435511350693616914811844497803902913744213848315569320973647669048001894504173665895519350367283909395387426640730412802099135454025918327253226467553198559522624291601856371506967751755251790959152199571480875353904914293049663372695106569007170005998670050104633988339591609069356930307384473497531752097575511721039612290351227330030085733910989662071250892267177813109913230844702527440181149016123795358278958206459922082205121775615550628896950636855366260383072769016754592027945716730856008402194051549009245876085305412891848860932007477514799088637846951065326898336795898373499953384155769951622029184313991557238759670269708979094502420441881174458523788073502999529166751077666778837551284400005893169033929594578019868996034595327765764101708820204457460738174633257642341680621902030803118504944000326218276764990117182805939810072588928135053731268557110508369439103911942207003463339317529299622602057860211943852290897145907611647700771338891797274228452190192462398161520018944479073898713535744205668723167025912883046935926075319571536482034995002376050553399601996169983882608126765262882256473040016308590872363433503856256946611477909948204861393844226696254926556798550424599814929344888669993296725789028315539541062168838488479325941031949953997576213148082637843897983867951421850946138131618315568154549017456704187822175229054151829339164270370768818392269272007113205984772358954319872340405990994070095840078149791549268867915483563969829800744325257108949770301784619242453660055377740759108742996113641039872526325366587287239843525798033506243033828802919071560103047265729814882661618934140636851815124664953037085180022821965011566511796347411162987571654105926557933558793221984128714280820185085874868908690006544927519504545845403270437717135531298133020296298901840676160008330207618331847421475205111621016022782656715276214795380894648807999255707920352391269370173433329343858173034529841014632158284840286933839780090198764393756537042502283738833399311929351465084346897906861637779370758171211438446159379758147288975946522452216202675137517942692243631749874503002231632535627077811849994501827938596422809469699383484698954389806195852049467275575649670044730081226220643561247514321491697844762380237188505761605914738090905598777232490407872466874070545535740282952902669860285006553487754978384455873076632872628912285019651419779037678825402628429483182261558590617683361435994823070487447595908636475772987697274268892141749674028443493198149116989901517302205643259991728642538012863539573496410543605727238889244672990452741758732253872873526984944538064770005055233096692974341649886737059552765736412138175371483035241993813620025270736848844321407435016828797394232412347330548157999222364203883315540154563113853562426140502034247528540428072482584238936017225116478574310697189045212841344296829167078322138808275498035576380249971696738283629382261658507173796084720753626869703018474617899847726703909266322470911196555460771671984968773165127365058170206163591315254010302482006306520108581905160321919779660481891797374601945306230611077308010407758810735813208240687305093361035558158680316353754004895908988630754135465841163449386130909605844576424116763972432590200905037758324067299959199900212092470306681537683412353300126680832517546596554857001160539824351087202451266498549430809697603232593064039692234150836351561800843372211977294853693001594784819392378793895556232818839494372978193532868194365865575251058471713934741369343083148346656263709541696153803840953691599730379497938013160876386701591594323529340246287882797598149907893070467497958053686878506274360030593817175369688551274143064551963076206992551636776181931571072832406002978743735252147732677368766465928694341687147250602807016184115274391533602679421399331496818958847708630937048278986737047212328981380251853455891112428068494455282833220537092501659868828228589164320744879718047068360359732436669394549618072687556409215247471520975855946469756284703101471472532516830985059218196259310519506246883482005470892486321289286655425390422008505750940152610630060454032810905701721335073908152565486568758802727106099517829548595118275496356467664935181754192800111017495605400467944511202602422941621527385933106907897050984719687893806653760941333437659928003866131235982030888919085812198836625634569279639607517809290174978249145661201878521019872595246045036114648906869852146516533907727497462570811855490447548382467833067428223919074848721838727370733673411348016650240104157250119650789881063974971043280094150103046818338974130093487808361263501988288957288321810556666468835298317997553402372769493800139644938257971193466338292360744817533869169813038193164830985433500027141034052144755901003560054783420057304294225929456866822840523630763183679795302011957897967775505245062657699533674150224216645636096689206127154512927284703690091583132952302934144390220126811690317836798577347463069596172282222614282927850885758553703181850136746720064061626216630210134496763615878319912852575084304732266076917131545087611515725264723211226123450828652269741800529247239562828374135920519973602925440105996920371179092066824867127598544592197116236616337227963273203753931051208287658833177044336890851066030771363586121963562510771150150890431683325532938705566655163537622903410479015156488393213567277276063188372625455725420901086900194795098371949451279010911169986304086164677505894597493810250432927296350760537838018583472323965844721604886729194072756933761506142994207706954595394490111177319208483590108423204115019271124119370536954246431854981261992574712938481945439615793744739769874981842279199498332814129854042984565507968768350333672952485772314199255002573996692956760152736173361280393276228418241167368640179075831047437491634509741693275396232385865411621189573131069019581656478740192381907565866589332020212823120792480635173414498872238265715223240413782905773213730630017953257289150795980006077553594731692686231095121966089328288312215414146671766084961217434298085579909026724534418013860088767423649736228029051372486212100861411666521142007755353931078217497648979086629112207676941886760820479841210412221142837981482784386136063893975786305706890437488309445094219690884228315990016455601416078187337342943450341140820670537554334023675915818349887053280481243802488038029920615233424126345176182393255452556105979952658746436650066542466731822637122366901241790463968276056723150893496682135771282523966852607826151405205744264742399513278226082001580868027090481070398968504279761410057346420534356616631331365834696761255696638244426266329472151212877147949942158935530097314467426996892196224953781137252481805072327245194459990860532225398573709302202735275485301433061404953017827072813915185761212978182313664857587913860842658245852010588989344851783507215345259977861413188901892206344737260990582158546455042436331235512467226630129470847931671157942570116433491399711222191760654066954273494504987282666069682693699032071630206490050016982463898340324811408959865294744670501042827932913909375676090119420872817851005441229173231010917873730253776664266313382646036452892938112359020803884067629814927474814482433398797214350199777383708416985364585027678890794374932888016763457744907194358479792156265240237369991203091546814198912815629259857550202229298534841408463692752214645837199878221032591282815029087526781363984093262013498827464025494103704310739359380048494040391592973743430822643063636678253704222780709168245433285449720540631478252885231064847818214543033603323949223863499089257919425355912683086206965938441494049667322426539958896523284530943145011212667096551324071547000937352135042133280043492855868998505434445389585223177139518373552445186273696481405668547688918556008128817540905617094487109834813814665758397560683145232100669996430273685414684021082557333435619826912367630459311821446371989615793180289806144412113969012509831918745423253154125961972639898187748719545441450441994146270673395706360776032075571580733222594009827107634138598684925332711421259990639796447501254160699254388353223072111579943302552893112380869380397536938960175447301168658836634641063353936199595210746422760024555939061885522813158240710975382470424444017300385535834442449477644855673065698781146181067197898036635866886921749423703511872163317584626820782639781671966419635427372231084833427569421577540539432449069458395217665261383491279261025620760384222928659616718832203286400243066016050759310748324531145251709459984280175445493530245668568593526174402922171825049194553090564380271657747126043298003547828042891719319574997599777061815466567605232382094828038850455201759765839358613651642040222597706993026243737636255089474547229728453404791090702177304152628217451525045680060339821129677590881057368143693261806830542084414150318229327691390764750826832233914401531415387480321760005959972577877088579884700864837528164211733524547187340248807407882951823928163901927658100130527115520413947827050691795273104024657733119737150616849690138864601196874474503118231477232632960772621709436288872021044180701927427610754706769392679142095711968881212755172937698107800199682064247980413873297996180730097130945671239847678935472250917884815697455651673143166776038912327168219346922907339097923919693795463430784084772744814246154018421675621681814832156685235693043575120535425963043115323457656849044443224493998152008936002608067238987126939109515186246080166290816870733015050248385534035046568748965170728159003285898765200722560265579301240885395604365341863705638542119030997274662321106245287821644291647436790808150406729206227330859423859897256559854073135636214435686702051686666231489019998300427058444403393259104792130899415780244336652323960967067969980988061803006568246608065300718227865738988309092169491968545602674761857605497146395280107209289511828245703839319828235552977020224997321960771498359755544514897325732735325418458501791958145514342982106440261699391893614366143692906980125360351935056406882182646327250400481108835856607398898842242058094180031924006135760725003639268559518486780621201311940144819745811386096673580871896430637785122473644445264790001113868660896995436656135512975783867547072747870349552970853936091639400300420811002101595086333501938710393173284233655509119825845202211044444429636486203619494808609797269957791615771685748626771670831537726989346019020294412251293258935468574482089915270418756855102306272889619563397539527950910835650014855186292507607673053877547964556670582096277237856447366068000797743525112225517047673524319713643833186789533335836551564039467765579025446329902668461795959723174455358879353141845146903826604363615021385605283086505188187810286599667299302731068556759043735211462851983679119753589118654105257522337829403060915956661737208541358518660830166698060597019241636807835487282576968978632633268720272584195910339892231216550696202329601341247476771834888891861933020834644571627683816041278589070150762090890517416125336341227514632782959932018918761931327322459296547194113514985937507427696889050929307078105499019053409886566852828278477350999851854591376650694508783788488235797373966774343241159791190196961072282975318921239463470990621404378005397956627547299709599350074929936413920685564652036669609872689750992323154875791836998375592433454952189606912375668844675594354799393929712680861580572468494091094178950676097847826213139737060480365291320374243002545521760468791259364535718186718731288352570520820955614097834139818410110642060548101630045273102056171246187821527503303840980721488429835912554522623591924985997334036154410404689170989698892393696988484051288909158252499760247176152645319440077478276167542881284713285588284111635673092461690620855919572797601074426728289779667601917810605195569032862372387903587398199835358220689387375529768715050476509869462627243766281246504455928867057674650838637227710228247325988032862140682259684186588095749590588949550232583453721146882562994645964415842344684672550324670660861350802893809837642383092216385784393825742644390566653650690766444692760298937579692175752997840516034162601168543396769013591448073292025027074306538506729732120143511581948813809735166589067909644825468613972838757130228308666481348811041337425374598567926796491431548314627184836813771546912332599767780811962397789793748130769400753992522083658886550258482321347303833465035755848257171492533359721256590890201625674058304996212690156523031131414322404285489742933014830033390481981920682516822683341057435143061672471660883142876099147148681673110845649221531675534885029734662032229596396421966551869557354100742307111067621947116434740989331310562346984409138958960416002781648695087596382944869446575004478403283286564519761855285721525687348922439304067863329814719717793778407605356793050732036007478814874525455828404551209680415361715753507108555511501140037254378415770801565664515985124115296054687147615985474614249152450828021770887035345921673503452436934260016417756295936322593803518759259919519898432110442172081306871305712282997556827326483994734856317595534006201934914082790143294214717371300766738427354028996130799395504270774945521695320961334847343863598539483675354187317937713404958481063905329561896494047201691097299639292215789957519738579237024984810377365291595860472654445197617057788320642720488066174714011359342472388389804721522573359306971963324046528577955130729753040170609370505633770550890119925027157640389622737106641637017195420666942322583266847102287581278932541264488990331272097597290640121383255794759075900304259002763420888049234138775538462503964440348656901406982504532153078680339259955343673265201397851791134188327472509981641820409097093636215954333188469259025726511640531894257493390628250700732700899184210319350950852083704736658874278984537981943675676516785070654836986938532421272705681332061165623842430682348499570241662640534994090068587372542175243850439497303202396399726132974400242897543682835453964719717139120940252066955809090136256118576466026052543112003318138461343016227382603423334542710608037146006702717637526612968559662807817849090354838419220536955953393833371054068427287476611248230497863333648748078594221153074494391137824584357280569798918141981087138045757860261015739368871981685180431996238415137651552122653126802656516477498376027005274673102285448047114294283743684481468519571323691004163756586460954180555940588665624595761405385085023000643839799076685407231736824704099005849180450998709209970997265770711058586327882612544727321506801214373601928281494507703497605654605089931671704364395073760836134953963690221066135440643588305587198757317065856503782902901813145317794541226193555233205406908078761548141930172244460405515120724080693658331605687541217508137676089778500791269534989118859421425431383367781055340631953095263161944977721302949540774867917906132268603772252372078945814378398806086070360793923204218769563649350953475045846096257471804024886767633142678603721868061211431377240383048360490405377776811531107787025742368094829184271692195192723609887081616559057841640172676428739139946259922460063671058559889994161351741015806834286817266053842063786498445119000275126450949100717757213527641721343928324711804848130885171640467915997940804293670009218439033223532116891214515060662737458466896771972409882946773397448856669689582975494923639353163286599973111098019353671798920065154391234870183994626445470429013131949430160571879855748567915749126350881865251498520078106508936243669456597766821333530821166895021063951180416337838487069784925653161916876981285875393979196190555592545256929562242994732188702778357125204553066630507436930065246125089326225841241434127904762031165839840172355974621871938748286423751229117979608443308715874559482552731234175626501451734795303660424542567994097454956440719257766260518208020407563386719992858266929865528551424473290910804807424088727730746483742246316873062657425170217361916212051296413280802771284089822738089473025032218262280313645014316892175036579915401750269527042765725447204099727676287639932508959249794802337866141892861208706543451305504274612053356965978793464249881927695543370543752657555487182893026708545463484361659057252521614321712653932740389752606632809055432326783372826032789787131617854639839852543059066930714555712587523688607227339494992686641600480785316710497573226919690870361604753710445498707067663802267395654444791052303369673184439407309263540719264762483791951712820793975498013807593704981930243076854111693455287599417717973852536261886348030383668917086364536714312979917189320405075109942252166168656153961892054906839229160143793561778605694108187912438613561390130733668324496817383061852666212281642802327735400168437465332653396224769476716232683698050195241639351596035252066988266603416909253697015945929539168611336098438081883683749638964191512723213334628744773082352088500532093605864930656715167288907632323882897746590816852925478392384142267531552264098764251848674288278770360827659345903414339514511115457970914049840106529370481791640148365794138419284645082689802103649632921886146306179178601438060914385131622832407675756138971422665683910547547737827900994411569520790416294530423914989830989676264508262953506082583137222563084790320929186325209432683922383473211845514535641568836055396798197962351645303136077968472606489409058891383619736330997931936124874337992800230521576652376556917004422813574145377224649645243509656312847335036165803614064356911812168659746001972603586587272238306794798873872207925642850502190747828468464486547481380240392425096986421658682591919210799339406032244338125194037371928707440323691107814251514740711175535247540014787306339789583991928752027238694749914319052700187778436762231335105913285924494262463920119150516167725924663252006506853711333946200503336539996190662738524950080629814316499542129248059490344568935425558125596283563879633560541413013219232093195749616226689133746559612425021073307067730210913575223352953288670322211290140787385550638290316143281013044517120849708620700687558479619169481542571272318221199520741476492924460171228216470496534710122945753515350852979298095875501840999461076726611879952961759035110195128285562576409797488286155652793306866536542803104947598325524985056326873339476969768170638121873644647411117233026760552514152202709058781901317277469311035014375252654316021013582728488176857303558723003352885497859464235920631969264990838348424247062061584820173456786893729815594377805068668538460159462249809679897456705302959293340239538232337890716766633561630723915836235778509240538409824237907545576894309454543187678670141325307747329579147199694409751775900599483824660107470786506345643120004416838557255618341725222735666428427843057060541088877807021442814494949765692603007342399709795711461308708170725286339391086751557661380688678825333734332144308746441242948094712515819203106423349399501153591058921854681150058956252896606400179116951151647283508079520149625664486691860946528024582928914623053806158298438320661062817935973248330795125755735027813339755092450442874495848161765992278044048933331388287406368166330509774809221850201031322912804208431674389385135927295066851968093220716647814861853722222609369718331998445650088197488571716131908312493039936042886863663833861165609695421501337760598239244411561027892250463999701019424766027793607046320121038806902970803080845296328333062226209115721451017262780432100903610203545147725126482057180993456010597219599294077905422096963442023613640705662824418406358882969994930980965351112630458529876935311613052589994013404246411043858778334298016343133819047055954047601859962992510287263566142265969116094646743097406758497645764481557607761880774491109556775851546283504885882845152039376268566067065941323165159446797945273892100843330703712270319938460262101035234710297793404300216690688910847661635892756542934274434965522364216728820896844611281789314406973930421399222987086698068490321895259131805546272090872342865967967744983801897651267886661513188501488827458812086281266297471697874654068472060046164052546868345301045342957053454886265698219996089778570713479931048599089110645719350566523261028634923301890105771047946632653597574268190970739226049760391543155015860132272158310475583673042010631122630809183881150806327028281341771823813438695913564500602998215663842197116535776924472314023477510259103621593037008801276533286395331416878649239256321143419039673516673492030936315243944784364459434521758804446716388530744329338990316264467983553821342516287513056986615248726286652304892203007999687588720552929174252577832926589918758332403096201444685593822223629023023220904258138166169789776291623899262751975277384544538134173563597533451758579415621314782859189430045355753612791894795105210925231996531897367497718867100901757933154599890604635234791394734729388604983458974712686405526515506580067805189869475253135871010592898744587353557520375431588483375841468824457471711553573583696731904953849519697026647046995095691372660458921315789475606398327910265844455158894721810720958555894844492261361494531389931691324701793182195533181965424959926951567103701709931958183626293205455590886162214551228278020059191325421908400071930452021447934889159293008319815861196082905957448369031335191663147830104283211685195800105497313151294703314265759235142059233172919166972839465564364305923155166215398153234178754313137985530086146998648260601751792773659840513033101467165789519403245382914732314188066228909819008546475340702700510185911892227690990062351022631855220255729080016780021067440004502646391932279719466991526332611000444228432247566667775281370915771368260707253842863283859616495747812657215320436024528358684832122877986750544627474945403534821305986234508259031858646990150816244552626479722557767795803242659666627938991741057552662639839386156277904508992854293849183108927313722273698415130193558337349512232609618281499888792159532245980435140182768526167667820697192785485987269301718339906738304585272705942765846575762339265810520408515538122160642448983574675833027508145892679845845426748966055759929426724632812548780742303557680575743180888471619489171215871382753973625878895479000552581429313198923971981887615806787582852660878444884831567251636110479270845424531186797773580473757634769565704879021656740007910878106570922653048303458167962620276124283435802799602694358620277475561448731402430363224533875053631309318281249503285741157434889727508762520532176549851953483101795692520826148327859381268133975485853581244158370717132588833819207929516180038214633880377064746130838978812009500544193812923359503163784733772777315743973054334076656229710068055324425176756352301390813913245583624860109791610566898408011879485911837602609331694936784861204777246266716658210682565506538034700247298169243886800618174908034401254062330266758878282912214838073326100756761270948969439351616778103412888725654458316393505581565055802969183142037022897769679690545136368111790391244423704754525974411784007628534058684269149967740325847509477292521697755104590790645515911360546336144760732467992390615976863795453285191967693693383186468751063488512869172738434388476164549242624493045639768424405409793265021618078770612216870942495228158738419336859523327972780206899863962802420356000651352651675987749858375029329821276156842454496472420425952897115388879039650608996707703184717498707680604158798819711137988831956149795266580257191030489888759973113448436107641935136853097114103798736140591150759510478247360577012007883731193825127394465073293450863969149238695159476539593148727724191267049342378596243561994013607783287972802534733170387387951413772128474173012838791060381791123158194346902478121754394941653627516667927339912115646498325594642043555231577282049925677890509062907582117239937919660062671799103589929459668726289323836267732350204333637832017854269159369270640833859126380645760066885914539154134876594294090750505690716444298006450742123049110796310558907609053832998105239023353023734041768880049438219066279783621723557919501902598934519113104527429775000542742422367065573713986484844152431014940213986166185068780087203143717434423148341505034855724115774278831379380277793592824784021518532912372324012571494989638531578446344266394813424108854168387956607163717115260697065149753100324933075564877776723686779684377748409592609508778763345605516949805748337008145637692240420390377821945817639171758450358265872862603474896620069279604282809768820729207555631778123109657008875736472699215705512340099455340602599538280062480009556558277962209423204336972542505975536049304397935266230350021502123119218799002841524259056410197851791931380157276642119893921998331330862512278584084362615583493785456252836816844715361885598394998454277440220756401828242570784068321934175267715819063610389273033642488232119639178168082545855444739209747230302283808822208594915927922591693736056012426601829998421488112775760343944281426084588496237027176099116247382314508602625612479040442841970293886026803134410982076823241206908122601486348819811761974452026670728086052368986366086156207697370172816177182373647696822896936249513411381425071616000082183853147304496710283499060080072326612114242826308218958265377682231878092759651078827032272646234969688362678838145177886738284256978209186428103936261058383456708301568333794563079512466811116102744420843002210297499398280940570177535529624403368945996280788118188688164458541127040151519577093219392677308414721259916437764535607390795011338876198196205035333151704319183974256102279829656203418188045138107567300974440877727539271913795924754146800518143163601292234865214840370085600105943006217102211559870071433270430652825546554730425270691064817098946455366130759848916037206007756904948325275831375214658343548794771790551645700607633568132945455953511726590052682909512899166617332300823926567913571313237048334731648363956861591942535865061689271681576987502019856032197672858864347645125943303579592719560902426747010814037905879096854963674570027452846237464025612342742791205738194260532291553900863109365063975205383964292596018871708682234022627822799330804439516055653186193533652984888483329884419819047520176109361247685436922609461918912152852691108162181187306218888920180826885395735289031607791117931024009777272606567929259360114157112143055531851240184466678610127004110755676412889212846504809102183074652588849977025702629309764601855192406423772272587238158242785338939129947916628389485184154532254476332378084811736277460379444486862592411544354455388398943085645048574651299091742695409944175302352805757439335843243690957182741005358747362322102561460862964124528873065736985897644824729708154768438356604838084857138943028442401111082775685810493309972520981389735613286033012140542935026555703860992670731209055038733361566011287913777467193569692847760363878823189916197116129408400936997714815877082288093006066972889814146782298941943853672741222117004849024675754333177569251250255407188870782616754152387395455691658531823690666343659410362078621024199140421161159047335578617231920700881570530254319071863861325470599111932649275485452421959647678408266010329933703724073678219315440677546683923841898293305715322646850103905013408725773527691173064459003921425651681169455646601796462981560458835945718093469168357127294989376449026378269605102822081869385362983594150845762943169713989312112670887643331905143441157062294557318045015401073113174578747034227952874264719269320807486455889134823938788728265944830053997002368757995604711726968280587134289022861740268063602423465427470717324299346226678915245989797831044741711621397981436865174706286285109496823827806245650898077660945281877560958923110097189384778124609833147237455484402475550243064146374385960705495660474258848057226249160417209416844184402016810755083605425286175974763560178053431914803727930561277531504732389454217410647800148433562457802574644909037065259923518360279441390238088777471820770770466925243856067972388081880320707631953524092411926014974316163601826941006767233902546345013663761914420999305850416584171118288555133571315233012417753870508464612434674046541144653063102015052269714857175962822222767499721385157039846152844309645175634560444538967845059129386806176743330716467847181038555473826259429146182011430731883367583067030200816083978317461932122843167958950476974854563954576236899236635222696193348271832893688801325331417230175448819223192418145373087131527012685545440729433885586277464572972069466201810901931101020442768483477022321100368390023139898831997909562731641205988921505328374687877563087828840995638836811388746836132154105710329678568317173227833269590514601993567416255681524262898715395871791598241843388247424047176027331110757571674800199194715299516273485975711324776928640702683885030186262731926197937790357722928666333864239508441495448947667853894914441274671241909125890871046725899006067378181994447919245277761619805185007511066907360515095984404175605384454991879658115491722525774901114025372305260623766657431486305204642923408512260654590566834994464177961244214748961861199655137597210115295894844831135962630149099368060781093924643402000810285615364247695739184821205462873886210166483825944346197164835845033909572879942942838854514809424979036457529859766961078600123873500866755164241102248189048228626155267222108518268000929750211859003166137946427854766290593589365375350263661975059935572117693765829128561927166014787753328762208256992859095380814968426271391104569847421274198399018357584010462214451641657583283643902882811159730351287044071623560275456052073288288165619545130173201321834932456399363204597184809962017320015885145299784149878071191859404727244214443901729549655633637299647040534769369858578538793198634204012227091067309076954414814969393614777122757930441278615397280503693273212094045038487854503642490617221393905930580650673503779746017693371248211928118417803997430880183062337076420990409113799329429094534243471156952356259625497681289361706401626747229040577583053538378379989477029287762486003752017920188518123984190304967848671996839611236780097717133041501939613644606586380771541274299891986550345900670015995696265237015380545108414706186633825871061521134983602011545621093384255691761704736156218521582965721580649775034034032671222756681246600347260998336985543684100125392407425918355255498808191198657778939430803027379189752742530829159155083050142946040477157817233082319609898056484844204868384775362021010810434017146809961151366460109659044018490528018407892277485774961363712316210279122946090990604550820821219066203596832183765299944307139810476523142182829234417814072919549563534013918927787472721177143914132917204941685726132615254044999712723817673387745809155042782142929920670260376449036551087973619654653938470321553306937857309624784470162843172725303525775193850359417659924562994458575677333647337123651190342398448578076774092644751838564387877998274892712203531432089546831106430139999397035221066654684934404631548961516340918995416094092824889339298226076988485967427344823287528135762692995390172690094643755819557901229497814486941509088162230663033688644226706325462536826049165199578586128587324891380305006941416844050221037177272058948552409154400346218751062510603081498086579711276202501419259466403387697359283222186347975531157662340105265729378447447423896270973847088755129523109580183912629881204887094683180440029252967411518493344006920177778292817616236952076418302582415069793944326273834006296392908401244085526250663934080694437791545554801844008693258995772818919761284096412989474177346927236611290515250791750592701730205347069802102377349598729495374822494943650510859847170792328167079240290347513167844358143105280380772612592028480384803791650122641849290034159993215538350274139547094094494345951200883877083551132149125342861660718564053856751502765231372175757540574909270278418813900052086683989879078658926954842878145737145949881693607936052397541766065893142065251350070047685444954385600183085796529712315935447874645835316796056271545950565196293260164254572976311557567638959919259645102530010921766467911348828841875694742028472378978131927252846898851284956565504214875054548781870765422871011409311051205126281244823675155162271253746181760632079659290272041381870908017544690473794140448009718264951356935526561647645117975728640522160419042129625296749571181624823545072924895802403702764226347707184158176218010478386214111409588871103493311296477296853281109041416669369209146503928440574209014612208317984639461666391485784969908725144147257292197920171413347266232374446017738844267898684826544212234071560837367968569084169663573063504349876061024102563986278193734591871391385030275679160978004825130668652561013169486503685562254664831619600099177473739540895243630099843168584464249104743180991072634179510277248738242683192757537440233306148050122829834492654075695098699173906838701720893797115878338542763639732800091437759179669115712745289707924567164846364339373703896318896109374079412910624240709421543846196386645439102448371730482591630624207433640133245792791604932784452445902337609434326558514271617691715449231828038648422794409539689625616856671809557910643063979321071359014276216099614241737610188023808500897217593566176279721746053705164285523869037822722368587670815733766053090009080502712736528757240379172902663832028643066038157091800410682591891937225631990961779764479255943820472366936279381185040469870266609359965185535831772501867392708092504842934700659702117975696698824065313954050238964222526379086858364309012727084150641010808429353365646603809809917436695372296253038212403033522115619024919302874717122228714268904046798846696634105932732149087874026377975924584932911956591388776825643639635779376386809393244497110332861882900870375164936956649053727417874973283709892285143249454882498783591648713236767109476151890756786340486608104491663696763808929201087849326178061594651513236763888345376561794348929815028844966881589665867565035321598407845136188837533716866034795466270064751308286954908864852609866562123742252511450879718409833470221931992777604089344274314138018099825046565277930880563841100458565265629053688014448469113679124685927238480479851248827329824799291936520333590221677372528571937737052768196983269338044296773430417236679007350342012904395678815891957469147260641939379690353544713869174270992399891559970018135521983506246994775072886171564933518850766532098877713019729985412093848082581481235372795645546431298623648963531001174168200214789433947280423727263801250529519128688016091430312077846299902852902532957269565548640152730744734931198253135004945200175482418346989314543390485022838909311945753096803274627732877699640344469836013640154093598179512944160999654905777734830645089644055219396429630929259162855091881829994309387678854557664327239800965563187611159323634938543405515840749907125389336213946129910064696299539547546623536410853858019621698719342129046283344581331678301205602350350764375286127606176514638563326634902961226716078517781305431975007719459890050080132806048327345623120393941692477349537655747503067695679045510033946153788140138610358408255784656123127943742228138172503235315427067737926750837640913749710638728793108197808864151990949487165137641368891043371324251873743183760918052623705716451709696004597830817571766801663836877251543215903696433686328090391986968637890283594013670355502826879905450900400961499973711420249734799699536173974701444540693918421480318057841673308711137647150524303878894014580688530134725078799047971670482597802157119380769869943721421029880154548206083600551861217363290291757063231473363264118880108230290844532554072808567876113053754616843163910986040589676358745776366994770975038264060533633686407333450158510409732904514383828935152132785433026481382421756146125987262614448454804321780370617439762578925465105284950727816776071790088188601972128601072475103939020203649939593098714378837513993982902768508170608551176563675461543031266312847398383946310416089909711492613931138948522848596877899037840142746812731338589630362824545654958999340031438217896051169843657855039226741768065731197434776422760907165316300609379316624164180028121744360404104066305531783791006624316625565306869403299112696089780939498604133475671161499608324631729053449158552763128555844417458692077564992988946819846632800419304353904230946894845983119227206461621208093385725481900899164632384908376894172184284008218522474540415692097071117921639217894238315573473820383181107615408409083210594298154275633374584506951618599964311821075583974946391221878914871889240700858755804245871438767871524029770216540661163322735761988448534242217425127486281360020383304742537713680721607607588415591454455068118969663768747682512312076813228302547606312472478697092666340852552430814041364670754618818922300077027936097002220803527613714736709856296797155408329499124290312868581712043981253402821128332658353616206238503198471572513786111687259735390171331917942584838814946483837239273131651104547328297739310572338044556039064291301084946689562334558847581156198879088110235378641166337489234662223058454466323521057212129806601097883820107667505994650399374937422442653564965915417721011865938182603491697559917305957390814108533926020729509397173058614172534795247266769716472009548112111701887857106847825477745863965107481783660176980807609777767146080483651098753734690747166072810632343108683528597151423576188852385473563955576650379170546662797750246809020704436668489021344559471917206531065357168088311483228518472594114271080987076130858071977011097959647771456665868186321264835692827574647789614553712677992198584791082152045275636190982210647930696641476044954005450401307258257141457830614511315712580749676413919963032724673227618255601645604618345973766858518765435824179770888255194242568568789500593910722444501658493582191833798961154237470392389671992457881118350746091785758824612773052128521255604975169935510010585120547245485653426374084875952751259052594993475974853683710697907341033299010537134234576440867316900957700788759860197325612915373084622555203279625806764236290262227714764004113871786205279870930803554306730111584897221450039547058909393887573757717012045875465689641736367955251961538805190117286587289312634189770189954910449011467578436105089317843800992113094725080512739570822871764883768286295799840412521690916342081561453770718578761792557570515867272186655275540265831240686875011534854740878297296700851354650826244348255319545325952515106980306328127315864195455418380996614174289076300093253336493010447131513865552499676736901660481909241439815397152266121958208101207034595703571748855733924580908011122735368063327133486179867960484220320794084633350529504320560090256475669065545409783342126118736409494890511894168004851442182555608156171281010870259137208734469168943051096869132482221276172828838826235079204947494549102681133485421392916041095595226800699790384840712528750659539301655946812722613189130644697323758307255173580195056863828015642310769206891887548949608053362581274537794554428737559209634852385104601561195826083713978963960133696719613833611565389576656938834468506215641475714653152282810295932213450432780497676654829299244274167743425211820902123023986749162423801650568245947226982598134179372880586479244459788540593151067002103044714315670236940350388516025095449416613594336815291627311855877740814215912996698389386904210936009165898105514738965941795937963994840977673525230777723278400491846666427125647000763766736935380810284675037104924299017721526378555506454467554946016387605748989801126107774198876543107513121428125472125004534611729323086066868861932629103153492805077886245671322100883042907367427564429883533447095537007690507207185815122416677745720417613851434915011107906262821779559004686605735450254911616781015669228602316083858785693114925490654436136435459195308803653783318256256086596913138619774915843040018359254417191539983848350718101260897321486519777128015964142991401527867211919499222053927308714027591452266334537223140251638047643054199890449649992493497031522582072003370500561096072707060900649802053594756604775971077854987638896869473141940756697301085017240920830791653805571148248396799208706684094944198969850430384507759454258926203133692900498638379913561236415276820244702777111219641374602441192585737149411493373117277907074383835100497631920892685496518694551292230621016869532776350690777974744696144297350193415371755054266827927804403242151847169941446393651858017277445983379744724056680945744477448622844766389758946161860023104246035433711810037473818350006514028731284383983362648157673999275334746304678878259128788367612728886122960943369783016955815077958814394494060788239108610358913503354185232933659597216345484734286933890172100797039214491320993499467516028615527101376070515808702373015884272804139922511795109360692889135701342904086609603305541414276796866161223025970657210736139292448682577937401344040201928047181634679719754099808567076796586928497296688728127910904513787160418195019830803762717359901468840869063103091065982706493929419782247101225380543422901126230825140090487663292696393641875511736730432074048171733107166731319872785827680529897951899966134110200038945558176473356694646826183065219214611747595234425785273435838675694595395499481708020624304930325204880221444760500343950898022645142014911416657116045322805968069618951746575984688294902624581273989588554018852655616471509555946630084103981050917016719518951974996073603667298536789014615047204618807173799323211184141410104567711973324581156866750479559234132481143106390356178192633197655838121812499855300838345978848718235055129664386161887807965940916023640481629904239124525711855268263133756667533787271958191253053132957235931162887072980405982090592191144835837082491114904553522283819418300165910635041918247808672808630048530046517777185618949408215455175495473918352135190894900693309926326583050448000472886086156821996581004323887623087535469620175348589089213999080315923247326922360516050913916522367242135745054203067123581834646996463763374256861398414509125116593975755341832254508654278535384044683551888839777829100695139310928856714201794495496276733311709344220529700879502445922138049265546183568510765474828282915412802303076395475741226390327955223082619529641749837253728431437034581369722986217762696752606102299342327604166043329054666445035369118998384883618957745001446943130075020765545032432434369819837415092715438396181848146439019597855677770786310556758837508786287608064260704308210933319327297150049557175194981416784196371937858939936913805353140075864777005343896709188263349884695429900130280994173314089031439964630589127427240494434062326345217270760206510864744421193904971963101990356012562834949547671417968828790887050014618955072881269167624786841600418958988088258554229294911957923711053222787310865553324014118824119448483529596493015369717016473295933224858588973831837746972169343875135275618435200967872593455309944306849022746894020052671050575135224571270164254440299703709056763859821605393961397311790106629205136658829271923795814476511484382041705504696149907369603878728751713001120979846848682290180957831922499795680520175529675460340125584747446734136596781009332172150847886070807215231236375722567786726114835201180394989594272445534597834970827811572616536304953004210213885509446119440601881025545132125314853605270362377480868577835095345327106647361292816379100464679833430183029991894511359964677100923606857419468995132751810586267391575934952686126338383586918834896264637843322367806803741931790467060393593125881966873272730077293354056887664729631703653345878244561009121067603705413308931463001442218839502619167665471735991363921022558806533584781361531398772099893698781614228177003072080895792115388335013593898138348315025529091048291490436705253433667725486021458407397472360900334731764677530801040778435748589594146432671024854816079176186440436819359390280686741410661331024852414262835621583813980408869897135704423555599796595197309024124912756879338196438472163263199294301940988346972373768411887072963237285307832810027639770470746963242752616318978384422110267320325739416973833897388140791797568357295211900302202473360629793604968734226806869950527123861302287512018142424513192699480985579058531221672530756477821401012751160846326530395634023232815491375468602607356299556976856047560062621382156678325848530401920745559701041731304316638442606157436582596420290387785471169227225205550414623661550520294145925257679575844425496520876693396228955793690444068147812414364284916525646193527098229554084690441292364060377667798266427669025657422922642604594335206232402764896065391623812066218743826582113424062565525824925025871719460142868867406199213598287706489869550871626958371778857740457685368116209940645016474716804196472658467114739613280237800209505312315411681215411765897504006171792273708162415277473194247464824996017551008345367429936493758363971067866610502776066460428346417050442268671133912621569682464081416629048184569566656681685448561574354682024656812012092880070825407091393104314108061699288385870783937000144586657585357910487688489416054279547691084509749093280022709082463478553617972664529461780475225763274500640805333129732103545829579351835071144543185361149447573211124918445574943586448064339932974187009086358751998670639373942758070686375792127992416884824168050882841273403570261037324096186871296379402020273187465955313643157221917638749584906552364647712891336367800855247103583426735706106857077320079190605457466032402959955567097369055756666997570905950125467176958853172105613852506061496513907610254881868138456033298769752557225916841324740181098889617607167164889138687832470580366439278408040768511571098194013489940248910535521901542720588222183076373507210966643163208609811289877673589618915393148167921935530055498658527790192755313258159908451247406126568334892383605534973031033341313461758221987874339878888472020029416843005518876589892765863853000704388108750018175105547075692733671765036772606771853653876430336064399765901073002073865199527292220448692340429272762511315152879008771887925389474609611020332877220520478438905397793997507426535828142756672699562218884727658267271973093635222777628458158968806997484842492646701774710663627872025386790924982490597895743373438533529194081577559769473629503340835217651955227883288135801711112969104189333449540284463496702514970305352973632378783678817363037850668718949967362043127792872372328814582341034116436758082591799498390976372553648580745698264202842149740425711971354218520244659726872711427833101806855874102030161242503247733506723791866446156522585004217241042049774238257648630782299274615174777065482198972065934437040593173005763904639507693812613423820595964812445558981756450003098934602699229636282826238603661726065730452487159097771755987188437089163161713066248544923237543352052140216239513122992807013447494569837828295860040554851894410523115688681823252957117558462386283615366067541068431986647853360639111671697524321749766488351736490228638237570596802671385768250613704413084491381856097300526235991725416887974850381276002905242071316490527943128349036485802333792682805256534992641162940770875799126504195480076403678379190799307657606322429928041856040649938405457028949188570720233731135261137383675204013414933149197505327749554605652758186436622394680213606249573719797338632269472974883032987730265133504603344936551206882672134419417039914789339886444019532379030132594023387633249969903661479000424561079316493894516448441164817747821827694472091582114978990441691174741302147382485692706198589404405118751101561281876491733546907039014992230288003799977866666612695459823302758622422582619563692822945730280202837139418206604821336536853518876164716399742454319659884894176635371517833665869599735506213145057469937412940684270600392751162664330510761621651387532305395827661931483988520711060363220623303206725459299235709180965124446802814553567128771325049322287515392415800571803406784572033825454748851611232247913440244484698567930798498381898038114184335819819164133281283576236081095824530722610883133668818553037196562982541700705777490059605344116257686595112472376924829740225710498693083149607438717643618484709169787468355985197770352911337959881524874565997887211082399543628774387775335461695767754160461414987539076994462453682026819508246329408937491369945168231861944863871661085063659334924715894467158038154400038473130279137189413720122435276287319696856336365338370423199741752006023876770173477886027706045995999090675538280940961211940020259280909342402727281199011652542600332188684634393364252525591093745739834646857755783087858388917661749443925013247390167278915005135202738741458158533794874040963068933838384933562675044542400968135617589922988428878963915573214959333898724587331932533838332067758560294808923848641497857514606531434015781801696388994735253924641196443393881975816400088331656231291702303868783687079088261091284636534779004133112062346790430540965435544065524747730640551703688593464555942488833700104928353250676787328886248754377339916935944288064294611791350250949904946019054349564121613986564599789445645053792865955666008098107279437715725815591698288509044397262135296119471364687548305123625879385484648805838328511409421609928192811055910851566109685336407943225304356724204022568409343361249634244236049375534399860646251822173492703269386412119880524716471957839990943070717705846691225384043434834263110138820318264582007273029362249783633094194864700380331210011027379523347897594172610060549755242848936016586843815114324291872202014332173688548468975570548384262536005945787683058347353412554296592788851621742691505875231370160477901455619660817063366712886704843044911212610883738702463752490454589314286209947400514395724099291767118470575472883578660685898601249702583483269257844656736680147130982181936884939532239471271190355596815353012545458351212677225445405771261678098739612332489468895885211799887899172377412268837386340144073111668832119807010382634688002500858036298178261595512076730126094322002576234518861496708321736913896126400780978970177199137633704727975992471075019750640443563200218640852618322816167493965931684310742814147495021056638954147993560265023561268683120121397575806702481843463662718287433344864209157226077650677289518208826432023852348274263562308889909658528414342173025934815087804084206688072812275103894412514363993460083568172957621985167087689298797111223864085739010614758768942737408886749468042333436150903189886262445630801578742698094942054118868962189642121379996245912097268433708228094604267009000948332855646725706896017128922154637072690032808600352060635769165673981227220983331600467880285815918985960937190158453058966046887195205667429525617502357778302482608181063039666607217395346118756877217195531830040350205994576010729369158247316202490313530591499016815785428891211337610149930665650061896074748242521201688984761012991690530976845799907787806932937148152464319928489535990034167798064685135693835592986636970824222095980288875094174304801180763184746479586324492254388614089571825017692751009186463200458284918462959613218532814163358102246150476227159366937655131107351594878806167771743706432522853988322732965635292488386524411797726739161818270903850518164846112934406483962947833689959008509556999681212225439169295168663764449783668405819125014275158412226582686169805289062423452020586932139903144194552417984560981746596916624597689871597531100797067676277618844145201012449079753662030119156733807421416859838102292434353176250493802298803637678608419129051944873896275524794077503471772404931971670592173306641504750050300092065694684071219034704834330597807120612294530399523388661074929188295758418661098902292763086230925140864080539277013235497377436309054961965819022291536235930002133314457436338993741117246936569467978608732634578409668444754030066157876804745343889461129959790133639328978648553267889693393826485129353269549244022674952443950075022105232959760058865766883143948964920280484437632455497140484403355509270219526717658613588845185296821899891720108326663141073844207749374115431147323604042666574767740640289822874844887450848889808077922829686790529846082890263457303896686150527406478667655601708359645380739013693434822264966897962962287095022247620038266051456517804465997830002268623180363983728121157619829316914185912619426133215382548764876288132128396722290916505762791159004019874416220414758273066030362540306191959950546838862274151714954016121706428708075375039202700616845257386683805989186091786129837568830251792494766060629632478104678040302086256310938219736785648907668991314053430995535855537488147038882351299392595516183283438827455862708856797250758285703577880047204612830536651048146201169755371827868433725196112453660242365052440207078129036895215617158408988810666484038558434380736926443996892476678460584661508312364707479479672056745822326423772746155748875090083641837766365871630878477410838026476408021952520489591790204577647840019356403461942405204705269453963746210456081011724857636522605242235034389669006488921071310195749175916627130666351866330827967213833490511716924064807157463124336488211963640307033894402553494390880036385282147250475034125747275215155590501195769799979972697259356011030673925724564113526154769805363708621220939940054874563667058555195924178098545884285716908341516306050819633102494034389425729445651757377097559231266444639293901139562831427137465265420075140186399938579628959767053353802684940482885812362781199902710907581758423114650396108676191188633080386751672832589586997637829686779296375287831396669242122956228733229716035927462978053635261130444907535452870068600789232068653980262090241134557632454527337687489842509661038134417004179280147470838566794578424701207844215852516224754447215748391962915450157211620005409550752987653911592028085143920842030991391699176209319684217175139527944850319232983282284598255263192404422185486082526630637959416288059434063275698216743334741510911369096976762269400338285157169741740277809738746904750138051709580444898243054566406805953120055014548766249226875459826007575215254554689002465822052967266131326657195185294839591212170221695098953531693577325403329356948274998388184450887280642294505140310002953102759379574507452523282303530182981579985610200304169743799537708065370129017524054857260639733353780892579849779563529267292671987458625016823515069478545962598778973931802543498886907123813497753568273001465269374128301531320541538320622524388386385084769922035428992345100228482746243618082457490382282447116738281920269460698686384471260442587091332744608835616321638953917978101028289769228238265559058545366178331583241141075483551244106912952392640684089383545878246280761486534585154167790986927889750579100254852328761877779645670583307193880303681703688043489910838206468726896092246504886005211913776195102341796658032107727761408802331977476591126243763988366644450792074918151338633231583309193212453784008893818427140236946763825349969573304198885116665892686961991405704898446767176269008703008263323360869799673513437955968823993229847546114196664840227722730674138844207904410923667084463767577958860019661553215001452835562348872884982815419731585159269027042722490936294448688183852027522953984012464710834485094289738950003822617030870121479855737596622881066926471418910511610992523923705296756503668351250450028098250984222958650484868788332017675610069283527247372767799575093216862606013657761141869164188547153510790490133319176039910307851829493653849637230906329100440732803407227823730358729799854295034450474703496978374087637812383147996687806066181054409122832909843348287761037302327118668811554612543714736789388659728180652232955116869015863122640807002002426363126604879989251225310356261738929902664469887767734112355391380230375701763309292544143446563588680698278802923946230916053830806629899007195422111150653759803361587556317626246907151115193641479991523396957589388717358574091622626843274099057321945845692901458742168859641162563961798597198291238671630384664119049365409974169186704319489880946273145996277634691789806099901519029844523270858189156817836542249190967848124010015941954291859004481191094596723910840232567195379686957866535435586583482198984397937399910533226967284362925515374964258171013322907446515953367555758455558468997320200180298625338845774196017224526144787584322394797781917375392061968791171685239416538263830714733896940631446209380892746385713492461110223717555086199256100707444868515407978298023980191454837422399937081325931561356676215790408367618608697080153311447555920304472814133406749125904675884672215744798142894531078218786467312677277029383478086586779414751618258852637560690375577778937481990686542036128526934115520941690592477269346359333688603022145215125455295035965864093814013172308445500918454345172432595252741567345271425233420193419228384656692121907328765014242311063773809385257315183631912616556270059929482999232859614059076624675669598012620319234377741808575879120702688438216157791414836918422948332430173851333026002366700728724713139239815323125632757565857364774363292343277339083835414420432675567319667648572375085311593309601033810905352816584893895539731543733830637420811031097475654730350753112477960022348437619944173806930166890240509943074309062506558634860029770505814133051481492767139726808472319664530211393923725938276236948006291634075239477108689044895446834277868009929513244575551531393125279991361053532785975601782803434802932395034168875536574880619875052069049425295221383569752326068889349755122410167042208478751839001203529199479384668277768608196462673961876759364153549017650693713335151097508170875548144645678195813868148429545774088086455888238104832360528068174464188149406758216960670147407960522754377326945766213177869358068202788478509419111628221756035545526443037983879067379113623393232116108130242341923620348548811669869359473781024552377647842250425978765637577242125335305067349648812402645739253169273181790011549619159327537321290676668172711037997052192001220866080717707440049987850477976126606043026216972938784124465484683850843184944843521762904124340813993305671963007258634036181720297330167524136409510264474780997979170040300457760065066405410337784150231815986087876617940065676399846059465720844082453743049014967420169887303448869445587502221736029749209415388161369268003068242516161980213317989236437313013001275623256358679512840714316142667100035408701672371046645977237046725780649842087024118246652986068407930432849730164639668516370895831851331486009178746462907055420437006818282592369271781089892194584383636880390245024005023946216910687922972708757279811336083481498264679658598358461667472842761968199501999514103275947180578351535071540429986050569759841391771213080360526981881971275421400975232795529509014449374023464262892566476093208790480016167834635463809540236058051554020452731482143163247573872874028478014995233300662556591270004978111162538856957431545837392825731013458341796962244609792088327103248113045324191248600922979398863415836704927691626060597864149326606015307679165272615804861206660210473607763675742634830972789455217932305625485911458753400732742318567005083453509781321209530086252840481429949000615893237745918071387088156811124736034126958746177410480375127207568323991587020761801006143883044132266512621857688609336513713905601863844856049437111038975122024690594698807568575934266732023644999809981381426252632304529437505600454588354096123319086173151269437199406289785695354057575085016021699241485302182455121415925114061473403592167539549819307142410355399315795592514201802576170231721050976760306458598225087268971387617856337473705301393789321275035079190322280874265635978025243398978669918777108224997864005761264069320581810430821055286557729162675718421087991234013697205905526275234377075371595197444439343569977178070488294219959013125922802564908293903974627086784571042360916020526609407054928609378224499723431505935021548515455310878818734224748240108342516409054126149136484194583607318091500846024853512302208776389814779150428726700031842818396556180721894920040774611841457781014615604405060110822660595617540559902658184581519709736824130738911615667902696015354751799771514277408464969970807197743716285212538075834147286815765399729735516832056424874435096915050183787710835070899271217215452832211572316396107403796237113300042288011063043054928098142674780188362904557682636964941027347092644293465656121418940595016975102237785553195758873669713935495019213139745997805635238612667788680896527931579182688084522098321010047327940661054981355819067661247452726281633094533818786935318714298204548533546556062121005674351978815123039398118768829675086558717513425515848578017722613419115651902887497409496944220229599151089855285689091634232043255923968485627798767377525514804110120946910562522227065229008101954438755824838169365288993011531000690167401073774308151985983651712937897516572840055809673724758088064023133839110787682951656310527747593456089730572511635972420333870793732079148040218053110862657128272170880776978687509124675258181351660649900032547519270676206312628154240251322462071558301625862125606571149197517903205894064940995257733811653976645109260290220043187361399467263071931628258239791186043442254201127713199780226946726643302130949603387471163203592839845510256361421793579053728948374082155067506136744378612443841684768524777997592880819517370409840245188456820874611557327751671495910023587157163708479461951012264375461840340430429855851706196870837137135365363130569166570852297911009773939699445314535494425752587953961448549813764118904471226550737581388565922064426877889198555198053914819126365200529851489077612155028316251712565537669736751119384324656883652653384373395633297680631854259388231100785573920115513327096221275245369851811346986713890420072805647175774864276257969723239497469399811648048929450466783350448248425944508061694293838755375160066273899047278552827802208094009436837179346653316569277527410127526298634627124776443717756478449972975804158580276860416513142980932946775516548926434443023922417496352946251978443173740839984413215807356409499636877000320622800165320222280819620961921897164215820572041096544517486186889173888586440708188996895120172887074803100425183281077332134716149974780845323077067227221058755531377772142428155639271876698069118420056815506873278961386449455170168137008750015229884835927504863653387497645405941682455310140306064885735555283163388631768945240731589990578315718067382410227117730744231078037614729973439078015389479617642931328788277035387576052288680338552281636503512293390818868053456805377697560156556492787396897032882832830253888885483293472082840472140547683982188387335331998673444502385863090901590004968096315360474913951414250466487079942494863017072072914928115903674667791561514842493345023362422317550009574913602424412566715309257491230652251295986643373352542001920261195683732244734032880072247008674301241080631454936032135715636727977537845096314795719619582010005454689777857400272776856161609359806043643796175914282697243521630111526696391074685654421273928485272940932439623100480027172913623965543779957743382863689026012529164507171250916436047250203867708532512754054450313739792742257685790223617752209388682021715342694058414667717308292052549369589493885791578925983680877835257138298680044585730328518495948495295111291825549033197995238012721242324710277491840747730984171391876084061632186827953338698414760463539494060422127273596366987334924358638580877878168434687339018311985050101172794267413330089827791512861837623996758295023090398808038121447365096148186370072860134581652403621648550398816674195569662537299956801176607710915081034139004465973169660499806582498964357753118346129314533867355254806368727234481381273642782557135351314413501558727127050900853146973922254454060354446483479676067683728471943704492175314357617451867746690382908952304140988464135874937435152095220095638914562283908961911495778352044065077020049636790503201935758157585914251353795048456882765554377508694337987762006206742680445302933695178262758893218491065088150722034453173617082872542950531582283452596296996667192436400636667875701317757389166097797290997077924076297590264416292282017278138408198351025003762107667698247654778049532126072962759719010824394751392593218432279588995758072197348112595146905623705813536192096352166322849897820488824213192449216483160911763131920220611932154851185748205205969568967935279784430112232657551404738122941641399230316570882797395174905894568775135759641775937557344207362275591876384648181617963509107440792796625010707976361713057927707271070960972088225497457088803690491122987616257797058849096510293991077602459820367331794645038965910889535742749345292006650117041025730282437380667342582253670949349263714170122372369980396270432049535168421192015162823611761842669984359950970261213838504599189091428626462046929611211948391537017230793535680365722092909701166619743920714237828718114757562358219877011599122170853274922577868098645803842877688448977475104795924611966812507857120398109535210353925988100767274599851209677168574323325570565689219129587776211463153720932460236835438443767492590853433973614832248107078124450554701107283228171740096068675256948666534682737170530113629365997253872179282439356829156872471991352927487727816549994192534422010452023376508173334785928945323478363932084872582624884925461653061684436360673503879438576557340475805148402499104708076802058524313235105730260332751334657203001334813760851085843169001628003729200010964058501876155743445953488704890920383856864966428878279986000089463867483275179677828078551401306362905388447735312834944885854563878200585360641018677525609233794285293035151790256370367485180454319962867811288326154541197250432614193396061380366507270335181270038831688414080969482663771898789763926485731577668781369285744406682853535682549940201275039517648107688626214918669054647580489490201151955790512050644611713742752854296094046705646798192207664028165435595863415208729828898629296361801468271633898597785108818436162177665364358317684010394643637284266671578978912188885656444042462877047678036824893790089821274679208775275809555581962225257334643549856739998130352652496477145347418045010103195850884657123687810564550484156088754498907631433396294813962171385277927055853700446362791308305194088774076770131511749720291913787147929905627594687412165113941038291380469880418906505946506805444244527462783732126502942929463377473328603945306542963907661966123434774631091437678744328270046438025382732426286034064666139417109840694338861997182520966850960325805005974156838997054000541541004107931230105929612377903530062641520630919407494209996964953820918418867541025239502831205194852618092960519046503442544511763317551658098073306705163290445427180617894571644270056223216948157936143162383545784775081573222262112681511688641267543353801105268124506695268290109246108675379466590735571418779990338033319690733936786400147568614014197807310895735579931922273419064887417468336558335631333064392720915734062083472471022277989705252054389719508723360909256207403252971623310944908960536265366858030956754032797352988358609985091303581491614619197985447879786535138661475335610345697734744714695103641461322860446330805389378266769018594252421940577193759564791889552093928940822464254375070174953483563808748625792285626377349860882621062349574803237495522622989672038031297395214946257794737607325196253764977120364394724205502761958544458559794388818527147415464878344576233458312992696181445105626059985267900224250871293085621250916074626027265557436610804192811711595172251581662453661225736566507591134014724398782459147833998040519757824372726338072622567354795985664339899270148394507381346271402903498238300888249138640558312806422983153158099544903202873967112352771701566556530854806514581489173763428774217348024267728406555352688834685300761315921172710238328189748637842514199677963545088278869977382861656731007646091001686340831168513921629201243229645324685822216635467295068920797666902996190629106850623714451574795291259846637425857608323823560427711511972491522799840912945095272710865887315380145443839410276553960641946749688921959358825731893336497749161313291657766917873097758610421297043541001798252704624086288516728071230043389722181608129098533560834824154260078887537948179709256610991044419398645549807995625471022136275625537425910886448167125642362990361248109447103631726034108416721589220794706617339979843917975833258560552696553866948965370371676966427408596874876753648891144510642129348016740775032645633301366592860676741845715412514454165996199984419601963591565602400176745990533006796157663510380431012490554186274154222001097769384890400644180011598456562397441246160120804700724583281748358043440109090925054057051840229578618966550118821318326210578981256260777876997596331220077922823435446743415784169589452610292720103561940604535787024315661816739887330849187510818788416853915325070047590535692954957156064203304239495774949842334252178929397838420377927325068440751442001692738161608100510267272828106052372172152658574002102161411392080937811940807509921277079215526195614529497815588931306062924326728113536830970709713189153607923847122692595038733853376918547828087009359245915224916350053299299474770652848026536900434938861173963206699696216830340238068062260796238349831526793299256305031505865661107974301854317934504493525687994590594077058258396065170386464577646799112607511992053453994122426619480355769166932727487340163268478079717217099581737970465810180147594938859136638988332298653519405542235446532527599575074461570957260296641236561707590097636805463395548608172880206659067519187666143710437923467848105727270102637644913674183184055283973866461223801303671651020752987285016782246082115683763770791393643589628459036454548259881928612385850629520171701292446901791504783110847493675609098054669198806696617080357106366165901614585124970037594467641178093989901731123624055030598588785761255670945173534202539532644734993473031567009713913714029751259467881205074326571935584130137181230670326964805128219107769732905792859227046434056897143808219815853806966017641699347548638149223796157756926220998201472846111423581597203888133514721553309898015791354157184624521526156810517345201151939261139402868543229573853191297706419008497674512486103230629163862630674162871041196544134922513379120036401337237967082753642239797621156202718584062686974199555766502203913276072396158528100803182108269025323540183080169829621891206914519405373052750576118429616194804745990691959268898662672104082594784807775010609685380726699080993572524524482489542232679145617252123323373901954339970014813683909545715106673944165343538343790691150331404103798272733709954845571717096746450079596515091810726324934877667936729500717201741810440386899519768545050056462421541622265004292014893527007163928100797807127110045056086295122067496051827274653497986006220347621006483621802571714704709544464280204855768742245144563794772012862571939364379406495923077783924074000118233515247287480030838868147838783859687301591098937124531986537437841055757914505879962553372664669941697553226528760736026968108956166889039299462543744446991883178119902717976400454148245669145154696494747727898869172473731177124399110735327504163741920530376294548332690678815696660472203217271849644138549675966961075626606938156760507386347940060668137248266883230153202437055556190215780783369422532288324516565119127100760276696194936071155252741513423342030214214839619337828046604754196477072588050892830563834008362426368272634617753711255818411610295603054030785826598919589059599713744996871254058741594422572844618161007843903511242875162405533496595832528614984704428890395504289943483719463582235944064310534691281992290906760644678015188820703795878885730827175925899544494863365740716221215807577134822269920904826166739580472539229952562175488960149132428190780824835203837119577720308531355132741088107650921992186180703537514326618879552659741609975458099227971462586243174256247698541178653301000509256877760361696765965049640342531023480657520971630912080121698382969291452175777431946209543981996393634562851846399053690078969935122482054550681915907505917038662337225614051851905570722714244025383016421122860296554980911500424676884584808310963240275536423756880253655221018200841457274987668412761075041472119814810353865770002431240540412577110271305249364535883725750696726208749451698917603031120360496325474166639750677907163305013222180265618296402358806136032017668573616573959008463274488247606832039683896221751608917422435518072130972629007813843034610790299334047800433311052979738696752880601005608525025768111075275932479160909527334000731961535420360685115529326249807472563167252306129078157369376772345485484151369271687932052251278995584646587180252357953906489080288138177725955729139033147519544284339340541695596707608298809569664554032218626144299275114683179428892078595993429910136046052744633494816187067539572724138440205124746950713672473096704027713161657966949999201396894682122324774023314795583793171503206633402040219167855320943579718463675684901728479276037376520158440579662675328717731252618292103751311864084226325235858822786877846040492749007449437269695731002436187086589134869420005430465046653736330418466071627448770170328183833985246542560010316704616251583530691733496460405766619978631913053431547282206964062665507624484602196435307497581144532408606447707519466003485810347682496146963650218418658271100760642627554150986871896041946303700307105789583477016876484048592771798733897089874676861387201910304051425846707632597962994709707915092257614382191794476272998017995586895048351255431238677918485829979096535101695784768783890830720838770093045064782753284906153993457112901543210320492248685654215562332202912626769860867988891454768417512627754462715931661760122463448793057296811024996908153044508342876555903179733845590177448235702089432035150872927480203545628688289778120921419264971193881313300633049063482133105581192185093651397970445622183143444462164403033110426486426181751399955941031536251705612960138494073907431764030118542603363760075090789993040073774526985729644508976106636975078516725844560523524436937325424121981825292244870568631211770547043420204747073813930566872970577289136136846228832195111426502524701561277384042940664354497162721477169944578479692554182083075576333139446527078640562039513825363769948791425068366756911176902163180697807055052075942727353305922947290252906646776448198625378896322062184371777619741661734624487366966124282802095715398801976137457939776854048470031399489279583044523229551496177106819795441753282371616096116038157615800013485592139919965760122657846985173859046192920062406562849846893918112482292445977826006661374141561932299345062980085234662013708017857813938469102379684075590385959087136906541909477166766199418468204326691128788133879720718907922926265837581825827340232846781729260810685285678732311158706498810023500097706771706604898265755915503468210388170821696563428917633344650120586291654426167322273816473033351848174525693723828723462454149493375948742541198248278408950079359825278765789363055358882497191812815672803850312138496591563805683045189441872167522864265457602639318571274740408054920710001072727858609564588036092688634915967645223238998649772269700138098010943140728206756693920877964872692740277554629784423465037902252420257026758572472237710147914564621076968660820934189368114811797479780366606119571466010193646986617205737099150329818372845808250015451456545142413884547300698552527592457340680528017908797373835986570338278411603406435756439865035055695419433911269234940708126200950612036916485018978600725235814610853880854603756290882469220223258165961805742145089764879241069420214580327138995266596482179441539050217674901224736037866882128797804402101589817524312241921905750516014714604803464915045168444324448551326544237263957701247330474111747612663627972598954352989037648555691922289327613606310136553163487320556754069983656541803023019183243898750466230071992261392565678801469047983874977964367729008129090836210270049883725529478045138042587153788547974256135158758279927670344854548324679460161321088135860479914483782244620013067008267172499263226729917165953767068476196437406793941126315547316757129606396616677698761314533002997099990000636603273187751394141128304735350764796395439414375974753930435451500570448492780170614762836563279118011034378851626247568473488561184463616791525490115723762639031226692549309080719855849140169086271271857537936392601224622496705211800591495292734363414597404942142559597574297356818521656503424775621292025273987194609120361754106729258208929859033578757525620106053388840962041917148790394480061396895008426839644254101066439845623336143562340356745232841459158746365526877988578299428091445699669434043161324972454260283631083737279718846875822750347314582148732222064515504427581896185538547426774409831484462295352416053109974390978717521162210959063000945046337171337311534225416866744818188762122811976793871106146685683732862029891269240933914122443550387029632395115579881846233188774890225697674265063477731808282162553742284588955709468974130218589503931094997235056523892870018583462421129180153656979741756352987516926464153680521757959468131940309516013871145501424432116381906892751077951570865610527760431537480701217552347871692844423763834522509757257221117186363195031215925605083331237390540979135851988602793264654509730159815500942601224267224201902847934977686552171665788875967456907048200647072645717919491819039587546986832634855403590108503803458390933476901622287041782661716243083293128735731941542892779762415117309336656826553765336557313956534821536789439870479253295842328143263066862938818279343487192227223395525231341941488255826964432976446023084007738973413234191887475061028454049038906404133146302144433811892644103226738968708219060673793585158913454012455648275465753597524784448077046081713813241910404184590494994704907350113263505533028221976189736175269080740259752590231661440923355435502672235543630511273293222993213461074968447427003061492654677983946823938556106841515733126138761278867944454870511787300271224422939002863442639482327152817689578905864661575323823988016456304562308751802844484077071291273963342311799323957761877745644001871151572534827317824034033948333113924308368529766931404321738782047410210167644406861547948168241700496738804089040449867912727818172025247843437988176589708689083515289275938350918193264913424987413301761214038003973214052772615481869939870149863001007836355989184980153932067465023355470233715518641713750556112114770006721632290551414118084250152975493148815578944944295417567417476537199556936849898695847018194904029454089862983953600133918178837295120602602535285075586452201595128678268195715882588624030543523553387212089163814041775820444985956316344614814095378493591425145577804475786179219877352348897367982303676613031262602359922708875630745233263193067122640610503344382398122998911621236973414843335894774195876681604460380530699932826803143324292653259001456634118300104073986168717257250316578031356421778390388898141936976204995386328235170977354738310239854640816249538074669341058581554110299186118076362993565835999544278986405046437096250493828216993037855218672167234786001037527180982967069557799787952993161717083127968952010300725587790325264334240115388751680410666418673725712510863154451954201812530416638090965685170451270585744729940425066337954288026796948788002990303776438488613884653938951330699631269040024899812313546971048063872543976753563254083351517456450116383808783610719253594291185293425000071161142615964048789545592248410349500294833982106804524239500095710685342432810120795428872861845163237645768952516012613382260941480584922876982817484643798610519804878614341482801679581007524894576251519344905749159093094861390089767943894223688531669074336077666108053188613607138183559402960404374966806755512251131239672825826382955467435026650878637649377445171181284717956566202684541219787404617986715460619844391395521603162720923049439794928708334368413442273076253751661671064435386377114503055725672036030260309338069737433253220700044729414226072444296678685217241928695434418699364557351071711203505080372355669660399884182133262957257396773925347494333134518861500388970566922848980299072007228017957493007955003682816521746427164428501331828562529585179010366721369551560269857071874490495587767093494004289207513831869231290555945035122742425662893048227983838118848128236991042958240125028421998930068280572287429287564054904606004153520081650268702883385071201749079997818585604807163496253506243859312985542798397434624315194605681186893017452716514903853522582772966855310273922263752713961223345673538024088683145313055092637504386279570492644248618288326637123841299686032754209406637101829594401587435538856782029835428001633130417381448779480158098687293021120794402915852602222327466112517583395888753974869984142656092791801811906198690992472274144097546269908695533546517973762646649742171657909632716165977267047288285994859508238924312253758348825336233338463331125770135423614609041304106209300946334186585795687732347135935425959787790489095906631810015491136032379792718236648296717980547114129161851665778838942799884909916947994562419316617218591676001313269472464797823866126152047277198603847183434937835662403905737391016726260173626830949084077524968501165440017968972302728796038259071376297607650612914445146989393820245707969232745960242850471532034476588862318163616681372075426929266968357431524171251773288711905906611808403835440784992795228083700418428290412123986650480811577566434750560589193597201507801358708601920051530466259989025824410208769786166354211285828136371293852281658079914764978696815756548519067415818570814922211215278416033699375918237454483796612689185388802380582531436716058167261106897203074253907738961724695510617046576337601449516871262459025551608953348791202532829707179698554033728580889810091555385869285224291260404753956423199914744301769305532516156425477225898063550906056566449642653018211714341257885827707232641147691359940395502881899797010824502647430805643690177638483511357938520349298674138659642483213087266095541075245080308248247621610617299462660808165638745770909586905832597035538219500949211375203475080795537241574623017940792527510887896307000544964772701135525894886293001032943158817207001288448125152253502482778624758357971078738247987068443449573900961726136244763507087459025296848301032756668081179769938006688063212753930284809067807589200192953201574579647526816945101042168292604123268835826000057290051853926630766047462975740037615455927299359957769518979687942911859132610338382200682899954586414843213164352303965821454680791613426064086134540049420994579778369406080267855964179022918299388670274108816745407250543252957738013473284681436174945101953983456103732015641995477929693128593561431108463900153412940666759483927334473358586798877656615609809785477413237822730343444231983503252078449276460717687956234692008964621100681460547799345490277758459257566408138349660389419778329906565632916398335803167386831217741847111535219560532961149678410823235690404859891687748353262400274095940489342335507132281029083186409532372346139415062370556663941807179727886206714155633948926042264105299494965416044769038048164686525819776615701002823199917469052662724056133155699114958855218494394124846002664664066787419182117015833186099343365003469051240869194512079858465205599080654553289111553067622128872415716144355071643160262960515003087051482912345414602275996659214565469942808417317599144945149143893583360586308752250045237855800121481396479172803672248691525402016200599180344879645545462924223462978958856700137145855200620062212589861777199475554471696513055917419079975253165343801179386903451274706648324604622162970582746389111666789891316088669090463735750283268196494834851918821132464709379699482990540376621178213779524059813917238791001908303891029306201004686095802434767973429848992470119010046940301287505088997329504948891526778207628101804750819254566007351993100005944329271192597235395644163961230795340532325788250016869806593068702770643255378483432113934178938336232776842055090231024304173444300853414300098855756126497546158930736695437786236130759834868518081166779744962836952682123704532456954354796065662480810754349053060689819216449674298994408575969499060352870450103056124464777921594013392097189047767839778125406442157173393686455057028777564419500421559051676206496075578399589881622736968113614667657627501256034910993792394792683322899314541177024845935333424988667511703090004144886577772988352162145813659434326819366059969278994228692356169857487831953808427332573954066761232857352584147148349973173127283874334707329963295129594619166838591912221227304379151518150542961660292615436598423594619715660721343796600997261401556385573608560771835213142864955702357875702436713986786583984781018070805450035187961138357830260524782556580228028217840791915394668264336069567635294798075566906967882049669493724550033357662821485902267617258761614952568159149301747543646691435384716550292966667280795262550931912873164827937522605471466425529477566305462807262635073427793508305017016586389343291797024242170476925935152527734702846844214047744851377224751973401651512949697751117696249245215040133008912058262419259557700786521632393386352144861804539993118382134194141976923701400634600500159709667135409520725957291274993056232119344454814034311303845714129816591959082106294247624588510215855965139101554560340337560385662461975917738509299134417168183046934831430492952858438892753131514300626260549101861205382347542384044237313143846213144347682317313360662347465307628527468145855187964791717880134148484752451723568783564117350142237360903730685608771388584263787577395715014116040733423434752191903375800745014089476110043818120801721506816008830575575191669432905525698709002619751295280933740815164793347106860768918556649515935228613954453662441610907764710697054636742655950636834696740966310874015090320330884170525801240209374896957563868074181153426208370614222377688848889641994375066495723338319178546554692918425125140036965397476981733036739535266455221493110514203830859505968517395251387419686926230944864149342765859365466118136120559541782995048556399873836631019050384090239563779177220644545071046503445372612452802720488344945736967838169439931912346853772463500153186611459251438832496324373520386112606029108088176851765593928880922410463248546637653614595575703280583704488149059498891128999456029142261844855268321808838329748293562982329574334385285471954873151899353919619945126785768935815629216522800223298814971184737536583269339330824128385358912953678371932162526804011734139764964310945550217016208455290941071314823128231420808264244420510405327497538231282243488699633664440404921627986637572787243790409265926500433213792136401168728200629474699117164573581448354337905788289630412922544212253908777626464147766167020964345341661404154288992430612906915023804784627157388682998316135047220317538610450505870231372489007560324230532024681508315816653363221041411584870114274147708062700732599109536482007891107438905515654457355635205539659219849650825139445557667040678372588659751899893568363229279668109519139271640762704562353411798036649730786654703410208490028804401256412540441659143803863840436557995253869055546832875671846336644947321264878730293853665913388302251767262147792594532747246313291710225288872800787445511832002424082230020973631979590845775273980894564670270144206340369211560690942457050444857767898323595536556040817951208223005129693742073734480398495541299876388970343259460509434118004336753390338559735158996669855769373914993478676591768845546427393411329051500194103205260793096025407554767600790985290493030148730365143047579987356298691524419433958584538772662645524554063171696136781029066583628818174504869535026363757893396265347780198228685415482289314906867562316751844334632196019267102803441811051017595661944277552277901326302709834097147613804765370867782686275622346827084436935604896149914720582740488103735283688951678566175178967450154398076703803561683014165548444015645431777951921199583877144216456117496818824470556277675183545609555187488610940410690835694883684850594588158488742071274337221236431815344757400060545548582067268871317219622805043188525494833379276445100330745003581395297595738265676193156547874914802224399397759336914666908915006589523516956223417293534654921233134934476384524984066775080141946483413587664371643087112890745629817843758753534826828981417919337812258005296530919540019856009530599901877312771767278855247717566694298177044315699085647207090551877858457544407587964773144887591745863227235363693736877339397358752455770202890395605106711142961997830627442028233999250784422172959797724186184810378556926894479277136986954646813521740765803244821801877207751951236512581651364325510316495327398297603983560623652690254759061859711405474433788865013372821663169575655401573614160387554132697730008950728791806990616639459448368154268082421728338977728706994446302173232666722422504289357439703495660266522581897434450760138919931839949660052253137865895431836624671390859938715284502570308402192144681933043268296548465586473849604155450622322102403306919360995053779874300891704662646282365795464270066349587069778085017886462471921052461598480897288654126447473006868563345846487225558110881983509594288979083968838396561434282977233128054480069652128000021639121135953339734243322032716199602451396676278694880118886420811273899099225696358224533342153899758963793876965557904088054563565686898664318099081426194419139159076902354746961271512437627316651667498056834972734586041290556917457824582452280505129441294351392183168216382850004945381925732064059800709351241103931873849498216805809928129947369509005927980470765488715610747980530114617136045326312745731264806422435151624232022471680159450872590401254733583463548431840234501405684695160620608308881806176058342534867112858264363645532175120348029594358309190370297409159693689689922235023992360686286125030824364535007483406289751492851038467181597396529529489873993485481967206375930215454687228612323798328255539428012501833064749384712130025234036125711921805952150965201450262439417174452428923641479094430703914574539179959618805160161165940219162753148294773262195034230406358830134056196426105564478154937590790244519264755656043022873708127402242736560690708528866044525280909111378740262175082930182411395285531840511174335216871344400459380117765016223997199158044956310203867199099828818675196411363508597250757397205346759060525201906935798290199134099773495542531636668596662357353354021709087725673980029158257903302462033508304961177939910102813994239495545143199341697967386616068852536266907305873054058232993116514209394013837004913536377940627594753204051271897507334207508878476913319609256290947784102893747451724383203448620147673955356508213237090015083180354149204241307981929031016633276815858700384451002274992421713566225885528521706028215443071523477365684961776568271093005204585365730334050582232708969949061212579211569604774180108017323519564297443205907718136195849158105187884440267165447909503924389587909256166068035404505899297682296872984512145499168641273256129281878840657481472762758259282426267871381932794795526651141782799834717849472076588589097115200772990209507499301140726245200372923240374839894696545443883116701291760176759538857312812098344263398217524994673128941213967271431463229957683931392902797279412044317548005934639491811545631896759854728440419419500815255386322340831378813537268685150979334003833935285096917496904285947074898596253712001665719679450668451534015082386043233337034890314027084661255523526513673131424277705886180432656785798303805417400492865869080102619013966762160557851062470133654031070276042258706031351639829933224509917213591871344352144514591228515018436910289327655050186549791450462647841403501665412070733309899389826652060340270006192986219054461006919457501290096146242267173082850233982845022032843330205068471625785943172030172009709945102223963773626132243910635107804995193758532012355032408567745949435069430037447298685550733529379362743598430672211323339323987381456109042007846424532636656620592580752135717356576904763475542291055326415411500876889867476518011927265162243867677394445485774327464470960046613232298474696326800537237098813811915669451492865378932146285901480312098238490381874203268455006177707499768957833144454730652576454910276720232674165753668025120885661644708769694962830710065192815227730074046256867888928239798071372962032352306918615006432034585253826800096883347328926605735880591981132090776846205755525555385893753655862927623677297314310072372490473766987023229141073568691023012448496379855860623897709340426069216305452350258367723916042894071388029367349388245210513372677637826310966992162152041986456366876028544790422057033280349908854389131629556763201034531500400751207405046347458600392755223818851154819755647251373593499819843149454082543332788938545878140564464924529801016583804147536200543399653157959555218854997027676043564945652180601750917382908787399302221056321666513482997732491592933395637510703497873280890010228621117064763586682897598490520310075931407524069984367572819708902337731399234972041605926694391603572498249794613450662126346802316327370031206475288284127884099679133808919362638972964641919163215555394913341945325527483065033407485432040497821279470205042342220390098891364354388974934266926207280829983527964824033902782291349322270755424109593966735535875406357562600658728151759537079382457617300466068357105148649007678208779140139705749371461583986324656674396865903466994884492497161606062110940808573568132792143937813751448789875900768806667480549392773107684871116095674362713800656616544536695128326897143868409324826009996969195851590481787364241692418115657221338767324772641704516909051154612764672650655809428868400487265934926502484257115890009128696306218688766995049040955282251575016383044292234283919544637877041828630018289989439584829648977073741725653866898839099332583745153299527761588428767088242703432964094457777588614848542394230345287014201269283357767475256907831471510447652876467134958376676582128999165302795536032289999775743322949709216408434554433323247440546284308906112314650278086437267797032412906925286629862608867560325332240634803075102793021370978668365454659430508681874096126880982260069534748824988718873192275486661118615581496072717745479347365272279056087803075687959913330777346614578084620617343859608542174424574791442410505037624692472426090289086485829238010130110184837647945093675939161436668055105356134499383545766431467171136569487537616285226220587840806147528006066544953449470389264017028479820842017681362611935335178342557914270293321739483644198088442181195124535135653652103984085362463937103922570842292138432770381418928755443354374039067626653198335140456352154754495667398340754186054957529580296654050439255629318217430789557265919156384723229197946519571820423150704321312411556560546558025995199592097633003789080352073622631079323425900138697543216293041055495319227559947679797905502117614751333528256680383104455440736636953858535295703393386936936788498917805162176926956115296010760735268262598364415153563696447301312430051961472848609573962366541330890982384136548509693837795418507799288814392400231751954739545459612631464646004368126460051915398294548341555894921032973064563202107716318260474946207976150457200802117929817687380024267679869247909449386195287294171630755086938254931171168040460001454190607272748947728114247275689464625792468564410620981418748449324772767498005388140814304254861274913882360545555262100640846362342184948702828978288954963434097775589058103908034218778342125775290888900253391180504177105662634840190460492686784985230935668694208098309393006015697443039990756523317050072943715713501731756920164003236239345515471129773180668115980039096142187539513172943835693336198138733343078099490921666946474679827340533789355868765267037413693084554705915456651881287544316584097602561020498800079931174142923859976618506934332862542054222050893410556048815621241421856155135508189108259459584978685942079601439136931140599852961271544757186412495226660578393325831041454615883551828477820712979007934571480970193113363098911649041635417513934168595465053291160810472191987617645901183542509268631596714284421211914845223158556722551792201758638359509668450943789971166563599823885818402140993431843407577611089793870836572526595105018857044479848057935656270569089867407445922345687413212899736039224815438187880868949325827004636612590303695480142682552513102285163928761626644760172105374401720490341066131126958531194843393386826830452189847509810858882426292896985539688046385925906409695335406730744952882569629393228651306098110394188996044804728640343008048245302299998001504624489292572452515244645248237992601841325682467099134374486467872086388244587808652795715209988028478180545016587856929755727102434435777598015218793823133979319068708290144981564502755319892643264074786123670499639504426383756602644937134432975646787212131546722599567544469648825849562386523656140393484387877621605541375701653660921462048909294267023517467083234933966988385325040405695495642047092827535130189022062742556944546807182789192352569294776520475113915647830443479960826133153053475083685942908026039154292408816909093184400293748775442882795963945178208590400223790335093824370589715720978136652005661726483782883768479626036512044653219225666668368453082243950358207374983090145693509355393648988300028463718133260847901722424578334916083897022317487913679416935401022998296112872496031877840451866154158299502529526678671569782179175977625281840118503396441635435080491188942387617282970418759056179601598438977755550565102273751581259420439825669151307058709908175959466531554848700271468928611993920325341407415081996345460471633456499415619449826837857226223677192199276377440564234112194096030688583997846112144571549716337601322744714544761945021962350162699781529161475965491503637272907113974161761952498002881864135403787335841307291076037155811367686393512185638711306938683899174199508305494954036902827905177493302977608439876698227511211666882807672983278600554599431684037174849934905635210242643515312882536206276782366988774936257441974820440153853850839406034844460003226448984668521511380990446768216455956054253665036308066116106841782201662670997131205726035578899561850815509438494119490255067831528813673609721956195916716535310204149250371099043892564964470247120624917471670862218538878556454250068959394571009452088981275908252885644370866597993822732697532254077920501353399648903881020623247597672315975107763152616995745314858377426746995614804956955002581778945851561807564011128374736048781143159496190928711566763353042306707062945187150483713489852605704224098417438553067438924015976313000644050289591212220390237050081540510936982017959269558709724500773401340169374265232056140820496029310738600885462008842314874140189786288728993386381322191533200640486690481364468911913904976476139058405302567969817573675906742500793756246875297779115791447535522747534051571584498311499631584308045348196883188938119261466081841216932633325180604452608797182360816311358163238837052217363784104991557713174392261379754251388693315955805280944094916995402614423904410609594738729871301961167258701061517134164021076440877506044541423232124551782848938029563102551760738280707333598929187447343066829417864835505820830146156684469932648657467345802371056365574380214585517753192555740477537178057299036431002072915564018665105187817763772761220204520734572362170377633451306149764921342405280428046364338182298462723995099490688464471889002105882909226268974132303211629060066597047746160827867552714682327874417374480256555352055964746260707849340650902749396726961231604404538583944692944763501747567513299136943398623219032403144835476291279689506148656315179289975672499757291745987518217288885281322589756549843729544601708020233683327574378542030365943422401238448972393821432413149625057990138321652120003157297231756870559676925091393126193145340286036618645361744385916465061170313922962541060936583077134709872388589063860353077131484019661399049193614375790244288878413115006721940191582401815900097005378728731350699493474884614852668480818600350676667637588022115576879793876170860749936969508240290249369129198442944045619971553792274429607692608221419141378864444468773448484292916444596102572412056227891341292002176872585486937520648441155200334706012984408783195970386496968551338479993304370510504500120125627062768236336674067370468027779147635216990867389211733882859034101228400028383971559815559374545348255322623330729425278743878397447109719306900217883439663437787194244782763302427178165567850873836367111031146575474016177604994185736259852595460890856382825702134772030118092104528732900233596900097516132235264656859666266944040610020354576390422317178914539773510360698766000086505608752603983878870457184188314253640171202107281240763851881247976316718354787399005755101923514061301425308820356942554150766937696154728369636455287968311980803980057666303174191341227158497642067919737869361065940447893992524785055537764259797009999123626212677608535268310650058546548762597466917958578290260666911776789722927369084078896472144710615379469563972677307898656885026964839578633608188757024277593254804794688451224643174297395610798590053065593663705885733439860785777867693202778054377219121062298406283888938937802017337887196454992453995640356431350093396675277631110676363331365367870769468719058278495797603070960741167950505788584115281609621150402797523284920598443744212192960411119110131684692020346833823805144868521819820269237619040043402567675550753190438494133946710551748895971384161249457368950323806153524092331322246115322410702828959376406525896451396757931722484038412411530649925190507465638262616141277659796274685873641509974864217096531151182233122121439573658720772129969433407309735504373710538970232978151437328240129064319121278992557457122882685001414932677998072062248890362186991773762687638875101114972531755146890989156274599957266232361158287036557788868899202184570288442500094293042844334384687322883749830864296976666988924284076686274180119300295430941653327243595968502348812465967848146301788849533176708208212790969237726266762914518473926206352738018005067196070887409187024256088624617759374914517402202334636257073844469960799208723791791261717131792308531182821262373026350157487636668757984540951452637901596764190179508055070308434233692257360737747041585652386548204163651848523928121067157628545732893407297049484118871614310502936675562645015522938221448817314319279265562638122138058222036653968960411725940307479568228179670922584217141863568977738430805907480545950792718559016320639992615660994227132273002302278890994530247360761208444991689695556536965728014099956964865283824685924912117350831664762382721122990854914952833362363087906206252660943011331744531964198682302377883998791419561255086415734956105471061903116216867027369559916404050945627124679270652810952167682338743338501746844170796102369567666348705405036082236933747178203796078455699361959550507826480621891509058978261495627973954083717136273082023750529403671906923429945437694896976801440167208127795436457239212743032834097937268759650566209976543430345786272847505668875851296115095810283964180260849755563072361196109423999886931914937115750868162277264800574828526270158315683114164065038686451023963361551589987978841008308052155908286068214288845555373290584714693270841471769936769471116374034100071684024841404403896681241548730011025882090109383223996245630532017173294987725487716667592010876658928923330616601051942019348337056372620526775215823431196279291281616990893465602886912004942400162879787875107678065808209573611051978758973304920174229249165937147178674950705909047646928256255608413903153882330727620292359286636412667052166167203395576159736005686354067706249174133822860383368013948091954579378706207194254392602148610625683684579535984814856040817900029535247859091565781542535305768183832016203846498938865241991813010088641915479981726886500580874775196277483105828937166405931817011684960377432412110093589922311565684748943254159476375274452881394372126404547289555182963313196695648651728337019052396374380184092834141317009195026865430419800062978258831218294913496016406947559291034724420099056109776233039142794717513373741442249923312364538507144787738238764276687605544368552476268660623060188670207515779215027458543950446646511523575502532591189432814865464401421638291661720578777217975582315799935828174181894040863040338030091394195656520610815637125151228878698943817030939910400359391105950576972321569011295330587339115411077617263216529865380631923622180798591404742932131507136197802157565151751747611667080909176765217325370701008485835788359352924226681238476274943353701496495605483909734377072771605267503727544584077232563451358886110849174704202638344706660912960082525301812488076155931036451253532219521893371115670645285779011045653065000784291727699837854774263825148349350839719424543388057315268681468371424028072234937983338185525023801933800336924844155083524000462663215164038865547351424735529882519489231864794872995185557522271388393260143938948493631828101220933620245600889405515158671032173357425828084370820893615001559140193835265534516740126058230773523775447486501822912323227718387940285883542596377985584148750069066097971508242347541525520010692230656252545539509148662821988083403614834652716429770208545122658033248211016594544620732635319672876989083351956654509629943578732486373326950250716381445214398940995453605454451084217324151260067017328642541951879651871838351736287525491319803469511105303172959783592112349835741435947386338876605536642884821835869293685642233156148423605040655420907737729630000462431915427884528091599908746953794137199760083020094608677074807304848315364883269999480945535711203340727491615673080190528384750320541428078750544039780428075604493438309743082975456004798070806229535711523506740694049813715813354826488874771997460564329458160464422496929697351546004995737238556313976468198118596873704396319056905956524197550154873059704388137915356622374228789143967595693088290342121195926585182817940412783131742864824287455675081644695326956864555580207628608105295833567115172304877015061132093631708629426241524914218022613838106835528451593754818886754959248710711023798637048545499571736655552963599462023231270353671067971458456424517126573907031047997253840029009295648419387337231960837925054968535847720792031214310560120306952212098314625252559135904696350394183870548566673215408063643029587309058304637994937115203869701918708137224917438545505884557589593998685348758536481032586665392914265844936035946922422321897140068089781966275002606441370621526040897914149967295425360076184290159013779200191947515805974335504784272536818375155851158741456823147749825181691497444372031827244630263644261548058201929688316867326758454509097641636473890088323756576680439661611169477976911007143091223525267255613221328680546714989031789075607905853785747550556413251367506326319144106007980673399530792711793919010981544701987480103709427534876263616776738059314655875732664071490283139169126031373481962089986961554947053742683831784836196103461428195695907143051987188790347575626253649759868659175944545349618838833685464956420015926081052943146189513870079460170371735618529413417586773555963054699582468539852185035767138235926620435425757297646947161641666186212811402184583992438491678410629292494728772133596516478267579474288520171141250183985711674041674570046509988901829902792517724452421718156139891524859226801880314944148126293639306715879790574968150202136658352622820993913262477887196945903754942979351412313254582281713937651369381204011377403430062104610737469300567259231663981955939949601601628396813242230416529579694929906420408706744068696279301604197852823078372303175760099154280128980258094084222254896802401391619165693618090004085949033275014779310287637873370168176858861413972847549209819930075729845229158768402871597864250679252974473496473010689180791565743373271512133864069439693234936691316071334332758540907087871647145409322924767518377685988927232915596834951733501287149966507259052991924267512851245475534965893089485355390010050897711186639318544039102895038614393987566076965758003538186072484767521698094958190686613963576483000930415789154209881674902684331115760795096341452646678745409807548271791083236185068861688635921645545080699788136156639393049820829818722058268668218464961668177330523304875508583398507002447630883050632003172244618694425513275958547161355126171889596238649778131844765184229278549333761133761054132070139961053706120539773183594214968328565409440968382596607760760480296909534751894554936789727914759419709197696988415035039073396081931889956320831375893296264871869728536068090938720512921009929926130502895515658179071507467015135594064430966228941307985106194929568627393213177439799523850036672070347379638701446235467571746024589366056395313661016388827943584341599773717744249722986352814364109897810851163360057951222094283393254496113730288487722362587317175168266701978981608821148920190777109040566345778441185506074804580200664983351175053115901026542638114546480924086258384816144777597728145331256123195942518941199604201520171211906064916125650858065593421659671729373076934538770410470258995700002551136723510549363299415933545305743342164662504940838890454854768228633823864814732002784601249776068958589587454638965291419941476801635540170873520655778370930267889157465452541500669376502076927771060088222109661259462595125253850974908842185120195659209227033192491472014832537716880236753534770403894115849064486734102881313522768230998314064557896065083138471497316521886104664515440973362228956661494834674362006663523172626448686217342431879103260535083166073317178844520847416341059983381189021885633479449378020319596760205709571653768615565454613104175207654185764615804186066675114857652896363482721286699809230607962816154113115298975677421282374403383382215984272847985034610981836509014525147445980632930978002341427181743413113101668607353425948559098913802593276665970964659348334153819089586030623883339692086288845958591922328249622976999236613595895447021886536799079979127833723775387257208759009494294637441919544996929079726277856053298360386005044893952152954180581728856101692915235977227283398534836081055882166869122394030418215060887119197661145650170018341061244991702368951290489673938130644239000531608598630833872369773668514202209045859548764397001229101193835891047191763291164447184655057486311332028666108324981388590593167313559079333009907249758651240791329961509793232976934159819439001650790932838331291538143765810340958810709703143922264804935124263788279579920528072656338031037963724983175155509387364787744868146973707151192249199761774326491724306620222636066713186372030881608961457851100051443713113079808760736302172234331464227013555909988104931020542712917069495689813499363137748751139031367283805709686463639039144331120055184922343774927238971989914175947959242823752558873213590987431051664935652886588630323302145617039828338916892716524444545153633640220373826120997126377730444632435732432517897344918256933321194655058655967959564458187948024038119442687586703984962228540149772147575170093049697803340153853534478086112671256124807868185844400999002499619547395997129207814347819978226979099780374995883083076697884505803298257301813508250391207674255590768009476696987166210384261939879862309246834940844528249686060920475912927869531079321555314086912007686015916488862918974998787739934042186227976629869003676490128855683376927613778089643329916825310052261273090213932011772698371596781144577338284699441528138717378119458364670799892488627917926541988789662446525952278276678188894392116429133226070261228896822829801851520725826520291931960716451121996719990793334065217732277719321814651124431877101590825819308682396325344378111512879665387027800589625741548725920840015988315096812934698548783920850549893846941401455487750238877687920823734160200262644865718363447424727941862528735000427100679682034266558155995934905592144723994818300337542207193454189687426066937342537782297764030272735505763517711089650060324422473282473140056322907473934091138626912602536309530914847343661464060149158682785548998585793842630455060382996517959704653466422043794153566771319429041526425764676662549374179094801808279041840706091929094213869593688845842507998641388695489491125588531368172539841217938095977469672198703391648781577308517565097179669974973103946293285489121632480945815574676622080627258182099410012769809459867903952254449185370529942208531221979533969189751982684762538982012148271427868399182484149605471065966224365306546983921480081829212366839983860278015345195906003567949382764439953301632990278603866138024991330089001091866039153679403378014658827093695708122147201085790611520041483376353454224458532958875230039033312969385589665471146393812508078133138857187633912567405014172513232860148393585177730186462802323691641163646600441361941479792302300443609720816744178052115800321963987731746205504329958925240238949094728406461609710813769927623033763268486049700486199679090889912804074358767109657270772359814198201618757675687316089578202199481545456782331418764939395984663998016621684753354607439573939638413868216430150227590449530385189255477785621508550698977581914509382708399476289184883381944160883684839733829100163290869793867234893041009727788427837816171015810638612571277688863538473351934354517038707892037622583908372866139263015991752053414816014656193488904940461143435139962313662753657306943962042175775360586526264744494524633962113274621844437051319906984504774572842290248298196593093624998839587410603628393012928418765117462346310982654703640826483214952832027710958288974564782540909720697762214086197628144680405959728712489414950271245339214255490102093432902530679906606595015186444235459969627262920253800821229061456751313515557149901463594692832949806475455287946025209534453701768029730976019932923818480010592410985836192615597035604732853004294652637370039257025307563106980427848134619534055516264110137793785468886936170860245615329352427695028287970284260445416866868863783439146931769465670824830186740764559688922285533295072594752522436230491432861888625549697288757351285712519695628173840957367864842175583833396712453900429808894112944434517305046944891548677958862052497840158770663814805622670097026408024959231932040195265870336411485979198765077345267446996055771714283788169576804361185281610465582772241537647668537685434139037548053940178322187645594933792514745862318900692630444251511521044027977811500622836559616081065594752954225774173572867187004251338258748784411136079082840289213479168765233144568443096612435726379156755792441068086678188789277338616598953393561054352070137858587893682264932623718234109762062531289772252277521017002432735488829073971581561626769225399623958762150295783146210942327523182782859389124148476220340686997673849087320529030061229259064774190896971419694223006899039160282367007072019926784042539462508802970935668424306732116523970466000760067088570758714354943818768686340166300677834609772239511425553759617053115661370967710885329907049369896544115867125801447918204442873987497807149648772746863089390969854345459431065013352426077617362951478344844341012582906183622694507568183470042480844169534883036429162134028337917219604788263372406771138815948379177969744567907329475022153917581738295266577713128765408702328307742493882328872108130247447504015960417048904638537280156350173129752163627952410216584628827025940961997144581201614049826016278298429548390018952099322614659621863829791882747258568971880672821503941465480774082677153182213297829148757072535075616768177552435130782180233992271386534599061062462494632229592132351642264962083361513884005840589540079376140330978755100369027753834119302681862859395863889740677672856561763848000206677706911089917023828690347648446895050394291984797583727130892716467543248093265139100227268168274407401340967614149554911585808337591911137408298114894468134455803152575006618659262105327926506478917938094663775574378337026159482269746492455040460054939245914388626087698767064205320478933056988289612721481589320663166139823347972596037837713766623008484153471461153671378140428454437386881802360253423390726018763157433810246902922390884634281907337958845422683047263905584325435283807234039050955801105613650587140170545704618971617264976875820803994090118514701534209138932799636190389242607652520615868517408705909030701973645244286908770413196098561353416329004485497249811540142076698151610012244678291398414459455819149432880772782032848932320900417785027157100857073636880233447039190009475573367323857114534284512740667453720583259740620234060490215127801269929833618482156286414629252922341064350667707752452581847518612347917348432617858762141395805740410459637289586826471712706507199817950683765548273193646052522830713485217193318770822955484918361841954640865829251339371158670174624580994585124565234666621802662712423403564555162409718867226696165622658319997408933832261945271720778405353103507063796837658299719785936383050348656323366957454997820324239315292572622911388127363262409782274342386297441350001489296852558852384702142615646997908793002215385658652959185818457011042009825568513490336595876694363116886015529161246815681573174226742746893664518362708255986847903341807246513088827229913393029345747249713675763346327203088228383374355555260131691975451932185776700093537174036683688069393824241463863030196495288249383210328689665098685885855663888191653040175277562115594814930337154166510000213505120388556546567715906270171619368068228398054773220651831869219285361630092214442184296040233707516965972873763835647714857085172832964946862217675358334976059198099880884215626715527111538327013553574166432617696272992368180447918110409826980052926783705387624290912323409838724055604581164964409147126644431670980108335484625557335722364860405554562531952204237264109821825011188171953065375867760430311838346068476424117558354518752402473024599815090844655146343718249158942785623014382943130290765158562793042020496765799981651688798142882647855153590584511031060853710728676318727603409210695223306959260034049428090401521499013955544538350814518120469632068718856433273490296680789810540184217000441563324470482172382636599668758742269253405791881991897959883669233940293844144526280707798240827545418237602866501787564551407235810659856954558934563095837609342958347967454393533385746790326935065057989216201066953246754526633714401969837434098996069191067157480402659463358682946870175321038111197874912216155592991946664952781217344382013728769510719391733830634515945448575481323950611845947850659907545391994832794896116720711830758139655095730726034492189381244625114878148573474212394755472832980170952283868003831118412515814753772426506697357504224470620108133146897412791302040174311556004648805392836449148146390340350905309020711740098806586790844461867035746056696676546945632964988316656402711500890131062465491435006836600074850661147151646673129585534849673313855638091394281070275902179830490525990673834992301309990450035223175714667206944467832721805356651951432388174665493141721660067154564626854605641063966872309196905762734609841584135903474527752566588156878934342542244442147390126420880412637085624874450386283586543797512445361156733589686518437639087167958701125459301208544181305735435491886786712248260877985462537056014918793638991325325607153109708929855926171931490055956609553490523812749768489234495023555237600295118730986071171980977291101687741796743540021694684393521467827651336083524323205663115237430127589418944182003343056910155411564873384480134501845170640420951692914821220718265311617848754280516822353248605200681697514897201314786633530792371069927393107227022338636356805332287003664758014459306318445361303679813873832235939491435730144703342078961912189655140472645951143315255128003550689627705799477654048728353876674905760851859871160569890198874570768503292450433912249011496309191793899088827628329762342312270567886168231755350733688000150946725970253754233856985772342043674799268286956120349422352319404431626171838841710038313481974881910838414039937283525832488476152418982780232349209987380466750305678464545094667435080072584952349591351735522311660335827205768684554435324127896878954012549825381501246866145286017672391996507747612391615350881554728769470587166976647227203409182818005871044054252314972920840730536304652377344986760589457181403672837513955241573013112393073633673510584867218804806500247944244835570974434511570296601161271496690379083519281133895951287894893752833421266610908878278267044534796556837937808386340997625165536267690257781574349697470795132514983736205124374544160352344575683096038441694042102103814358624886226319674672846812702176833342796666753581630420391713094195871795422048236458516662488475666877002108775422286363341740116499693847721187772963670981310702513132523660657853061648204749669949298827223110917625419304512998644780324406830341584538368571505828986096591339887057152881717568900282530765404738057810451359233016028089969561684498882608966595851334096895036881784920244460803819197948134552284954310505386231228714592958221202594483721104242808132500415643254911370789129914506880243529649707418631251070266246285607263343488888609340520228539508737442072807056838137869670815448163592331965812118741241522949556121952167700958461743970916986945603689345205266222356581359588009801700198280422106332588666034150360445495795222911418740168176409827890838584811715288601145009885664905050049604267894402651719976351352635456494339700505139566748161855226531896625336632362225608456432465276775063481316869119274745498094131763383731422792447336998859400825120314266087044279452374348297769590214907017495648082163271777411823251425235822176349414627528547833640514544099081582194197479257935683564511826727099807782003524857872810469351760662586397776149293790949066009412500995985267463676235554329290408297974808511853095390351461992674857567086451570349637410116949903328963709542335443311645648450050851961285247714774694326074867500987786595748054403879890499271647575413059563107029303804318938169716428562675783648129212552208238485831361398293606592431540639599352750980965783835171279597539784484063294145429147953217832786801566695041244715034639945552337859756138346017041976928905061609623912207965987788680353983062073970465712469195539859455084691907197143769009991429342367211392398418055428965783147095620281358613596158428006332704131684078331453766421832665291304387429706662355322213978645699316502069213875730772742640779130447712680624882576694478348375948370541940957881015206393183128544405707579950511841606824038861589055632333098384382027416184800866905869725220849091756112236609349204404676716316221867786208495945967405130369537995243388429714979490187739915299102180846584331233248910296256309111217553466237028355472306181389615448059510937985350306088011428649532140188174188439196220312101659237401862726981801740136622228620729281814570243411773866533246501190138458938190635536154650226713898896978943151516118545191707843597814621989269808292571043843989647836330289085082809658218715179418361627183104936963960170006544570266305094226931651583048486193110006580538769778311646909597253726293106454363877018256694119635906604885414419139403902219474930759132023647405533684402482515526916668269442130665720127832023124333319950101098448152961884570964553287726840013090802879894366597834649792333775225781362048889996215196414674014395372086136524663873566161137689254599163569319309611538975760992763133048809530056707253322501547309690111049519309008326653922677692840680928533760373536166139169532525149298803989464164533906604002340683578962639433101496506027398919321081584296055598679534499622462921286704942781496904118863734641089867307282178202049224013364933356218827518742033850920578178592306761574114823025482034844894289761156632766425783481088968295258117018967371076925634499603832507256056916364323846794300890648981874947671403710822408580981974963211240319151876823420920175029800152793199154467303079906229707419706853173045058701870192256294522195937189086736677204838589521155055852009596961123707249256708724954529776921052573086725461102460529161903906489602412946892535242230232537207289445255486221400298259363299044731379887151107209207301723634563804369429653121780563274614171722681278910942110923531020079360988362348415698023315626173087130151302821617507209936769043809824818973493925171016172066293290725808733310961100218712084487648023027939360666012061047774755554378709174297954041433855191814693611818648145240805145170343247349170673914708409730894601137604362705183917434478743350087552846741215357519353115398477208120714136610808697982019898057383997777920860779465281621207658741862201463287343096820684621450428703853207609586348161936658797911331073298983739355153770449290385733567958760434203534115615468555019225540252578647029039097010076814738206995058014215945721821731808637301842653518232392816285376810452663491482843574626076754671830246056416758627706548583831185038961376008093227200535699397448467882847258434326663808751651191508396132589319165440125685667516554211016031161811560530242798954202145028677690513884835911268511138191324743768220257008248744133943268676179827811884988709580043310354036591077853606841998939603462784727472926538260557095557263261634545746162028857452158500975509691021788768108688544335002492460447849030012797520517538130561759430767633920885600278727755541625982429979711129104986041692796551674916823669013535806478317724825354651969804426393528236312993340852027981201348421801287525570695571610614834354048816045012758586089075718867124170885801389500009488158494293628855846776248889596052673919250654811869610847498354572704960264336481588559706334455880262341898393438454276905101747823691086485673313501818562896452699307815078193564981124295713279118698767063364950718900642752824481909926640527874553861867933214240791362517924217358997312144129172245091507114606242489129651625610317774829320104871596419491803658230351561917641259432821141523652267527079539405935667456243640462416664805381194640947013745360854189949103392979492193884384320670184458043349063613102804348349111882818719114593734175839139076183710030971200541162216420348425793047499099432100336435855563565402226342885713747713357654661124656352814065742864751932802499880312296686877212214101147811479995635340923948112106299950222808645661283542430675692672503487241275170201126660281146618611395783403184141045215161172999771173303903736634787582238396352185039466969741793332502405253783431314633612694119461343310643353065860907165627942560807837952333181466667473066397356859345573350535169060020221661483796532792256108072768439001644071275235820670923218128696957182316735505550842830486561623113926913847298156476236247420664469520361064372702145445589027908734603345833246182716369723124481081446589364356998896692855161777566902273756505559203859531556229365006523149092773577445107661897686539240839642013169989170096950784860745296423634529284860313326746483160762523568104454859891474885651655519847546374126121540729593713335536649517648035006143934121694526447309149110632593777359678540582867564623152630750042332656564698027987441660987845826969538065958613900341191661518899718292939645268320893701551746929712042443995941382579461959061435756164626150497514494681238976862308297241823992429101796510095324708581945948818115798132854234196899760337091799358709343146986464295591834005707112725188001238901520430386593949514712501443102856803387778529515269744742052458479050357612119563542884044859943714626455547973547898795886558222236162107994568969609408915202757234664709314339420607320698354205669702640962958818931924634488908529524828629057386426571037220963320225147208232841289447003698162064762697039424272163081819123660623778135837769357793963715773236121047648227085072464885425641923608498594491927100571607466258823805964141396312575640990606943362613303053119306007789426772026657488102516558260578963152136220196550858045718341934098171741236888836178379927487685162669661164112404689356832382077982653440758418031801764400128758415684402639605777708226147605958851976611163137452089234237358314258053481673886850609060055423609121337181619476850737931058414271844595337501558512462446186595508908690992405025841168951274632963559264982585752366625451038786201164520830256167011511392616849656400917202503462090588685751193369546391559236921762266277066811421198802181660138475413032234486849778197926513113457647661195566981286755374895348112505311269174484163995503630369724420982775902185228000984385485723223568678491357365160867318700606112129071973178017361272158514339373408860679333432172081137405532561422879285652576651993278027102418313053328557329645454152749380954917782633001780889559598298831775153261640496331759695823278837660137037330986271540427958101845315435832167570579159181599252701480591119046659047411119453716818653677571561124512964977639536106915102057182760403607457130862496384712884398043180773199798458124643470851717039604801528264332840216919184833964477545690687306150557694826032887676165247097971066193544548891984987007197175528491847552277023895411577716681210414923702337363165622367333511229121354064867470446033179076456265495158324783593821378040336513726251524960826301311406882466274686548049963464181409600448304160942917602692477121018181242870829047796149351417602365801497284898667437087581773993448661065264121581527832925010763788633403969424106022491450671333950519719079728488529428186566853762510139804734428588555557186054975132026514019482238706446870911291955413442210632081393256142830250619811932590884330634512497199824119808877571220037337735991229738184342930193772020754017231973630148999391836111103409896753924821934799584781713022163609264217176157393944112917269014656601712219047351254748610642102947525127334454907905585335461844789785962604639839729725082595286973400471572396911150052943650825661109374224565263948641078131142997801681213736595389503437216331908443287449014181267374528327380966865358427729454266044795639399534523720085828579571727556676883821080169551984510580035852840642488958747773754861099007630886816092510473942863983544744571785168102193803778033259006975327682637646228648139599357494240956820347842201291000444738368148303112566136632168266717807036913571941369080452721179133712317035849161809589960563145820836018981251694786955411574828027600297639518087037804490066675102603165723128348283159575998514969919186122108296251708657737033587721964396887377614820149664171874729568035034278028733089774658883836993787267097062779340082132156158841966355330079029109397450930633120288954179437162771166912080072369654036564447447527733201683167405560740873902918486425828623870425814329987866219708957288539703691721858025934316538458363070142566121838293356487569899215733379180000010956917943850340153478683476751041702777259831409519326232461585181977941056551990018756621259991178465198041328451925238062827014073125239431575196723454962791600325202365815366503206535480798109234773530811413745406889476354894457564016155853139926977161292776748423187860240986128772961775538194406359482501048320302868244936422049376468979134057680418981204679246330441122308911242060328710591933081244256166690384046566807302899448793458629832115037610846701794643711768794847654538428464235627325076569901616416221158717791649915828160199813691386016127483051325511634110680286134403676704115218514857552938973063049496986232911184387405897297717684715111500080932416181305472328580665154637152100306583196133748461707038170499813584566996834941316207475827406472241578687259212041278128737158280162991528740730880658605198531783154067229601754857941903913626080532749477097907171618890387500798955655035509397384421372376901037040689989804124824307960599126055541956000876453464127978364238829371631533488667830038141778658071403868541246710592050311998484360281214776947296489757512097586405082700641454641558006975516355940934063519463285581739666070391065927838055079833200351169744013987502600145778914281336362166075892047484920472824244089920041511428160381618876621017777432405228440542335158235267399802469714030951286290551385632297672462853304487081598359925023473174517006407177873799896621087045247565557688193297822615609812508084108887788980665174121262033495354724566220314723550278897027647495847970738817331643345895969792332095276792398902422393355948070393322097433943304048348624378041938571906535548126989327474474747555611237533425297533869093736593666462923245945358744728380494619745093101171780717317904833353543122797341320648787864060297348108895055043312487048501297973280807634237299591466940544450761564910192231136227975106790082054966301911186536396456250903489712485393647006833396208435630261362159778992443369531387414189984629257486815948941616149252920593161295144019871234075040257052590990451035376929439080356086294233700352460818300920175491770100184724746281778538947315363508126501666150444244561236859931438926446720953440318798418892662001747373933791301699479908021007849591357955867040398332454692984293569368105543225313644270826286082626103770242437375446472379837962733182764848725399161386803810246189005198646445395916189971446031372649839707650534457120108013383965618670828896346560230647593833714535064849580683095697116873433108456395226035129024177316367175121580214994745279498910487507595883749252168716791150726043737092404466589136372609870075042741918762893629062665039490781810317629670864280487136913306273577889071745371435932968268194665478300072081474716119367339587421369625010590643454102384837287477638354329236574668435906473718456880590972524178165144531145521935758140376113690698899326521004578988556041313872101057421884364059239056166646996644883661411907924922696798565041738809197164566755936310651589171620847699116253589582734323650831919328375342698012500216848027231947206816571936034385009341820906191023232708195303302384862410187737406211323778877460524261029640302877641955357713349671073315308185654275074463542408611800883992917030345886177175716042520632434089876283742000296897705159848875341048425387470176899626553677379050787180307579928083325092689814222274065440970867888600303092051464182947058352191347009593603889346913273681704951847154549872051291287344430269933746234966847388107575548011643016550049726379719895397224676995751667817646468675627484018513811333614356189494391110109384801592083954116708328691043999447572778766862746267572489575895690185412795941978650812300149961699630366006921964102143179385514242812167246402045125453645781548161735552367334255397418036597397002256004527123855100903384603916663171216437274334773027533428616544896240393111863681372901835778269623544904743912232344110875937623078032191744778024316070597275730512560607752123353391990573235353955617544486463111855589995842070722648268366783665830935827315870824625871889014734521776383550829390267692770523658559306699011131257518093172390555893628502678724494790700306700197487334193555060995801712704989956759154634666187806050673264638236767229515725750756834017771504804964506950481246245632965044727744248095753391842340625175407537728566151554752905039093689578703413680729388362193149089270109412212493881092694396502009392684196104161495771845892468832853282920325352004398271508173040472262430208937329115392841962703143634747467395125463336725854534960202157442793606561056965596002321861744702379982336174576654548966696439123352943278761645659671889688983981539209275495115782257262434959516252060195612774213728521326831365851789549794628899074582039808110454143687734417831917332090137195190717114591524949426124883778965304336843590552471991055101177738303949677135316866561027554408688513192315865695089862542897337478416698394807834658429576608085023820950114924238849685208330871669627777191278190544687108195222489182259701381170452691885050659871654081936090717580263048996037399706244018248143604741223645505955616889085525519952290718836150896178995886187613613762490556968841760902335290315958087335330915737232545407598027384193836357896978816356743339265010005321757654934020860353287282774131887642469573966834175152646727310584475868557871628446713136904405449606980202348085898250396507681663604783540704591151492725460794824077108695392433568156776971830600715467752588314903440736097374250741755170637687445447730745016872317978731076707461911300697477252832161305065005786452303949073662180520737775667312702739689574601140877588142961108953667942530967626682119118143337662993062533730047997457856209008628053402396684266220480235476742490213858132259833870221902259123357148038179891476065012327706191202768541690980238194292611217410552794095765818412466930062639087302226182041880165753783011984280873915572286812856125041465665431407418651499034071441900890192711707700797564195883460689222083649412019589761780558115502076740141524879199365635241146271096843624240698782719268153664654328897309898554152323622491016627326265453645754931099560895718319439645213586742247103798763799503483671665368812386884738543965126219294995449385173994038819381112511861868762929414893109083146774583669885002720239496106843493290026850945059574230436666218997728509196621109276513636394988611121964009488168970613892518842574395276762933712244436160963587315548410231295804393288907596885941141304658796605278008859987497378176594147769465475432273677556275232906160881039063515630425217742878433634541437632006677295800158737339760741380028533165236695009060876173506380592179059048667998007526415048487550904029494098893718786830512282087838790090124350441293583427489850351502475983939730895753939769359439747837044795966721143088303851703381004637683095844646724914836629381303627015463124768437162102758692624312074108788175726426728951937686264679015077084852733474983273499732215231720981742286673716607784950906310940143489289003911609352478643346470222165452046200347205504826567687825749488978968398503577285621973822446131068051649541032458645660738546120853825799000298047837160088495107247735452855659622709664558426671957857776814411580294575868878920043346045666995578883226248861042257062201148645809927772215015289720521353541142697336163788264651056165926043282037832721464973465750419703919861354500288696263211661149097870041689744442582986043621760807110651555092571770406782024706918029963550204320112750989124259338433742627769005529849148751165691682469867001476409532724537994695973350975279604609836763350640190094104185847115076014200368211648037142044509339949405865655866388822333972625822560508108108822693011925208434479658216697422712843948087839189435193941689587655340670437720363313512409334056084650244221049635592278811579499446650759799021335450865772024876727127180747584350453820529929079092369839301567243358339562760830936848424365057190348964815302000376396336064146132908676735174038659202239873221400487855684093758435008492823180777211961676470939592741773796371939760591781145583045382271003539844625860366311693548035351464258874057929558670456573163958685763888146928767619399532599162101877981161748696977612804997645786611078340744396145937992806360533811814076723991258044591277429718585302585678152681658317759012361022974905289308388859707576861729599365431331490716208577309852252773096616008107081801442610298720055075026474674651369408518409539314498162900910071704020673598302941725624489840304910604832865094099236271074946052142684784471192355831318542342181414619610776634467153432820045093455923853783625374613368706249039548699381986517222976003503167026472763434360547000035424762417322269336143694573933649149107231995941110032276409771135917767699488521119058675524282931508510264747189541262883867683308956194896764218186818502087482040964750321119039641449603278425359064984658597988996711468978285295841180925799788507900095141162303913398711632950988354106880417340379316697726510174561237715844036007640651186869769584523867716391423831688013687224881327577806142462747762661538579131033962672490960409310932902601326960190791908914140570830792882387685342418052438591373335208394841798665202004448960473426010602022480282962745783312061787958179219536533475827877220004362230035303361101694191946670406633930169365367766272030008186555195743959349718673576622384599879827138081234873583407790020511250600761378585124650796939787625618467968941798394987816009485010823974828091591717898184842235652193780370242381564286993497722629060221149437140859129008853406884963939668216738447242221983950922759282922857383257495205790624140596120930081102691346339822884507666614650607725776373192338187611014089050973216217484218840887177737125489014856370453799022232833947658433903257915956226576422230969801140275456604788857778538438823109944706697289696335237496176442867929714752684261108547268279886350203766390637513615496463785579576617529311726094824318432457554443210500117850643339263031582886835169873484636643690836827399590904185308229237746907018941112643190413746601307702170583989077090979130364899884780060168515086393191615298335818550628611867547253533220361521765578764205762324100562058652309486165056414747916779328488176704324420818034342360381782282991405229718105090271927833271074434874749635036684740891504809340545406851984351296977743968721380428779649958660798199172802442377716594036196267888056244968942420072724367421073342596254810701177262768075267093930635511919412204991125436174053811063894267428285973414913801893998735188619759951197294855774181671753311195704638718516824371029155356858974859143346425342933254412127644094705536933664710577964601161549785565081251235191400697534352771560628352999817561007317548139374019728224418524340004413579139551074185063523545274264080464090074410352558688107742368318409941333173757739854542067189010828533430345612903330748692577394168960651096142701793882920471120432347219568376663696667353104008045362843598473861403232807473774185464371983927210234422160788839869331743875107318403648253154255156893443632065768747985608617268846337352993694330322063262556411847679558402111008184337244069434376629482382774112296566632237102561718278618753409144628164525169400733883870732171668630978799228131459360501516675388729687818392444492990105574359566311824229837095379990466403956941716161903368277461501393694370530828380974661756989156710415451093748968145419503632482349714985983944272293665641199841281033213218801893814027527677963454385731940581426836864811592821642898223383441583521351832636706796121497081483789062158394120871515696707668158006931347605367948945761107417852514481768182915915237658738928482863506911901804736955335336180351206986762586113702900342923147488673006567247443349152862217445523583652621781144922961427742168950368913093727450655732081186060671448685893410927040211439613834102937488025362329300576821216697254836498586246368003767355249480380463277357679839792229189499585208357358543812677727637843038598911948396596121634191456835254399194254262412412237342593592966395954703716618958255296220732823431105987186343346902345580062486785406469414409810278282810505417584522988913916544302121471718668462808181953736357733521383468774692226678482216635887789931775819812637822655073545965773506754503117469255081916363863134470542137289830224596522000123386736461219283456693803938251574654736812745228748340851789746506280326195508681887175462983953333157950156883694235654881484284584768027053637014083431294622901713910977749486163419224311006800302778371572662471707737728087282847874049593687467388771607943190312812913585250776041373249072840655348898257530646634159986884869209549097617375558989022140188314126495221594359715834055516877457866692136647094663806338663318360720477700862537583338616412657688682891457860011992761019761766707816042286488957703272613491802452286940641926420621470130462850934096725917052535396867719313222407440671559419509817499795404759527082570316008248769902648001062294344084467762362698298266644171950946464690806660231210301597997679489291614119388566274558664484549841317423798566727680375227166118879606548296288930697766166891382111151705907188917242299995629784907839607859905716365412238861249966654314634802099644915301341967335105297415757373635424558931753412599886619054092571086383471291088776839597858586646553892483251924623746980516153998528179010013645512215998074090138121613239433313395125970250426761252969534722066591352751579579730403554004245465339117266416801390442239212108345474964582544301020507093373953293446075864087686825314974823490302417576430043253327287915222799824467478453217544985214199924585082022494643640752887805912103576463879359444632421868262108541063421621165376721620060952258454912210843560318055541990118462419743824344219931455573285915017167677116514045676769546306315595724145387443026415996849529272484459741772679939503429819355143329066685182605999540044711696837943940670193505264030287834032771522014555480740000297434522281357749267644748403988320887933485293027339558447600674953612171454730109400917105532815824654817169842870308623551000672991763149804626180687419823013532242785803805252739897864363194469085353224558449649947031016511807938150080821663004535463495827433690809768254565133208235792474328590422407915085871938091220082215347727473868216313625232060885390829814557182013144643887092511843848656716342016283777828860942473129142811392711276773523251517857507326790422273221211300758464912395702139968800221264404505064295205036406835822430987961406412988401066767845664173573022955104801508976866821962447402210929880932086000584949332795630326268462954335022363855376286568066685475436759958052075998383166318350333151379706018740760905899028038537195337217936874737611130266117035173192931605278177585205800147682116297388752556706915709444268076891658685908874040959483236703578068682348250744862163446230354431707909892455184572531912901231889762310093074301427563330164444493181837319644751209473511604273438079173441175971404650863653706276074552721516409463465758048827615949909405219386411638202059559618168631904558841081466992388621295231861825720309994037514609341277111056639147992694305024177154983790127779651282665175380454605243551436403800259736847295602311803252179150326035503914060030213108417757543127312920128951269573438164378747362301696675936356935165689707574775256857598462409046510080151749484420508234476301139733854551579963059204634515114642086961332830525663926800428029374755506397223235853987177850689321617063744019109018663149722737196499823791912274818717212514388345784326541118588631935402307050046727491392889724963830770728127401003884713024141663665775372123202823267868664806064026808999473837212128130472324019631985606013809330613353549223168747023902425192194645380562733613611429448203869205322443100191581778219398431527689414407431470328127726523331791232686492437399621325402733871828290768541637605851547665845446842446468175278597325224002441613979838526487869900124084044800199930430546626726132590006761698064621511809591900300898742275817267859392540475898810065287770464954003375420313964534420199863474428223834529758238088194129432412935852363904464483941479218043274916656914161121957062183729635814229199531695282695319361450666948196120958620970479498365613029834321009104907365252442800034156620732959412809605725665074740366544371866570635146470077569914102072676929565355399994223475962278454401586087455908587093995680776501943735951777680788885927545899707994730315507881568106961709861274144976773289113561308586869144114664220697841413275885858206952979571865066877725585924888369081929830039402134172973959531209737278394381310298662987592848716238526324271972938167283635026787150997342790245020298168345271782850739062166076514701009075703377358621111178003143196256853150893515067729472613201863137683663089563028531588835455831393065926288044905917137802777362446247480151038676899205824183821049651209194063512203585310950710860419093567674978364541103006373564425549645520591086474686740592216330323614320728046565690902974976354472536667993728473042009680809689859472053598182862194879137873835249547563132150204220488289631217612281830285955295138295542369439971356614503052703463788445542972997122217262359518296508805925426707412147020308394850679146547135585100195787867698964100523766032078103687269662255392437851780709892919444906191187514440111961480614384342761484027565764087463926219017121385138713450698125270684748696139955628549397368239469533920417889376537225592696717954884108164613027335600240780496779097077391591909234764816753105265450264012866036294154903756121153248333645294237598557820586897440516648075208262703960840736672203895528512563712076996394383303281006331162357277913505214279126008516958945628650309565743894189622855440936519159536562962446223273863263426424039957504850634501170974913829686273769623117204086295555296590752678100704455223235949500789331727417609619017240685280620711373468834420014766157291679030388808209027807620503751098453903741483833452637214306043041435448541644181321620231590941291640371367948912529864055817971676933655415361987437511483170885428625429383459628842606951242375656577245980726188175975656999987379374359038460765574465627375382377279395325890084141039532251594559631866854932826587311742887032038438540441539264544186905649531497226362798128633048597814156656447092251238306362680570560852866227176013484176717858774092595534650603481972486991189545943960079719793407479372748272630284183355842244053812079268342245104364708770524417405957773751860053312925903611305852224460245033052385835831224495563717727751638146842537366185622411199277482772237689256372509424733557117642329841637351184853038984797976325619622617270983432558271769930660332893769439326554270268790264976237165867908424380194520458970449972096975633301359627414159822466956106548895818589100736821643453001936685068482356095601037353706227611768315955383666733161471505833158275836487116695931577108930694511793096309064454414548673677245160443178703213512741834344609919837384128625030310986130952333618723972600831834793183588475602359907123570066340043699686395420077796609936137915071666646023545625845226211513144574481308471129488535646700735387968684365978501335392527850665938720811069944400908540334858575595575795730492012429801221416659688626437590008510196591891437558771324133079481028672106685557217384741698280253522629273670573157721889115744808732459333247195852682442657415342852436795651792965147633591053580280261682831885709752198973955525958532731936996592900897758532481891869792039600507512776062906644659008079842072234636461867588550365464365359932598368785608179475838033101410183350859458970538376709028675020080237511980295675159977759311204363940094982303263921182836080481627855202595602247945050520788550992872914634577964853189095475984155263850964443084209055565001205378686013215644662368879809268383063379239490638975472862033630652484198182710398130899916879690449018009241117771547688706716957487333722344600664777452031854056221264642178830904673796647892948269946121874254915148312485146131240080773729991099320065421009716621084103700407201300752929869912399531102321928108531979411818217407104214010638118776556964490640273207212254317558313225128404877660586882569859345821538036693577848575829406631533824535270701901432791634442367566260088926606844951829348615185873516661154427988788305962762936304239194221546628211510512520030224935883529473644729355633441909594418859703984503190060754929904861105495534055788021029133776509203198398930751706967108665613254855427502410443666467678128951988088999270606050463482110533364797080648970004335483160490873677367334663669747290548791961737788435922951801622055923470737951593365086727038705719580398852645209102366767871677674363031009053504013602394978110700220954784620366369828680123317646273770752429475954420418894321237741837152673642084259600665032017805319668743083467697267689197418907233858779048753761887797424968195375784924101366517745720374035254776644514183138950598284276821518219891716810474911903605093414426677009532355678598836651957371540182407688070122182947577368068670789935810575966001009703955545455754471584052177744405743557560631537792735522652352869540473144404968649527903362303254329778249682914043044539065844389350871575165673595473042037705396458760487829834352312511253623060514817664209782748022938371732152678032657788200371976873436947777761059216419064241519811722560766332503251922813713216843765535356624783162555862239430304191576068417625561406377731690415463743646889277062326546415010532124344635697151932411589271083732368888763257508767160476949003618237615177314551775213786552592992083217279581586743209034346627647406623547558156374976461295910110326319574567826702151416483409311261166664243815945224255797056230137002256722094919156050627216980218863610131639661687253132268741273725409889227560285537050155808958709871725436425691580311175414023888487180471506034074819224682009621026987307626479491088003236413978522342888513008182273410651846713683235832236948398184432188133643160237843675424171749371892506899942071346342387800019630208771984045438372620547971374125117510563648584058227853467012165734690309029471760657421761977573701168157721205292970482221667009653312675356021518892776799357036956994736885483552844196883526981786703917881652839911376042155696643734893399193664626542530830998411746606203548484835720416541059723879812113203489390246934228181190928287730613078078959856774551389676640501071733212402079016852498074235217525473835706692100552183029828945928492634348650365718343421379496006712658011089203533746780613478122502620805366180299219615961653448458341024942859994361426748920812955769655801910553699830227363357060830353541895378832299748328660819128000977856497277298862228830138969505924784313307485239108097735183602996099156992418599920865889563691081065259436481410786431001220637362694402949435419619028183397796086846809310016901908591643258295256787237191677397352755833433713100690182548025451736389084060804028717073122883084217118420271848691929745335285397215137372855888448079448476760252977172145993453388731879450305374619137491110424615291799367027179385219338284671826498193509830850364731547727456738467232033256973501180353192354590259827178706473804162478967979544679210990192564589745434364379653150721648955973403947073672015480935723389555363602455684719410488735566881961251550858326641863068361232422950934040297495136593960989049180367925624333534922641970933201169659954605385099148243541854382662632988352710385736772975549813468263088539681602232909402563500931238966098307320213664569533750803732425859757886859228751648930492209041657929490333915443695713789800025399597437066640212088599193728534700327197871279765032357866121546735837860101940118647028130358685888535267568698133051208526827429145628049481280213122602397633515445551788456096147295227828292574445087099255099562789622179305784644536894624636942665966727663002472191126313194324178564343036175983239875933509371037635427647837951118558352022804027862544117821945076072056610201205550822584690422163541349913318539723842697540833078980378581617851349903247580939484751213453839347404979009004005710124871557464231617754079182425673088986492729390826935864059667078176755305183504855575575928751357538413443100048025132754024962389199345279015052519517882350290844548369435571770782227466154883926382404711403968912807283791319846749983688489652648253635820144780858026292541172059713543800522508512610650247968534456144593880437905498904628051293446022656688641651761565972082025694728882329351975515275880544666641205078889468110932805738301205876097525550191584855177104580547018876069713795477966936641507182787196122698681657254230416751200274593332142445085629653144234270225768085466635647989302158686104364800978597346442620415114854332967765088471786306745802038352654777673388590138733016479015093894047596981430618492243832614502243366734953816699298549433390103950813925934354745645630438924031430904131046345630021775184983338681474201328572900987611793610360271217136133681539005175914979508206204003380676802719741213336764222038038520975247484360287504707490484276756874616267068735326022403975064746105892184127106817072276190717198681828408741202242196055498038222698369050411464337146882456624755691366623122174916691602631080503423282338367586315628493705604919780697474671969838629255503615009350376107257236400145171847414153286214992572708122145666264748930807503776917590628044123486153327081732356315290134296388627517135648855259205498721502125526408109334628532960725177760729537169136997425063850103796875110111341103328126320290493681021784993090730725042396852235079420058705272088956977889265978022171536790902832397299855575945651040411706498407403233331837647239102184856780445921263927723159902113500018306655221200845886030764852501586505498668565273238668756529944084847435184236733748402439911972080603945094511667457804006662734788413101642697621791400378293954830199945803676926024227666345193461950988022542587208999568913486386849570002914432333243830608985146166584780855444418307460278243146798592261744255059500471485625227433862536663131663386497945015456480369554727576701984417794395700254425935542152181652235528535620511598960774123724576002291781220081140370243661977532758257713153905463630844704690325046493228611858447589978686012864145832027633538740375572255838259884204993418938439625777911728607763325836690232927397514044699400597905488854485582792663937523254348907010780084184594406332567020289560955032895873985068627672360179029830221305596457218757656212368694817631996786904374146993356790132570666074593237003265411890408980953193976170832231050663655011486551983035872711785298187799109007972616591492243145838806682795713409991833271874970122155318123283557962470934126312188925562992505848012781860492607477707997561777875409195955620649861561919962285849499964958269465427073400764330978706969672720560920318166505191213322690894393988050030738039508722459224873891417837868861795051625306275259586069508961961273510382453122340338412944081346133024802615181516810126207263004699604772357679527257030864695652660868028224840757203165278389327558821592063427284045603967028229487702773034045134609846899060398427164024869576120542469450185781162250423461000512906242840179136755632271402479791543516576783426763439163208676571529319248918944260218030549342355317303278949000701981657603835992277191996815944765414034522293021524532842392588439542041751503025421188176236528275717803970835359015303299261591299336235269427784238222532446941302610534883825993888084971983936751880711044816353161277988600695167222260318854715593893841000776207253730635382827147043685861872714113338785513862737887575266685582083554237808132608819263244404542309825058984809405037989059738441750001185583557930711214007599272850502484508383579512071393635165801767566717033913433078170453832519442539160211521278769429218165071076054681125147970333337987124932082871045746087490389635344089397667871263876448291569044464120673185411898641659362859092840608873315562989110354938890195892598501950869405758958422906907674717786229113021475851223124924883585366321683574208429208954557920150577642506964689167085075847805580113082326279367825879542066363389059685801801911280769231567712738088320309306199471323597048088209220888484500013116452139259139926427933438952153279078352659730490296943176564733768381083403553645851703946419014738948391983905587062967387498050191122088629401204116201855199748704391724566334427848636112058523714475466525694575784563774933918803428546209508082872095342715665880570557288197920667031562641954907115776963959308371516266497309207491399816026001883318685585951953477859462592569194848829034889511873400386837951087505456985626042787763329220689195246446523553947943802147644665462835420965375055345972295952262522681822024701669307877600806326883287705470363451513534453454425226367811406972940001523467597197978474436396545009373553560273383866263612813838697243914744584119645710977296178953385807093073811540022195678709607182097180571757652247290742884325292436953399085444084938602406556734327439331103878116189965162989647753136802203895882646916251502877052050512106643989648543918880819778908566962940053420943086588426359986066710252779551583663156877224338538800437786193428099759794628944672711370172480499239653837073744007538484642788450656561803067370883553584960761986547797491772619826420451303874512467330870468871357528875619576285050981299342400252460290369556036752063672320480048845426928497782402517504801459674081534920390314817286236922535115432879471663745650755198386907844537433110016525824597296726006493662487366321677684346575130916484629739642730179144425589950723065857213186019605552277230448925923649109614130953456816463304970789353777866577738039926876948977750249796926085617129327610807175568734988112093199310244140666175634850224493070065382405747647306363054353528857926186456153474324566116057799457188218819212417707271294948767876393052760818172487691679678543659800503668351623122812271219253639398175040371377285841010003240847451013542963828868225675123953155831175713092322914818449202099573291769087309002571531645466792350943979345629648820120241473651869007700676133189229118507122617620144050630078854521408206996408290542038495666946868650265754668236127113195422568100026842261587169901157575504134980474750186164794230827643195621353920274041580220198037293857746788214812565574283170352168706564603240481498811336779302569919191442874791966874520685555706143591855872987303882341932046705214451167146779929831777300168507496681343680163006992727707654349648333355139347910026246285971804737899736213778323669362669916683010486265299965314982723484750285540272949305979510987538314364899782752616061666676569301907817603919471613507577767432560000476842428269158815641985301140782603349125680839929113578527012533160007680209928761009121555454621095470902597965890041878835317107670011312510216959759500963010633635641007294605269536648975925993317695055420860368683901234805888720879200970803457688880371393939087405545237828865920550483561264698194131061964695729221604856758581165194479335585952523482840972377259001875747381465891570151483398143390492958067667925036357566300458517958989768464146158181883120833336855883280038548074023469601081505156056614397462322715377787470987648636864627678559539827559995129422542314468503957604171393336489305659426434298068573406750116848030308058411807869466608346611568668717072310856958590010315547041387167758983663586203360838611258938013500944447233781217130253179433259402986686485197026041719115595414752321954589295402351171061189185596573471057956492169120164913521050008247919068251003797282419794793653179606567554385993148000713774800512835242951665726470253161544416670443796683106251837833744312537151102111293400922072120729462874027390630037789537500403487186198048351624363534980150873902943259093130750204541194023923726690784223617556133676727548401840531773384478852725281312375153919255762432101978432098090108102843599502498770415959967910439357807605289708493896557183471237568548267211920020665623494689762963034954033804054251538728792897279215108268090969221991830313204821072310997370996792038022765811097232404166355981174318283378112788817671960539500919781356398206523512422191118633675852256765976648112383766565817105330483608913862263555198766441400032920179763380641648783117227152828665589039842016756786992490458654454257052671483176914687199747556209279512028793811155691832486187925256857745357773666021635313169987483438935389004474975254353488433353272626948657386422866819133722689617023162348414359221386906310035094861156199345314162485097381719102179101160549833119857272267545245006268804861967438815101512146505670256012179300175015329109207613316276914222370408871501318857172975045522337555393325716528635407019483780622166890686821937997158410750297842801763793020032917313909359314268738686157152909718648973424479618570805428622535515705845446198975234278065899261386462913332266246374888492437781257191014771844803813858059125624276419258239768562410749266059548938287525099041305554026564323444024822666570758932656000965025576568072034837084972851211119664417884923713550378105992416186348315903327309804288281951497158163567224816755588523847331449485246580924146619980033334962350446474630911325053342304427969393825224359542259449194819869282250434767429328485293851229096672690098759867657927911092975033536904586521419880923582562561343845464754928647708065721999326040649279332987889854383567726098369207611292329180726400762771700321780134727506701838967539361319364419453857383336068948346044504446608911762743230140381273023361269140532973046197941842351850606971571101346488554307512390016703432035471573759437504426083839736540175351237966697630865126903642324480199559736145298405802332672448136556040578945974726004220304051791950749090313213231531706584321176014118205207306317114817110384436819733610946031157848193786568415896428638475883924696106054984370498822522623427483361116290931992064602379471663203420855329153988833781749350081551159589236999449728217969038103207165359421639415270405377363583906675297432904915839918235355716233822608598249325734183023542885508985807679674184293009093044222529662690213576843716225271138922659369051571002906423761763576796645965037893137132325102244255437759062025123266540092425657671460675663128541002411256403557087519177639481578857457360222246192656644102003321448948663735550921488838982116412453963801250456256617577535744531880220130672478526945304593147613210440470157577227499933190101306994080978174641219255907867269050194710678690240711416192228542447832548666052756372551576813084207045106180066766718708168902069943971333136318553259720056757377449160372375060963018233478576926489728469338697263187794640571314632535941309833006529645514469089957147267794597168364210743444339929003837106384251102424542397215109848848533605965347491590334103530072017348732048070895928307310845562133490819246617476536520455544481721145722482023107708857905950071799567372447241387564642269886050510103623036760623353930278895487884890676381881980452289479231062444574527851812173418601884403716792579100310766814521015216257358271806313151488385463536156980755486709084569576779981474675607484694788005361093076883905495692011121793324417536919697773212826045493674162518434520437410762780329770748717909858137783947831542337142121649941175362193274941414532976758642127213490945059950256785153016769982676473828435358417873317112687097113735474524523728322306687358948340095825145151525917319993368662488825306574485322281822044989533821419341030328216826586853241419725865147385069867194334902711967425235004090474693336764291438846237491070600029613303402777088956800722783942390369340811555411805892633986962218295786905264840476750856663725459340486137707801813431334190193680257640895600592415641206618311042901105219589670029643501467315107791295872441687280981944199411537742580678854475432957303539641944043842433492601515249234670121512272071425503463343847614742518103894962129031691418051136729915743906438633799324996769529861322346053293343105105282294256483297416113024186596747827558417835808047159953267029190659998842861313719290956196352799889201636525602532084177832845848648549693933997015179892435685444388654573372217633624457919882339353715694142400334359463906624534975304738706918118191345418282736820098330017471045800979868782985880208981314550635720300618457554806522953236273569185207545884281783785512657975888986572948386583507554709852429502360377225815942186316153872713916985633662874909917097999101132521854600758741940756534590101664729561527365692129536406039645423396137177785101487570947761409519625168864007776128340389393024852035173647315229190142268090976733153939837724820520921431025932359638703538240519815261012308800723536033007771161572397994491946797761814540482662941481352014683107353701812587231920188120593833633783225735603861499162106836329900600353797447950053522311051918033979569508096637582056571067830978243130686281766098282172665561141522334625464214681744377017826920136043454629814340633131849644474335027732848185751161119904983080051969552290374669678959563995861395628246452767286605086827326552139148987433622285473273470049034088982907524870888878202927280092502064033432964082008370501616283704572289366990994542453731845625628891481675091136502532309172203714844212736373368263976513730891585605512112258684574655413966191574501197722989063958901153257479499272666632530122190624745312471963376572101066059741294025766793274650386121460099147332353173280128733618590958115273765862080926559307214207498121411936077590066993017404214921592198189331305826463082419774616865980744377779019249747106264206440412248115862839061342420947421757939260376979101683909003912908870043956226099980695081221141451896547825314672295291246091894483926132827959328080772385406751141985812820356040815980384311232692803349683498097100483595389090280356251691867890389433585058198358698569620341975822931584945494260728412094601300442496000754672204335852973446213555614777868612081756002475416803207860647896505399327729485346890615046801841195984262139106173755757944214779809994972716027033867412384257505070192299664639626594947083151434836413980213300610650999626509037954637016057819336492449047460901412037596354872268446169092075453336318717384792733700012257384629571545122665927143122626950084072063007465631394124156445914625877063777953315595311437214655340432067707813506332363730221862756197395621187039622421325857855119599460119817016338309909769409886453727953717622963549905576871120053378852136409695204230125705783295232034548777136113605888670677246321095903779529271731882206751631985709832443606060025199326951606619653156771950946527175487705311536814302555019744435933873133087013745628026840225635780927300006385539977875382225907036839143149853264053361382836542553171937716912563510063946125390542020193448858264336682475178438363860443037340180304171100351983154033343450465779335881647659309149501411826107349336500164584517193424874983728067460228442158960448252965370824217218849615753424488155928760785721597371059943439330376668675653452837100014226697062202118790046232331742982197691784746756906521062448724704759598747505463176499008659259611748560341200131023783643035541319129579544978050503037610491008888034663441801387574142958998327616942983902912613323353343101021180371347286347402372784449078437782858753174679348194330572766621640259973704276638891283248856498608934305429573512325823953156146355025029511571155214881314169197095908625207966135678971810188104044635278086687044893559905128081802810642236927900692853917184306999488369788984209648079668244273759970149860374456295573155983395238243530615609104989797550497456848280335276454694695603219394711790477256243394477577127673433363588435252672760728341261548364866163613174463769955692986395188196932018792528998176502494147294653215554478427262732277397632771070823809041382355816645343738155838528702280028337446215215410297348746206292338559695718516812768883415419237544182618573794777111537144533515023258602180152157749926955830578980777623314014018605341067541079327297120784598837351346962243180672747860718888138726072352265986197765797929601364305568933760790255276564416993350489822272644233896468711803045659571638290935554055384650995318522242469813598057498240540304588888247479918732300651630548092671326417366302079145434076635394917995868996655746145637647007075529888649161721628446928057838132305268666706423458717086015863447829215778842450715727606368413352392184204888783017720200567478855333111482329722624030359078513611945867523716608966006890958534956528873158257983420149578531708567509352633440808392729376831828152601300975887584128221968918971212709871305775094233122380269867353279356911693009929263653775992325897636701864664394694123817188898191401127357993584684561711156020215075910391135984540261699183748235889442877967735397015748573733705352838168451284884873912037178979285507682777487288123670343801255108963308488662629723760568257003093929873344541658211911096888353143901918594057546438145136049546581620722724868007116339257159031499889957762548787597943417941609468562926317447660522058455650330400347440343298074938583211859745688937372711451016505559023038751280888905042000827371529515370805968492730001496500044817814591292014777764781421865194611545838302420737733791016029322013013656066579902575203915502551458295836332799080485691285827886559419233269522505857208115481088502449743265364640554565409104943374492841236284613894093945428139796923840608389159040517149882520607628063531213299292668708415535609357104881655602971311735383354455511792449677770981774578844535101664734685175937074524284021273816416630167270220643325211006981229711443098440851379960687725713855358623430695707368894474436191736194208389346548261281086628297515950992986985680577330092878033590131644891500638999245543969136744682034852450298962600407086261468361511800959259715074586838355488155690574425430830263127195030986873468547368096623130078836806155604588755666856264606293307616606200120409143742923687828484703779558977621602123158504935995297492193098767692135002853073731494093461681336161303626206804087584709708145885144708474331636431605544505494136940712641642972243774785095941995320035826736202225631956634812164958772229441332204475979340552770272213143402195823861828997363293627151913202875527403975565745566161443034224347381449787279002275544712515954140349365299175153591285182109933012062480868385070117877453066485308733771235378124338149279058066499406528759711789748758852548863178649919219445288723821421656481218479117180111680149657929161114294398215050229663911594382707616173488308710391174385566321541619846727135119987129486057589221401399867265687178736481191363738053126834750139718798104131701310851983572843691187693521020299677942698991052154807456766865690060482108411925688755263595906382099374604292663996510945161265302047020541704695834907584697009761138062520098746629803976420300009155865395918199555924948179601201556810761069894528015057896448466369803403491791363520345888251779546215660101771897864859409419133340069037207305934880428485563338809617519843112227191195146546112877740910551896354464030129832656545907650152934648199689576108822727778650053616070605526069375194896384035073521768837705896008463287861618938209004424000169496851881623691748531307714150180996661647403141573418463239751309725935196974558627478945058459224972117154961673236362063355989428570455353826101703816214590375319487160599113392958088803034507155751360026510044661767722716848964492121105281481990016718061506298126832655701361881381593366519507804800761178808506277088418594829089763818325468089339731627578292174883277594616639521827287217824394127310088313711043745955397161161768630304497993883094859413952558044062362261665307034931239169090371580027824140946522927820337390945671590924776784622244125772382992163517250496321103594078704474201331863271060727792121219194663198518261497362397645390457837657190324046583614934484981831836655025431022123367729889683154404947182712035473075409098702527447598984966235239432098858722437706330898610730606116633755039137335470550226620345076355805816839083810746803284154378688621155077150780498213709865369201166568225308977465464297187060360171706049497233656838314803832595481692696456943590693148668678984819617266166775675709248029125046588328315326416634162415388987938151717484225954165279477967294383128942144063593896084466122305949756464296963087337476313086909324459246001576615349793172681806202615089311888109629060456511437677372521742380051715974905105162725907120804551681726121294313380303207532797588298013355664012862218505382163147748092719974326600771819908855251436320282605687338055518213980939262305090219147170797911683199822775233694677776401928905890371271228617083703393562715123849834081479994805703626806042478793929240408763380379143110913903448384553858601495899428551688581005570912052302139598440769192743224137890809387705606973141436563132396562332629578500588582469456915854229929066592920911648422632997646255434535397617938391162527364108043717928463261187864105656232447370583293341885065021782955591875403338812263152412193032864413821313444852012308868341651140586041097658379536196296578373687277963351802033549060950142072542244822928505628810609025340213491903346239152262445146897303105988302718084365722655146008840992532297417606897881286211894758615051249252640208622625752545172905886124849226614935747990662435920978993493061829702338860775636781807038643726215373073369483696610086495334286628862011663125492038836448225570671654439036288621705265405082120131020154679486612662239428042850524253276911754655299518651088028307255615230665050042518031728566605768533434632781704264744498467992290208034278044792234406381061800407645222212066516213146680232236260088536537262453163473510723982374093290995425345740857370726351079477505438842291293141565672082400699446802769074948297568446830888395910388621939137714703993925646325461772290959585127384887796372266024304470798264533287629143354399653888651575311690334971482594576104443382021319511257002684715379974728266736214436947978551530460263218996411325473673686752915253377297132422659133286223945785532726710384579202898162417547751881430525550484106418641973007147134895868488563681442113298424770562892036395523413345027411618397528368499700060220756691857130771721323797026667864450224429348910488680020461909714725731089923665588570862565353043351693980623105701385930344030274312349810134543835924514697068865411136153597706142261320220822250201136115514430550992643108587098556011390895088316737285092166005765015224343539510603810790110036620746141397451875680106052153367915330113167844252472983077366134612059019116129658969998087106389914200572114388774641190298455309154960139306582853991795013378684781949418869692082423822764300905986821732330445530075377001991177674748310609576576756937123703276252296431029950227643357288376379670428723295009738726917215886860534469899924209343208286815549534989522437672509494675634705376496534652723987238001099467836432925408029058407401127271633259333782959175078779742971397885607773058126582670576592893927889524177532573336808432167779653928671717230835936789800014095928882737746377293362012161260605802146553117555028349252308084795793869851337999639856894877360446311081993519101302814902492086284556569600237814002739954210180784326147093377672391444440950295961148671108417996583591785562882101298439297024342515833901819199860264626004682058435245678113153919127666987246947242915838581324389959950176809590628557586712192172522217960371696996783129674613220987713155726130546674372481339577033013642328337593454685807962897510790219713891822636956628791907286434148251270526918479179363011140584425291734304123812735872825785930690916444482651601819432461990002521790219120416596808463436499893720395912726795373825683769444712996459042749719310220995422643720885829429907576505239711848718761019108026559445736186578554244794621197136823855187183548975734261548516049791235439778266446539922013412526142321855644928787077217398659609677524244195057757744377039273772238027705401844177295187002879580855203702846593904793124177568596112425089950794536569768074234657844738949738721689204555628098758848927770355844444641084914376357630082293392028630963633483010672836219670736509314321965907400303016770988097500421328631976856481544876174961243137435376111827937248850116535378825640183257224866793515010457067084941623842152309933245525042124601668807275418464382696481294893146522294951106462667920104627301403098628999940647875709147333695558369948173079771755582862513683893134590984627606036085890794509380343722445227526325343130640530506130926116425842690645151373285097472945833078271418364646938899702611723693692165106167313328868757883793682223939467721127020528089026178412983072281969372517841132591446128252668377693247225919704980369428515520480088907422979569156011342599396911738249021927467950705366009092373234856940073338635225353534946301402837237083618251143820337058293137625059788282265731736423344047487895425404938237958024411756572295333744534874982169553281350499148580855575819329657043448557865921993546314663942189136278058285082135066300402311803747074117076336857752780926144314784469531883965066633434050529981538497700205223696066106768015047707598405405107915086676828282022676293587913055774320384382475996822288877204379884706230729193339302597454609312536611379952775669941293035073195952745764815151661764411195919533922543713234020755714670729723749860498420057090569414497923753451135996703910068453179115839048236472381092279533915593588108452164558282188983688862279866444092796321533959826822504846141976143073024498251587334099011787510537556405981583484790544069559178704918972774194701518709732338936189054519354759443059300224637359596980502747247163847626425736825333031104839324324339114585880007828909569981184500851922447775447738166344073396941645745217237019860867634527410384625755062550466903627330356925984996227446060825364983065977598444516110349260045474367141463216744751387513310879375002007693133577185134962283431891292762902116174522661319449961355733479335715227034724675403913448867131686555646270020376987250731645341901762900059130147497521479887368191445052054442630525899966710664159115980025322489453158837225805482004866586002340184070342079980602879019975469600730911927723283609757666212487563102214813891654125608666782786322508714612378022416066253323281475150605038960411616635098156895023695866933493809626624614565918788267508808212721771632751892719841150717465978174536139443567929065064558995603235162821667770735520247108473950104363273417266786976080084158201855452739349716813699139690759101736765033048053090698328487096289114038105324686113811182486557222648674342156698552658602423965558630585228911101439474768798996803187703746956146575096711967329871731524240492789446196898063664517538503239200446992559843006218009274850239394353910921391224087642189298997640083739940544313196828342651249710177905157613724164709523536521225795209473246669736277008044335198998817028390711683263709048797292205705081818999511950305533892332419120446060959814047268653339442358030387875129946722863610610047200233375236222020859056030102635892666620729418895551712157196501903808953688704372999334303939661131603890182170197129625553770827850702166149579156108041971631549760877816502326336077856320250797147810931636171704715371152559496848781079231042180801197243585756861549587507903495778709222553825014843673597909972000750407799327412827472362654889792515342656313156177278612317821220222736177530250118053215194975129808196820019627067706177312375631302198406355039570060181548149455888829072357514225858238536209712488185291365927147539355005650146431106722331129853488730692560619025939121449784199808037205972982789564261357362303826460974249064001902383165478579089401795557030348523756769898370206784568402328655186819950279525213570225646204818018507359070745116717545660351184294985942819758499708001290337176568717445219655727574136495392871197935550662880280048802056498970320937759005729144363265255857245739831132173181653012820668753054087518673037389926689460830325879151570308411946025957261997994980861826399253042288425512910386418558371798874434611468453361952846886074916230347187755767642337283745332929407426092596311904872998079366767248424603011120750144306807068145902787710182821798304292039460004267548229624815431948369886737155469243226579290857341468697352601829454922452381487661297976202371481644954729003278160141109271797517502435435406433550884399768660401030316208332579584938685504951965881287889428475702663068180205374231068286888494961773989977355481166091493324672445952929252065145595477820890604805091322562028180552337335422656904792675558516477417821013358215967594744758762118137125659607149491553673804629789338684519252302116122432920265901628699490537685039035588510250741878777238589915066326779789687113268284966509196279090881564501325956924924737554398958954315051304232602341560722575220834739186980654997351229304163632960863641028418353275813210756153285449122221327177870718146491278476919781962012691895679454608893597698857828145523831462416384509333561075155542139256303271382916404120744988404145473908816693212543632832460890582239073123165179205461529868283201124802076495509659096301390721232524520725009915332494889508502203372872471427676465088003916582481380031179525120594783312791763525692380974528111283005399414030525533735798917766847578613232016898820394895925219682748410468568439397643010128497438371869023264069319372538802425521935278671764614506824585006280111542119895862511828998008257175393072610037571412964570291407746855351180561570252461451009885658381088382010128481572530679575614025335009937270003076398589232980165720001208250483760668471834141039472238349778855303958345601744486824390822416903867668323676009442910657647401509140228707617823322068138327928150214401102079638442285108269199241921112531961233034081706993256752240043601424221030621826532279258786774372387369724665773878692194973892569461746240006891914799523954757866076129596832520246342186289235920706073220328752096350362873275149373217573774040381639150144778024799590187766964198636530193564851234803747539389522281519428183532502970669234863111053903485701058252189995981596248481339464141585305230529521575987974372867257671673719013372375656513783184963978836515637674445190419374364509419193216880625049980345436232878064750674543092656982518540411920223873112709344287391179809162357452774418754240374454753674513294468857957059300367590094746837663349751504444962514210370221980439783373809969896708768222267504431406489918084279431285866654882654858772051138690480665403290817332111275029422860715335373138800090790953356465244238452358616155780059962397685704971042441587669167472530365238385371471004520211098948355518787984705708215288599845144337610209085462061050230837771108689186365037811900379917989597681237641935056656301457450106532925695299815522529932530415738262845724303228311370524025889604367626308124592418917909219799786185814432635559386275515442785496303270518409493570247150187797518139440745376127324005444335322828389263722220515094531439660924574358239361617470947145037054921385213933630994735430187781645041839267974628422455951900291036522037939577448031684062010292974161227011856409441478411587938855856168116956767338703048440639278336058096073507528205505450166463804040820640262292666201196848936972210046434167427301267492294767854302641751904491595607838381494985233440788102665544096877526552710665464193418327582735822889140623169514718342795798745798526156417774149161665273685358396823345949179370931969187724384978116093212536805827636061143123478730685819872854599928943513176205506344022269530170825520733404720233494268121636659931190994762402750539066845867633834654098368670907629162566476285116593968420622494876234363948339021854854922061657773617162807192735572108141389966343703510463759123116474119152257966800574415268548549000216110713672825700697232918038035197871587273965687964042718735010501164559670748867259630833557262900401527194193886160848558914804368758792955217790468398208008059959899190478113615958579970768726073340217211847694698647202203396130077068890785825136884328815149522750140839318442484442139265839100005708139861497540809057354359331229011873597306699012136986121652804078101006318451362897732389995976451498451472250593292653736053990807370591201666432575309539686827110059545742352025225930672161389348049234290811285810766930041807650521288777222455699396636481000674865603884824964633305478961545806024384958301502197307851267426280735230438324292628182031205311772939652186548268090514593536043903291935471144632085855413946208901846461884545166136893450736125922980572405702301367282843407595577093836559830916788603091952690523198324753834654857359676092200017468166180779687801948414622548623003298136220232918259911290603277817872504985585904390786541880274051769039982692214703894009041726807740068313646857343858567042597510927803707194733469523511376627429777961336957551444352827739370018100847284806236949509017776350995626234189792594747449182236570357576199590439791918474370449641173232451636050712367369317478837031490767198751514896107137656443224337763424859853001175856342130045575539849697012609797806204385962818497165760730108778854847536695728918029453571065448814042227836000163984789428679224616147500140451833133601186994223731692994889917599453522213688482264265837534135834110824025714764697904074214741123428588644438898607558065930802146869713971970927280002636571462146990598069211504168662257658340279352260852425432853973175510863916747075029417081938112140688307496227644321299781182802759365556207621561235096070264471524247784465195747388539965703280899880288400683396105902662546043366108899721688554104442888713692399549497812644441274236037348012236191564619026803077591888143297872170920428652509389497711082502589065577550921463677172187480070749500139237414402779175959496856116198677825425023226794296247324139682273005450165669164539082067686876126691129142980723803082564885192258671550257241663218110532337291553516022136518329435868739256848824387066902665844229621659754918919536942470054324096594012492149446047133332423388279772823915398326730002975207452662106299453174754887219568871405768843303905628366623868386953617997411624390494012422554339234151466373150336609326309573182177096496512605708542509241829580152999895204698338357913084436350155974801598948429365115661212829885278514323822646496192040620164799990526113926691456485093903441292535878444332893528976779507517506689429488702067236585244470160915470939941840379908176468158432688441168480942407938369910408681713244140630311356484779388084274765312670410119646013854442899391622131402612386928719827337728358148306633904637896335501915493918912674773379264024520264642202647570793768162692692073496748553396946205801780413781405705099196741478807439032790875257138402247759508290619286034759036459961407165833277316342526641865997802965967932638669887234706698061004969484745826115485784187265153083815500580283016696214082237405900866548378470939809398719646576993041870230818930156438664653276252508287998493764118484378171668400236681158340395785133652212337558574502611929362495704093716808451651348577450421137053198543790775758836444667159005697527401288123994803715367303477415806993314580952729462449323266471254352395937376134800699532219354193378108289145658735544409838274880537466093781935183608664551690381202686026321562342139148793866009503730100598868868613266112977342504866970119257676519073714044035589943386466029431999591107298267503757099852477635453827997059333247509926722564823111550793827404503421417325885241173653043558620405850217007140088691705767960577675478688943205870314147623669991902668497644520813788890251338078087118748360402321499927392204316833561643506073897179939365928720698159831160443660136273790384183312566095126658651933498638420196395532751058029125967361283162087177841729723412225320191003066944182879650032565605361854317073866928555255631295332791504774694479548730593351423384797638328612327976319946955921793918277003442485093231453858929933493444806432445625559453933973362478461146454651423151328559029328457747801134491262162265033871378227308980628681059726731982483501590119715773282136221348181877288919577482284334006678671019013261561717354437447050951408756488829021682342210669366721020723173201452577929052447126898058122556569974535537697461454695220107166662695722910058263790678498220129475232015156833803259051988720719821420720777769688131963039007323749701810567545020685690896031061034192613895742620987826982580054055341033092686374768499443399761681350049617529743977006391571709699878104370983958524964240369398683961619249264523350755996604243308151828605140845212889039220862250541450643574885789045753866443088854608856704611361791367473815246724739380952856106380162785902899197270719688162370218483386310808789459809750135816577279913582916004809047151478979546348338316121154424774128755682613874806082434304418950727365816478829952292222065279582696116259262326881785355451456380901451884801725648339566015709972593125629644106255091078143858225720752648499861250410754781878735231281186399016115813615445286479046794376013126344407113321874464203938734843423396940015615008468948039804875613115043710019777950355341242132849449554216349419404734840489045747145747844865063836573565446647442339088869361946672379724330583638875780083484251883548590259721999068120483740371168486263652960968705338794933089366239828219675090486540237522473870242463169264257399340011375254275548725068823524034974013887841388724026168913170071764353922079021543878712103876407845372171698197507080322726576305788420907951389678542021834824336944903982337412848614263474461150579128265225930011794769170215223326238535799001562819121687135357825267453180045860711641759520308922398209689477050175480806371414822227940416382293256209138073515730171043762820605922652192424204473383954174259138576494112649339962818819253255685895555214652310354718927473044305794416351377882448363931891016033392387324911499631809995337560721428084540303360776855930083178446140970306370706719675331594840081902598754412869469974452664463876416913197517407905650387755530320699441612053559718550177905374458580354135105313967354199057119454713492505743174020767806602605836040875992001838616274473942631334771749316058517660867187362007862118243502771577661121750387693448828881085513612393781849098616436350817437259228351973727612648478477774064887148966960148835173297167691191151253169586209372018517254986149089536904611640565841173921349386810498744190961973274574619612784056951056288333376381473160634231235794422885432299068426196674384732618901151679033324256275468256265001947930223583320699591434059272857911498562934692737750500989317901574840146832806140126495425091799588993188863452778829958431478322702397381548002052662133492928200154021013706166677613706101273210355870665434753913186244302186332371310681137609129589186147551005121160636861703502160870037396008299789729243509920281192665652721803118966571378568813533691881323144341464705353015051434268570134207279902934533992140219149916240072586242903980913196265161914166916309294924756938446443337428347325253169879855735346245085916642387743859763996090116520691602800199005272791955183046475742113751714492196694668840472555122929199903439010475972403903370677370210684000011492036556626214713837173389359711782477035936469122523866774710124471707226999016778126475703220781415121228293111765368852257970079818138816611404273861121820962345932241668839365190989442980397869408905479511543563284542921999867898330324538338905325891423490463927530838691893528122733355120427298322035438814871869062718332968096837400993928593366807958165728915468774550488115202412854726178523038886149615273392961352214088495825640411932770289001181361827036729062578636425422456392260182967195978584559408368486091061047665974203471659162648887400773726549115123177256428933838125706020387556974955490278280937949491944793427337755900481382623448750005040025442286778991315951904912791489779339662574257278326291745693584575721250336849022199365550943035216681855419089708983581584254588484418651713253796793751166004121157211409637009359457630575967940111827957994035671225920928199979423388863819060451924392365653529354982072557513815893497588180360688025975768493156515498661131678825362577308627806598133970784543532408281821412843825089376903096440835685632051136799042365845033628891404957166043999736489965890766701676074456929035639272059915524213272236375916312259330458354197262242154282098901643755667878331290146146898973963745637065261574845326986742901829914018407297391743835055251511027644562570191885802453078078952911469331634618476022928095572184029891505444069014941418559583421846526216867113791230496915321257807752663937529244744516650051584937307583306199874184916398634765251143622325241254072364928477948204673865019771690958123803991454242005825927845578496532806567525392321652716128997956522506161298861571272803779950558842502557867568862744927235075164832681207432649671000697295254899213662058756526978049238491746116278697826838190093486233168279591721058206543933933744218823747675853902057049973680196067863251648354041918438588905587680698438537357784879147646523863837633604686664456865528749314638678395556492813007577190391356588269299255494910656600992426188220457020397055227889332567781964436729016080591283826888300421297917213408927190308163252758976828902151806252153865794045566456238527575461150283164013808907164353517412991379092910817124655793547054069307555689895692336521209013258980683716414307367326423716877001782896916142995573336685704890343794467312323889879458206651036331968791406368032341232152403447976126461575327462151069427568393148361875331998277022560666914319539385903490463976806144699446650183309497571422894757349531211982974762808526391056116861870666689933101026683053357599099882752644070858086342540807427856794684921946263130246059450964806898405083043633859531962091204756465228873558016305352193437416859631773316908293508248526946262724781757459454823671666318471992188595573947979901013015457041639872097303693772445333514506136583279532894667629505936378350224571574380163998526816540944965959933145664164583265440572717024544501079269539250956887217166059374902968415308900666384114347154845467292305424208467473892943267912424971909794090678809054033704593172032183314223080360010635488184966079208964340605933050064706515402442536665980140692426945385619463357042967831803442214541935133908102657499447388783099000654020068642204914801546169223711606304030426684118409455134376358080977814074517550556294321886817701741611787555857656530879743585355935534358423248209349331023308458208018078398173428203400335030229540629694662640826931748011400527269131792643810725775899500519207479181416201758856109512020849206685655300900402505880075762115678707387177511522068505659492569745748970804630875106671049429871230495930717173826616708440460725099771660896482941677600519334515972978877903815595630058731074443035420852827911105483762465858887609289717517070812538040742649353673190207587067545936590859669181484298540975972412346848361093416943915700520561376203459526288462911448739908751718741191879451820206746668210015532693744508179496078931373603287758430766974802395077107844467568257922626669114774667287737925739343123173708301951495725863093983324885183376065580114616058925701322055710805412186664234392933529947859253507972467812883446537418812440874902303636348551913287147543436498982711544391808414819783703095334035899351931071750409023861341978540563593954779204412515009199724571371588095884458829391120249600531484633576263946435750323990458838428675600277624440330448232362500880415400878458267515311562594475961733939792707677993944797780199475128849066662959603724925691499028777714507112407976843893981354653553190126839673279838450859423883804758428269859188010749657594763324474799524079789633701580391192223099207942833304055137054110155815207789966294939589864657556267875416635434841281558595173889647775682916163482104508567424461989869155562706646048654567910833382012350041525853643591431548677085586307183414990705446942191266391962402366218831918627012087636217205952785725564348554618582183522026066858865278026333987320426516386953500447558628438164924787189763061486430917546446621875213802116108653074878360004240132902049749691808645037390429694875321663676100900456371943151310844886206647732568103587661137914736637762121965326425887644403135621592667459923455765291733155055964366392376062063668912251404098245712525744455968802563659022474250825860823851936227088354873184151404413986971460491547997546534142166630916232336651347682492159919856554904887564635071198280755242926120289437107021267622477453053915128152459170826337188741708549686243804084513057612932889519718326527760801067912697131276766998489970208934013797034386589834053691315993815954076849591971911346544259335842669813352825170075319919325217434885625824278775045097334903795421408493039658477011612996093995311709700824329619867447900628828593904270632427424445826541941055535843158229739907260134104796063758142271246161300383933479413567798716581066344310656651308836899274102418109885306827749171122616920174960017259444566042848132887825821627711802921433387080702807413293744611318666649235928296014803115304467440994165713146018474659051351226213763600723242942501787597998652425178941651520905165072077773702072846550646208191650382439765299409844146739181087364153562861991940406588823962917903659575084159230301941211390365097058911588290266776201991074656573044967758821667640302899009601891369599912748446992994252115265763024284155464045820088943127174001214817073299663083018384771806261591502111173793132319610476189047872535971633984875230398312587336667758004835662122998052483816483805478867660751194408289840984934197381290631696207492389207414957630752161599431549177208128834320019595429597862046379708234135950166483505110247466693372342447925686052535231423402763250368463314283612201789850948481019290688712170835385940291862550353190865075764634281678655236159343589315681456072658746277972191833120496932373622210892498972051364429016671801322073131364788526734898243034802125712925025391511274955827378427309187468310021037867189707891584427984160357575700854715384346345712701726273343400015980728907028642953058653403875012086833280630506568612858045589336734336876485092259127157840733166681164998516526698241168538854487742127995581890213216700846365657083295271322740926866776511738041963124340158321445867182328597027810910808985451904510590863577445850208578414052375994335049322006265340801890385274664405170054779029562478970362338660273391292070173874674030524254915693088035337960114590811177736314412092286497640984958946944725253594824808272308756930373058174412429947768776783912704025374795220399589716629072373250453338699779956732614201604014710702744100524056254439306855655355280162469810467297548811701084605130639333004878056114683273273557497807055148110641927126483598163872673937666253199808333513240331828042844717256562297117222732806132273026269180094265755887871198670907346312014116939300603944954309573695879180231459006377174981847825040582584183675383712707287911757876951825232008288852539322058195668774677819235627490262375589878518381906184762054464897880940388276820878687111553556419673632050829090303907980181688460187842272461116884014006921930509785906273332508372550189026112858198983222847696133072791574107902146821722841732063658490663048443143753486740852185306160017001949021108944072969132752951154271314391756158526264892644989863948011470308145287764335039979009836011700043058493582716574752045861374570949355884351625023852516436595186028402563135958615540181070175842571422570612618739198804118815880901904953435453677261194357087888520582840737586703003273358160951346631289092555105550938400261671420111867553051604157240431881228082265195018862575666409933003161603697971638011840267960377515737005718211857289698087901370053118278551638157058961494436659449279986325034656628122235439701643087840279222899360429628087163735886152188464556099147219000261449128456756831722009134453795654992912296649799164270475265369302752668182573650521979784637225766018143051865227371882526384579092309121167087600744294065091344781165676102258615111079048104511371661970228842152850233365249300283114075426422726511605557375584988725061725367191910489334565339078054616694392379399581940619725863076160155052082354088926818772900384038660765518097861226104964771748881023175817099086357758911724946674411132295778881076852446441260411225176308184959280126539462808254930392445046038099254499383702972082795556097433505067303585839995379028916021295894175736525212680408411344832264756539704159851747960702705876179530474825158370688374236004438096594171506270834006371761965386487207076056155009871558251184792876575265863944261486216130091068887392879059124292279393941165105591511277606684135820046649453164602611231049855949223873657848612494199490107682679789574661990326738406514283373351613210113594609378111892130720561981436632835064704499240212762357062348871342280167194773894706247288576599393448197433463516868524810573549152692402600484099120142422464974546234947339219582232347592977199130086804814019140904290374818610231219408060104156815303688161465795602985411617817580281573691709316341329234736140379975162229617768755415374466787827679867637306912678536542731328158828891766494559346779650986999241980452183804070377919337126432656474852718349842916338932894301297998192315165228707096667493648082808917290310060332954135648288899233005995022478107811055005269194382377011030035571656131255666068465736094186293433783502434359719446274222497035082675670154013617586527791241601552198982172882713762845004661483893396488308526239943531549695775738948400065508603421361935441415790282873890689278329090797463502526103155286158289514293190886106219695979872289917451748171019236538098163412084673817156872100126005465345831069375470816410802260638038203114287763120902638336281439543436191634156849192812231953641649862858419182945051834164577809940478073527892941043692618896374924842828531049908177290900308588796892981572316009894601466513891891226187443045832691367065409865786634645684857111627625015395173105561889669689231241119540982335794840279053413014800565206590914157160403872582493868292820461521789523804615844622295282720278688892015758954829383632020106559551070092580713694030027642238396629134346015087195349292992189357984104276435496758540561968344756975450750631742650202702737244824673002305829085162646421509475694504639058877419229017789060005347606160028673331459284604979421137719017288836384339333177938977739073953559677604197707133505877692367364480034800611674895128554151774447730525091135457320059153315396823500966822788810374192333825805728262581623001017503175254770293045633317611979612351987473266455455140486125383044230074869027277546384547028052110578299324849825870016873708977542198049209422583103866406672904703038979881793383249414917163407205341306549898805316286304870752622715479109326241677818109527828391603764393656410209913596411484457361795667882779956644777946176797902547851056444280098582225722071439653719256973207974576329166360894991066731940149208141748250107242260500440776860550532113178360775679539411247087021130605007013997745057969842005338799541812611973935967416712660438601076058522162048023278898913824129576096677152553472156120257863918335055523535359468803719513470412180211367604477483720006996495931404439072149670017739538012055214122316846371887066338864227747203043792193480890505347096100916714939300600027185010843594578097786270748670947349491885210565579172102539552442539796057695734951389554750962716534514864966222816703562832384018090214938563875186042916796581681420490089273872606862620460191191409010266006535530859370802538564216050007486325771914688069484495549890624464139938530571355048692940476925350403114959085852203446050006664087312123037675150617720586029370927220616623730096443710131033629342252293526912732915215196441465542899248666164787937120568528230521063455768287473397380566515400584229757803926646389934886709300571572028062246638406064104932232232357355692061087420998520586691332544881078515057694104122691063028070601546680616502441258578723502329416258853430855705214572599150863466189836522494760985604153594199756432580109875516793789892693052004320164358267867285956020932593282221758802706260966477038639813445599338952471408890986475432235207505216922819076544051290096096542418446498336995974162344184235331036848680449349832254819311477498844182502439358929490748144938287391333829445847077091695667599847568463951049428086356394732151357645388558696444519003519322965598642211413293315150631811350175168431892036185031706022777325957865444623898046977355311824733031436049249204151413421535563121650149981538039634817314503733189776792610206721170013872260487175864814127725676187334526943563544990927074787181909129417612390504537059816022730450305932247593677615974168064441358324979512039875469169581517998231460765398642340402465968545085120941155469778938571016934120514715424820061546884539362748435321027054463345968554322516099650321102048064703707730531168436333058639916305889624640522668045379099163348002124326810954345426537783246604147020773259540050317791341287117375122148532671902100457042965562299459767200744245042440918993289277252238506053913035641256275716555591754318043007165261914739219279852871916524829773226942676096399065546796232981791419998145476789068677973346684477181144139987061780176263770241729758115073258528657488431274339878970606386173653265753506121551679619821616471012290029067666690491119282237658870993288815076664930503205448812046253272455569940017023947024424276715359235121553489876912345198931231921205618557631145166015048488576728734269616056637817977289524920769494208398136303386181744717325214138866795052232404808996263838684633687026692847650927683855032356575243382586430366059805795974816303438614468286773257266728828301489568221285794374188261012050298227146419533146809296098542211481587778461169642449351268986932445642396757359870249448262020847874220465292049798868417653192251436906229114867930589934579497488673849436900811906670029150567558024227333608110570434869210947356199942448756490875949775526568486508768068900716403607030271797643887056097499983147516056969326571505694386203530762789708718027631131015657309105543771747944700184475000392685378504299065290193221558552664008244224438597419954214020386035934565600365035891879499232710516317875526612804580068945867775672758797770567339801128395221054785558006751331761066692402877666757220262748891939651842827719471009483190059395947599202733878047547182935591707893509238408006942256622570890885691850970345875247082809488055028824966878704131436743236190838499486343024697521752189651752033691446861691294484116888623317191137301547508399663277322376417624530894213519697122449659901815798731953869694234279850670456373149854409334747866646266708881753154020413203995709893208340326963260673621211679731171583264475265107670671397622812915481219220128017273377477034719006581582472379601739699770676812681848996026805117690834769914294648426663894687865146069934391772028720324044581091774175640487059422826619896731835390279667695769436026731698153142886838294992493796254608065694378605687443718303382817407365823214883104170787998384994844298624060724722011813492779222805131977422025487008154832882603868438283119053576633827097450924470825095100118725280045149162047657061716020217525655695749778138851379333925971569614805290943083471251146026594124492620021022689716003616993346139392383814498150370940687854533153642319494217905591553673642398278741112044608192462305621315344157689602423206246672175444671486971955985946827033387594738887422448076550500090974556762962857004825284785882049968297383209234819635084101700659124639636703582054457711448612266414159210304802851616243352766138536589513929758022512006049918960673332008960089023623890262987429633560012442693211664556953668225773121363049842464098120524355100452488075130530932700948197847192587405361611169737427132873572920143412263327067472334843457670790335843683288114862987197818161700162480258080823553092808590650858635053300496967931326957183040643491461806816540000880588938479367811114781027910530040588107083804458096027502191970148465105458597300591736106399247934496415532970771333356510493152295479977872553250479633453814364319532328447119353350031674087467280483905222131176897914491529704724368214926000668224441983215053897336426142862384740617089443851516539139539482938267682707162396550784141389198898912942673750902990676966741329830295279178719943243483605820411191451252606174458695774816080852679354669544846642045631827829119130849285347246101342934827480864690391075989313685864520566837692946202615957196898876937869956671351204365499618258687303855813402014701501046297972052275529642175259657418544869148115322199181069862608004131680049764112302004810749513146425993660024530258763646573461525898362718433538846910625263076610693728860679938351652994071555078361035744399163830606096623339148321840508284033388998958506317079689862417459665283341395541000589861454630857728075088591253559594492719654696255065218273851255759430425938422353978162965769912505602158693984235221469035053367543131433352733826173539040499190696643807238738952852025027474332851092635069513081375847414727771761137288698014885879164440066996962960507882806487171381406448957056358233188835275634556304724192515855220392789613462793015344951546617039457154031677731546337158356111607700404636043009380545065192639815017434710780998753598106304982237471841152963612921923923991629382812564639452999483241594517158218707605861546763317821425090596970414041684276184472168961015148072885306637894200963331402229851284666206314790366874654767557778478701484267046125524394633836079341083509194331034374685823871944368244118710778520627993894941526787157899900614843523058114891429215837990248310053522389064273835681949085657344171854979382269718564951342234589600330234867521140119174032093433807095803196014225928500486422118611839654549258403983846676754057273368717962348076513465642644194260844321898394851666180393843548367396250884629076504818374436770388841434712830457168911297485679074514369497146693364483093351417171192333683421672625097084396626860320902406239268294546880029460923594509871923986733022795898365766065361398797489651900558242730520434527192814485639419130062348575840721375246638098421793014916883830785008134213022676673400050452401403201004114044240760299988013447245701696828926651875237319617753316899803937753834586820477548621039369981289247193831425091819221645891798074530214949793521306445542522528608330206864689627350051363513468149993996628741505258171774789792850169911327859506436027352676289200638474656010594658423921146855589337574679277410849710613321275672734302722175890180918334652094078478202639850539946359288282721720444409183563029122055766356681774578116217753918908219040082481027749267122259333650079681967994952441423401145299949314193192391117962218304878581387466641738252014733994974816234709797787390123739344966730465609040859321664929716923965355564316640744156914480487701881383319081860821721321930045069126302051183980312109211130168426378373528282511303132567184207923175132223766601609331773835872214434974454946106224419289171287710570316529673756426987237085877567179562806656977776638152034056798225586960509578322736885935098509398991661827265914871965639275727024936770926827827545023680129352167919619616062666746464701756744854824604550616226134399249856807554707550670141001109454659452181606335795744954960018351028478189605961752343690130986881512305374893959376323694263689596804680253533627294491041379000886861408338698366836408179328241838696798497189667765877119157664566025819893552400259139941722171280728527408360251842673094533308039078484069204118660812150526564138814093167721556176473952885536436376003408104260392407423299669202797027118421037497143701394583524448238144531886066935822622423029497875826073736193801491064228027337370719574791692537620686200590442954100934346882346307330230710146373291366623742859799931825100555229564865212375153863273944271905439507609590539216277989573197146397056573988762163036175186744610899666643244388316111022849277071306742049662386018573233370577157758149805900515124561379825208521581324877676566241273098771259803823213486091150723873971799113248735983320201952692868419611199917699734156192097066060329836804763299427924889477937148591601417434005848999333660684357936774264106730267733433947556967740867900028323895868048663704902487410181909488440653546638068859604486309294667720904611954389645272644266608560547402021985313364411246570313871548367745413719512893357353780882798387516349347104165808798227055304678328661021094879323563478804915109950426935753364250759201919512935393487214281872190581014411738771771167474915161539212634801895405117654339767090427349196058377224245647246186432821681005880280239342945391482101979662483389416868356631161164091080820000088980115105027432797364796539603170321542397358011937076196225482300517245593880645231691836833321218905865565993853615517212879371958367107906604196716039189987648132213487338019791340364602705992548261530143148603197715494554455125484667299831275315023133347480476338309566799293806405917418253863529692104933041103715904509660113979325221087675660063736181016498196705804880711060789258541745639335973986359050719038993845523392240260954391448078683215009946639835976834214275030934123099688012045699982813087305199866629675752633891861177588255871209680374876621969312981080356530038059352168207136554595003132144457747009757966941888266038570272706829569235222241208206421050209357322164475806827920093485484444779870387691795446374009843846903690925243804431228858184280486071327208146593649585626320605947282696861501635118134343542782943279426727008591348644029284761539776009120678764019543109651381101517795108987485894905836380909309990907973780982405274389664923770409752957786671854587650032310920460815020588234080279616158620705129423504040241021430062200144820687398500631902215818852379548946002093795499661396941245435856786683373541836987737218577232725060196308976209503645307722923704524740834630262563562596552584251388575238881218216774719899060664575740278041516006458368878758086743380122254932173876508577660295560515015108447513520129094383870257552179368003484759479090063141569205845233036801228936717401415180758391066130502510362855871479569218692856294765180854699164771137929492334027617689003941286395655152951080920429187302286526006376092386285834754135587322594748824599188967535219203494290799822039846165942873664767139800243351408573241775199713059081281613019407083338883855225519748848663141001590704121636018664519536000907028000579542593077781178031757563590137792194171634341731510024194138402167829588067473993845024338200204509587260178817181512478931757031114145428426397483957843730191259896090120998132579474115993213576430804490944451826945935399185142922126042180238399775711246010707001245708061806585775322019453082672431671319284969026087878282811394197512526342134262210257461331347598892402393881861367439688708610037052766337802024752846351862255643202280780567202023423217661392017858586382251726330855106232398620967325658915023116336724646845751556896105015282847155064165597343853916345159474416913118170880838124504392551577629814981457659863240006172243353247691795000897429840863325615817317942253719026866220174299862638507093870384533663438328017923946183663241634659093221926538355320220093072386706283736289482916469733825932202857189622878998698760036126344008006690816065386658640479700891740401048503675345635105227226432962438576097547837675968639805658908670417073710331607616618667191207490875214403307588366704663215671734239558110763824656302829237790437850141482569674860708581000576166707508267240923973919469068967955703125503478186797224235657585252036371172317357416512176282074860045223166640494175365894157616083369810499228111641838134559699849452183190567613175817597230647139280082962792201804495410025109829990040247650547215446866409557907791339534172286524080656650704575706349203685926361106163704102839182902641550386502179425842219606716017498802092053169318931256703582828869447578998631896671112202746012062379322387347596637226929762202552056074432966100122660827966023884617759445034900831220754290318356811017259191959816012909720786944994636860329696773459745825817489468740896909224109289459354144219723585797176806775254972813596484635047396021584234796408898112165580928924596514287979883397091087408764704462890799359357856847172700075035184140223953045352780831625088331114115424617939775994235872510155272639119348476974476332321634541289667505595907657475832709331346878613745036284712468777623620830785644635309850564912368943076562739108105258561614302760361320782701527014044160685614957054575844041925946615624800634064900340723069633010603785847795626842546284767814693960630358716727232740357202958803364672752192866210745573892584043280500642133444411736107815036512808677923950119206996247172296771751044497556750308494504869287161655017446160577189078439742049687497633006003196438098010258528992149986560008848068033649755342625561301464908392071241641494196605801912302173135202834567420560954819908736333414551314122881662174795392637511706394759296456783972422371751267997291956075924452590309602224518761449671172549425106791305968774316624019389900936756348245146142078392383930949568026819149295057162304201763961833084536312972637595960572264153895511704756651597492125618453917323772725797154881886459513923087283403163740223949381998125062906362090940777817218863023187638965889835793760313029882970288144987774605615878923899405602451040599480675623761025747784757011807617617799068170437527510494312597492293214396098045025483800022830787067216719464062846337034037825038626599001750422817604054518489342779744431866490897597096769198207463405559791915214754705905877896287585720782837513022853215202142850046274726512908848034560028297124290406372183922736089348966821393692004922167883722710269197905605588943624490129538758322676819424255855067663937526554048117317255712474023720164940678748301584947203054324109737745507745236027525246821111292165941059568581032401708278091400172909308376566994515888668307486059408997403225234283422618317897731588704214632224336051609164863216422197568377084143917750572923786665406044021455458767212331594190665923639555750554556003502594293736641717268831189541151080379558312913594896019025051608409685977455232133532460696861955417326634290904376267785533740693703269357178658413723763809981613865771057761520672850675402554350739646000956559511820452164406837826708323311368231033489268098414211541323415485256066973455401749815252401691654823895909022358987509774006872423798693862117531715791888429828186877190614428369895053090844356624571488172120854131092333703085385703579809749002307363753714515383858083347690630055013238701396086641434470011419293327790866243078902841005599159073719072546314765718560015791767278775863470008934518650222615125005030239239647121996429898979560382762560257850119761279700868293733128040703997080899035449708137125241128570652745457847168144067911047885244532018145045373674633010740282759105488332022769490506292897014771271243639311362757136767189499236106927933147811124640552410642412204467278845692897839265820833298834900023181268124949619976107628959239383383527114010479240396799609796660287418431702271365534058065663928165328636922467265979009753826552215796062558083804058570310906699499241161645811904725479293933208537989741028654003614877807697297785563132465583187622590831714709640900274925433890413307561378904659038767235026340342373874303777272364799161060395871309542986580098771241558638881492513594808225838070929380232415941017205275696862793447547723541186389124749293791877905196803410504993644431751113382929208576423331403268145878833686841389809359343827596820709867716429013963326248259227608623006465368486735628337086760335977287940202768786506889556463826069656301493258476969685875750393470787737977641206313920252087204760714592371908923344108667758123584225345720087827011280667885450151072654061145998948344696589175011443028226443977215851056578074013916766447533309440325455473481326950403815281805449870986945190546182185725460616893086512445323834310522039450262358340797566494865902490155374948146406217801950354763592096804592354153464367072153273112356486139554285073242558701235059605168553310826496531568574305779874279718214527883840014848079191576865591616897734448501834851999972427810297415471503855363805730203443964748169210509574985902956031216931491923362098174838173635809572325382247045136041661839542147648341896461414232955263298120981144817399630187864482074664643977850738396064332941720297580579592581865734304728227613250384807943994716314404191206132067594106395770611505336558058187204783176034493236697129167255774906852762339821943913656909450287272894740800334434201639297923482875129089243200117307061348927866479735655621842626572498555606816945270339010581203409043205624527624226324218654117695629205977491994640660684239320071261595895283093350541045242207407009970513091388430928953714911168419606098513831017613107657996274122504617412056136710840263039308955000373446681352498878105661281787213071993674052672644884820438405730904068872489273327531892205396685559135266571040594670121489742593305517719251380616784078108052201651431552419910495305247076822416601932769273963234636077569995955698963435962581271653121918440174481384128666653319357132367364209661873978439508338051007314255751757212207676030253933821237984622584099345438981143472428891801334396240150550640010547623389099018752763077062921716791950929925279161259283171000359196731991468913145224644081219367385034807482348006787335518816694069497046338499889943506197832027451361617492375194203749099321988239855576010666447284772766552592648791976874009404122344672709166661094003922652897239910081002194155372014748682742775425584815499708391324738744176575650815510987912079671857698952913453855679292026503807288472012432565008301590609544172094182266999317665793791682349829083010402864234266807922355167744086891558365955249316928442129708931036458520582041991729784372402269137212365481871714706566027708236601920584475645993402717089235639625783029782121945476393667328805732240081906862822530193216976069061064366856486828237352221742980484575330070853684368184159383314260167487192843393286199075117231983976374207165481376419059131506966808574385296743736189689890682958257582956075497624765110413998392361685495016042449841138205561858050295205017171993774231841665326854391649555033026427120505773218525614514952639913861815429317616275078371423319537373028763337860117447748557769797321844486703125178385564464800965702660500401847695423561081679008026872281161674666200634826088102654767372019716465571281193755705085692553671436828564508336824117655617581829789539349234256576468716237311450256434273612470672088102320741578211738087308328412983166625844383237707767442277636439615710682462234556861521308175019223324416875244702435739761906012668671400157391967603945168677834876457269060183790514293207136048010213539639922506422823961268946852179656270486603609675963982339679155141561747979804429074762978538083518458497280909909330471554752763482973465586542644973666464305280263603611603906098079097281214845124932644417911719338077852647545281749419657174695340479934849647211496316301547600559420737574254184018345328729690656682098796320560203314101439254761875629991742144874719355562734895164537668654992027453511440366640813258292435864010370298502751937716138488366445007570843591809426536062940757883892699226022755376497329325003436832965598299355418768619878367101981353485630236434513461472391223573965461517935589727802820819735071226545014446770789489521006077364969213543573906688645321633562471916300978872452440162003850820307167693822141599741109644884446674628564163755867738737441660228119792217923894998670062608162359622943029203297780435784060459919000936896055808770918221036062494155988634159040480711992555984751500637087343077104010837441648603067225562393887662559954356764362734899349913518469061848290140837701817570692507526253572096037483063678712828148990353017304839900838865878230148319583476925526509885524893068374280629379450935214271842146578056308553705850556297363873534176290441884315024290075548145001438157437247565545878972836834688957917087670087753821739632135758677538587269582536798526192146261690575841541079563074110546870964622380967192070827868298475738442907486455010017475384529319967678759603802033513680362391750017065641040277337577611224859991456797473067995490785313101403388321646916323725391248634129878502868347218209567451223371633713983505452254799899584497504853970496629395551353951173129397270315346169907068317964781896633378420791876970850236239743257543386862214327804098018708176581325941265161656045166051588306819258148709112195248296992787646102586286149384437480404216264549831254960182406110575637770849349425030233899275904933436192954023538839345691513055033312293224330952782815711603499968948719285703251784334888046230807317561997783690572262622846831836292404615637543267590260724760104404763149911155537297637717524890589964002866178413819030705153434820688796563486762460963471445218944587804512888035076186512993681001590655489748435831107857804021861332608569772649926835749038046723603022460468064441638245729466169350868309650226158459717963415076865952419071330961642197041996267759614404092193030095837899113317310117482456070015288646208765478527393054946905414322300597374856330610725461872770999212660029835923913908609118673820952647897202023720491228152055734797352938444659279361524643434002102489217545036757552765334840818862671414205864575968104181956207135429364353009566155898325458448899562602029461005434694522153697317000850605029015578758760917047657092919782942278576286153838813277914812548517047966134193856698481702815408666168485808915476399290589399992710763120850850603213095664332330679027710077385092847512273092734496513931333784702776685893811792459511711397806626278547798954544075947724564133945733032680101613626468235356561397989524921907739725728730202093227985480662550956096584045286807863286487070275857780731907334496301599562070868024576061439082943497766620126148868115027632160726687949737064552209604325643759072376539566078177019729151667317428787899393824826734426006393700866161566165630130896694170580230980024262283916863786161573762376329437039120468469619745582437897058788921999474052346596902824384832493624387341757638875451890367212288819506399335503346431595644788871970785587215477519739601189819009911230699728920628534772713392426287702149612572191038848243236858600059746582624075855793399580862663261231540111510669490469404790774114759390899237967039657738903678336438646904893043772683435634278553051172542111862709619169220304622165584165653206690235487291236881995877102187154183500683019516632070447337346861853600758701526823929938792437782547829925435619311670300909791333642439333285622663760684083002002748657852286897461141807785396210792597827348999465190722123657572061414756127044280218973912262779707012884845768269761564783528527518174837230848033735385036486231436340789480924102763571075689310794834024061322172414523587998832655379898883288718382390332527679238280422171370317919200290000991025423222934515469882312327535660150598748775098921232233282571890766108074542494360014729993732569972435837587678226596821946668496236583620939564959963183206720334231010987222003413049541890964284940842574626663992569557597393271304184468179063036225859057017815837552942158079077786736580272189470679252791993374339374653239063636175381279129873010322465214670505151294310827942905870318079017849467227947886647433099294502904928373977021667926740838399581613939573888105017694224316946915839795661979455054134519204980863376451919567816634111539636235105612409114922013357575471339534270602454143439708935127286423441781279478744302280676324480556196403283966097909584611789584646015438100882999428004104241113837426974327952213150703706669009609017879840210030873487873674894241088962769452074769242422987990492284028718630091406552579304468145135893009965528784177542511146479393529359988824078211580506664191120764812023298012102238883376280414864060496754502084210797806009503098972518508588983080861028944823192216412469616557431044418820515271442044001104685574189889751558353339648382284182628325343584901691879898885630761824185267831144811896893145308636670549042008889759702999448753473565338019163861286813501553960230424911785901947757363591437040081470559279167630134978054578301541480657260407751507070674844217765410853311022240467346321493059186646492752434507990807401444162248075500654026903389712892705511282434703084101803649516413312064309204794707254014031683691673604580176250631378660363849580756978829051141567231753576701771832547290588846341331658671969555140889608163427878599699071430009981557969095744791883813205855815827027302911790446044502444290091485601103430513615966440528806531431375813804067794773169534181295291628777501029645073214334672219888041845788809713302940515249734123046051899053564834657082416162413973894900966119514976413478856048795555130467445069647992723926193903170730479849719472864444832573593634401792112545824046853165724308678095139914537503187139363194764341340799515760187352419451793470743564964387912408546006469416821120133081213651269602032147484766687333199992018537183235275154440384913682484175615287450956236314156719686731589952772178618286092817572039261073978695173133968926749378591297660361889820765174303537137593741023818106108364144974213907737259737815552339693302836597830715135492223497184255483630425018600665544889253012018213481878422365505230149879484485573910603130069295781566152865555550450927201155378466192847789817783524132973400284839298078955735830255177773967631484973595800327251723784238320357326933837717288059623469384215637366850451631586751084848379683412676957129540640604314707347236745258492653336518438991240782574442170663963001613696521696509614748113508047778260137756881321862674200973625567256206075151288180060608683098036713602533593737139467762675292925576432904898816224017177424866698543669196475214488057774192312977623402485150561727469645792716923211972895565207402246214776226904478393572456217173564174597489590819382464443845382075628760699764192566364409862606528887533575824515324718944111591672066729792140903269593013937089453146485172108344264416633783127067170611840274230512455896632067502938075149452695871549626793819663888977930973830448746727019710926270028535670449979193981710011259856119116700466918629298465053086268115539006400091460020552936739650574821246479703576365572592315575693079450739569967864912627580050842268856427683721186702359787029491097230929582280387236243164423370565581603835342769297026046909062600836933585867518044145071710653950530186452372087162863663038272807315958879715611332127706591979193834040967138261245857779836766094062350008954114014424514160621418943026549278662599771426547140748204069731284526351155403794838658940394660399073820288637496861220396008504909660498853836767526899051910220516798444439408911859051713617773985470370229431758236965467499524271604196758927022188139948271381475306542634977229945000565889376117607597931631389363230555030988040303083353588678372373053572316404562536821220757221012391462856052632006241469279293793729886810355257625953345927558858210277887857815103589867380222569098529348127054818884158454104535394620322348445269061790100414027776051294595247368360824544309723668854873131766459722155230888874645765887129988997673932007086948447449586855411503148223135241797140298307973594507672530278091538538840469578041601645003864235916409780028600480371144355441621949010100605385597527773122686572747215923040280716062469813808809348905060912601978164562237605484926763551459237741423901834055660600705360199396130035373058679686448469150025681847663925989342851053155844921183566190346683383596504613750667419213375389072692271479222801169032444639328395157363737441869429448200038146249010473338340543346665945828191042386306745164206230130175954261877275644434053515724321169459863433754489276993649418769478099128119423209926394723043797199133078496672483538171823692758534958710030020469190328743900242121679204602225740450293470743757341414842791579305305181859323318697475664726119859439230803731384701738543417874105300993421755629491208175284583056724576388306964007318995904027512480006648871126339000060602137607053790881770270378113384335675565612045024076177200441066092087122167909914819398917176341212773128557593346994014550660742182164943333095811547889385659978409587156188577080963471372741049055246757873852094070975845088033584200256592321566345909113261799685704148008300479906119246340741895746666338290995373139914978815415302286455432185022788795829357937883895641526369364631190836624299148217846820225093886528776357591237541433437854449220768885080459332108212700198654849096813532137867604239015266354652115817233731657950907577481840606789900362122292759524560973788765494525885410332502060170852241722490665420500268009197879743123296412315510306229464354738807137619897725255750525695947777043900067606741662780575385087548805656354593131033696054335169944955974978172255490798117147108053957219537504578474335669951045188201762500266163797984813990947325307768489349711855956891703391973207861601310827602651503664612667878864070740946174139980591311878828367792205302205845604224906714813033500681934580645858800645722049544383109127937056784130887761402875217167393553491632042965797098929076825790022226190084583697685237048380893033497978605944627543203777762705898860990514116128592874010360942061242332927600161187822593141393388790697259408225676397317077427376319871619472623215473500594253158478534246017424208951359052355729755138641161224808029039512307901302867841965951646839348264471378698152213586613135621547942652450501671852119590234534359758345094034498651764202437163363668220718804850030300383075342593676010242586981569225114644072124693857923689032036577954246140808353463383103319659619971164293329988348100738952658803077802727727614246505102538206554501365276230153873170267012845493254428644465620015931071961194149707813620193960419236908367247304206324143558471530147246619602460450674549606397715836227173583002620024610667931190816197729830424085776280368056969837109932147067259600589314264398812542589124352807483310942791447739227270312713296104221476273600253610277342651856009593066031808013498750832426406809575600636122529252699095116163421059283878834546563933097644071569164524539644702812260723494410537385291830940441819421485728880089334760802074301219912948784086025131301558215482815176204265652837935942331233806714862508767466898353922691384095392248205204130701526215488394422514750271749384655154355034524338851616467594829676043860097281739699239312624300923875201070507482191453138754595904590635959048992834460805843600723911467691956792361779803404025628280578302982174862953799918509564475748815258402116404487265349407416393114311459000966749714690511105843242384210814859960467378535403411372500848173364288734371016464222052651205678931692032308138556266082631805768807675004917570619881041369854626257273913528417367499665256568413568461344699600066528359780736764653218332456467493387344429351456470393493446285989737712549834245537658048825886060545972836519563326123678336220078033978410816432717947364971636253661952555797820534439284785940311378082877826387480033444304044430683940568282112031672087361074495773717123241248081487221279963398209664212236290307971607394341749351540632516596344785692251486496153605676665720363447191986766668174900526267667814028091748335299931424481491671027799874969514067877499869753528704454766048540070816655409747067406133359673522280895149901184750200937204149899362695274485042358973429670238329657693352663126603201538187104120837182488819936529868378075851229101155561208391549598868108349145207133454994086463358345687675839235425259076286454367440690649061767541142578657068344469366742999195503260512980039453835661662665918540989216722915091658352668133093503139961201167095609263857909459939813538013795188743367997404269126963237322036933728631624334056115096612285267669360577165583960460490016346797327954378163266453899644451953625105226186980813839992316806780966255846867268652397960977178533906244444069419790655395627906177342757905929691043238294012018863865436758952841660448535045748071277473541041271753919154718339918349894737839598293639795147069097509322334753583064531492488792009884730245910930463781212097208544886858525022923105789749022712222839665598696344913882862074331357645313337862427215347912857160044624671565953503857590546647168937712577630395875096682404588754911327333206773219640979307008347612660887086415531796373520987598810821375687100191334547005542154888063393460269966883826209886558619001914075939250229271679566037866219966338642735021446877622486780227079092626922130810906650150754878427931167797498483447519777819947776238882059311825294832828447411280994138313412336008148518038420840019561601982919699365816744023487563460792962658744162427919029699424685231624738581498637193003077771326563629440102324201692951802224771630135171215308065770053655050247944395348486028679365556150260993128611183272584960800915002960590825671586900030317909072249169631406390862647703056509996199641060099687200553685982237604130420834576786317464875745513357739194818799683112079843664564655850324236756884612560317459746974094543730791001766320461921512668741515031072949701910295523293528033729852831183026643967241175911766727867012659888375939622282276717730324218707547969642718094949628305175156949843544700929025748120791620498799513054995152429854313459672356392390017573814557252061217329925031320217442981106900078996503482747046923415122988686240816355832131131758088374950598256764708684817881414696300349108662662729343395994438010452352574157354002181654698909127841713948865838424628850932287638413510911676796415802010518452499621629152116259837413073193765378423918906926285161390986497383139942139956403773717952916559458425499072655619377874580677885471614357427057392579114339401114348631497852428568888301959189765711341736724819248156255532257385047431136311335293747223084820149435485442900946547320422031169652292779504403411969142401110173363048422024402281684255887629917348908440370290427644092192090151165229811932134521810518399847028145496848607090952631472397669536048986410987271539435713212213994530759671616191451062697837537349524254194340394936229778836950454249113456653815435066202575219635298911476989221153223581907664259596099266191242237086393725070024129165287668979425890713093395529261186658849958655322605516494428863872598668391646519903245279749135698818451597931729364487352196207347415873773021607603792409648790630660711223440477193280902772644813133700684266087084187916567351512577586704829331111105610793533409299641489570163351439828095963912937144824419103368537487341519245294340929537808295015808441474610728820129298006350651474091607702834978928783475291735408908475112714355805558364492853608964251290060637283164065894414343289043239466525618578688000998191540764517810300562410283517122619622448850425726080933269843406425795168216707478711280998434397870615244330508101243277857646411946313904676314043095161558144405231004362753682129469018119704539732224877590694329080524414612232020207673700770845331027761704618160537534224261605713290563683082583600126666131007157974661012361292861916466253947223218239102878181964383830703511377884952249840913188104713479747676626824748324300150108467126150813073173496005645423687847084469790700084989208513475353389970954644370551310467426017390002689710231912961154003260803522326059986818649168296649062862396156972993472581512160858247165424346289989174885990436513321484545357031685997812256180955821000138722012210980099467783443245231985240972296971701919668795686171221170951824833601991326637483759883556356064768521667495071319092589501668076010084033315298913244720920707495786457828102605800700140499691010951015950738975665141865088160956876577979662023917448986912131399801806390243895245488172972604973092826060824545493472301269049298230016829471641660960884261969362312532056677179457828000529999176352996117756766153108173322577989519643576135949743277221676838206368253732920717401167804773151473813202536983066870359022614360692103949043472731357303322337276306258694239760703824688330917263387175760884077926607647854164540041507668974895429372829916388651273358909860468382607571897100855852045437177858698452833344522936876200859609948225723837484679758572679301277538083627874333245086393235222319867829931677277781122864406181411500985470553046289154631826236250288046064616205000194163198755990844993284182584823244928277256379390931221881845420945295729625509909050723580121408679617186128063174122247749441012189350995050329112997831248098678819913013420082805890651753495048491840279495083461838089096796382474800410381205869391420193331233293793625230057703080202209365226836386767519149779350093942749856888339093303878099835691846891631823409667990722502530063744711113285811712516488145971706326153977081251212445075271430074025087039022430636226237716834327791352289733211789366482981261986600383643431902873578426086427379054638302965560566644195046378579332826024873232478317241419594374866344337273721608398784202995430911143658194478943744131549763136787290183215433808576047175945290217912263112791683183592831886140693408080726531046297181925760836499894905721068621193575515794288654671342172988718677626759993504874770995270048590606216259620832793718659444634655186208675477843325219071317015031245468956495412517021424829036072726067356473042223814258300504234016214680515001382011905138258574030511297362076403343406900595183725527091773767067410780155864375554015497772541173945572993897524410907984945893647258032170349144232882794350473962564087621037231742533878355219456744378047383899874000233200945589122548191991578298954639574228756672447501072197643161692419239744743989980318018960311344635281789396653786679094534615852757729731586171511780226515482553876165207125668747016305887934783823917809244120133397434449800336385891388017189419074736534630926133991980845082951005103794290700170205498803797328010026963933244456663528337041425953041469971031231823838016498421018751086802747964770220439455617115921021808996930490168951957154400292037154003665875160749269575430560808315398620012940181674721151305058421333436017515723897218006211954098682806581703154584623734691894314218597139095736001268454630198108357068949096018901025893842545123908978206403669847914236260434455041005792241510911413846972788710174265469775819506329507118677415048521885189239036072439157421195104790827474005514679274546102199303061385257123599199691615666603482686659199748953746776827806160600113661188920052389710016489010529859125685514023233724249276756860621783094089830692020519155674178080684401950457342059305308723799702297391348731967998036538700874387179870248683739991527100488860077694717589997074596958978265446782038684741452837431194192352322132045098300794308304098691546565589377519246271140469312863266579182822839997151656845873343249400085130614605530314128390727357494794365025771516857513070568184300613696678589399135428764099702708790795135161915723903282288413299688838247024928551255023659673902410383853553789014917092795794401356112204732228233898586289232888702365432267469306297789806247269326396783129311834941010387633930037064549935260804382698081705754785681336497133105519638785645695942682395382115651100003613797485589507195972125615947597164036202930193758590852233120855992486123417890732350655865219373661040243036220498254457107427558737174328105331320732442813418950711049280727015260105466821928090907843756614894662062661170486080352812131523185835017596163046514750100889921849394282940518539417733199683556419703308280237126758631307381328712781255525580899023389077708342056357246292964998549596086883562630949012269818205702140782821725148385749005827044289169012941096945609522670394858656973738512657200138295255161261919781500905419859863966717197016444319398133138414703294867306461509012874761446571887643350561239786784151845317166978146935145388093129842244686225115655561773113522354999112942193757556791916754110352560526375410424264444346391660336806280326117850445427865722765051920199426705553836567357825494599581460910933499302622621108178169534292612449685643430216197539521185094167766238405104236802776498797224020829287885057306416792120286877577654312366589376703808211670382500166035278199617901151204988102134313283475622945223310480391051633026104706633608565907961651162364456102916956305633127424264548895178638828267174948613156073500029138633527566567636596745833506543704069979438309743016894219817812824042911844748699361041166447247666974175604873616209938195300135936492496504029244591743556368746629913453813870387174050064027144647112457851076907942896831854253725899216746521072566698911704277886223981712994008906240924182230719309560148260241471171529199160445696404798525843762320520115531070445963330493716561605310913043588587561444367526179507670758908012455213391897960714191024667874021350721898535463304095004909670224764185529026346777789707320475578972539146932036676408293060579376497168077067302234502174534816016338143510484556475559880114209555813972284185756670105531158294622400624111897712711277936643745520193302302953065118522571408221068996735711822617471111596817591662380515515870219327220545666372965933990020986125937535912507637758616042081741676607491889532790286977734266864127556374988403122581278360481325353424440785619975462909579169752588162419901882040423117384909350877499685071028935617391715528111077147332230244624735510115920128188330720958412459136712830118340485462243846195495714905399253298088874606323067653160912205506700072520758745407279968586612693939936382339702686641778773450017113823421955377915683801871928337600188393049951039465110428391132048539713599366807578244449350744943510383423864061505556467967188947101033269808802057636100177141034848137742066471485015521289618733936012161627290082874746766878726212036347673872332887168867454975254631788175986928321694713529734708740759646183820109757229412320824295998230482535926330620880943111096112823213431891587001580322308802172222419341540391903310133786143115019512265308662372400168318492965346680551602716814709002146389037136259781312337732042660597400084539291813117579185726856040896208198648350410662553628603356267501903044974715215458618214421115459315516607883702690920455142729031320434411522725219247090386515397630190695068168404983867649973418087733503581245577606086659679353721689346285819773086466537007915359878301552202816415181559748574385665522271589923699772945666117573642173451807113656096308887270776422659549980090035841613402084260855044183357728560083385918373164886262823327550691434200009917909366608553365604685872708232078102453094138820737615587952867339732118074375778598650572940606251091508285490091798497113394264102570516672557529496369870302986402493818848689373779669769714468174788350494873726871597850107301827774855275319239133154089481364057865891893075142481183648558988816630541049611418159035753282800776894324767995172201293963049418567318244593670182077272303201266022053066159089007976906174403304809467559399879881852085356481019986057870229146598984269275994995148588223366037914706445196766782471861513214260847879485968385560654807559636799815771408189958765895465541247976801412683754184447978429020416991574274471754355218068643776559696607838224172316923167633051370697570835592534081806815227436900033507806042557099287474168023593912540150524283395313144330551938009348997839340148745694439617678434464124607944694698473737232150322007312873039387937260811426213698856969056425295402806215229909861862062217451378920814686523009969098992431868025991321020543090114729818716319564629713499995026326426253614981875103925317337339684396182737097716123120876545532076786743917431029887612700533342316736943834176118720176144908950902712648900355562054544245998223228493214977628053532392864586172000505144734457850756648605612237490595980616947900494938027292860774986972677508577308441452020206457085742799565299592223238256998485837752881468785934741574289791902854668666415474393674105168640039554270065415023984676034741488592533405243714880153078147679709146207040519448167529298850013795697620239890096901451589348835907892305818151178829956615683977501985025501737566575080328645716838803460839737101802270411734475175145467174800837229148067765023754121920037760869706904964740773330617631670671683315770861284249557530167062166541156423346431945144099893678114425505903035830288946298569273601080976474599093343709999074289732160612775135601809578680637801352662939045705931913049121065680726259611782761601472793221772924538179402526481950543512182599018521207126677599628709546020687046338580702547199616034460230531976633841744097092690637165341656799981307849436857621486713631106162256164017416010992629896801445175623605799205608327059855711652161424498750248743778580460034055386855444311723602363656929638304329241018778215933699829912269267728442216487268146144196061492506299123727345898182293868783739432323593475543131952708758226978023565314593274185994637519025840415117369251187537792607417260221290751049388696969439343445791424393199877427131223560449982641678671770817686317775127269425820640542580068368486173384576253645958897580371428769835351026647601245309469798853473157171757912450802137316020070219298328922178480561813590177688705261814216166879425364008674389810694013964928041379228161440950194181122707005381500205935302666052905789669686870966056760511460161103818566694201204313727811428322657429482604471286259590254313882403956986731740065913166835317808723252948595711158899132144087941108614849331406476074122905800624593542558891997123339393723299763153530774433329393748963523415400760202612913855110255637316263908412609681221804297946485927111196560008325494753106066311963970753819972709722979863931889363668319584403723571517170225249506349760817002723126189467401749268342655588455865818823650638547441701631514882928861749461893109546712375487853451958527787956712313912996977741842919557322838114087408103033688133998656748705509094914759829558955189143037052020882714283630093630586860221287418000457847878924588613365127581793276531343572012048402784012480160006801455672765730678514230325969900142993772609689849822001822047522648366286348388503622193540135922519522394112394305952051193731484844977359946599132138986073604872282508399187623457281513404752359248532322606921473566658488817307183211582964604946292281032688879809494178260346850482727676278687063925729724540788167938820278632006253026993637929869451125506868589862342005859355742762701466393524156081431606046574459407857667925766413773940446822319669276542300016563347519662946856791993489173237867454834622209737978614131251781145829079276185142647953535566851994324899249444681222692990441002892546411377120128969891344232926929527815731523377168332636634351922188423675403123687984549980116067915254323498851167067970825783501733476799497186930813036592926072979370116518731843583827782343243484585916034973112832958384256578329300724072937671471379439220134715204335512303029007259773738475709281904411749367511602146160330256632338626225031672073293081538446210838284956041291007856852940567675711090328837610719249443275607597967524393242736372140327236219441350986834970359527116725523056079063208357419216349975592070063508839270602054696700907524018914278525928023609261334317473583820357053702232607710210175132199642261269977458038161181854951369127091096849358693141081214083089203200632285328239633452404192006409789719121491035972219122097147524873634252906913453322143931460858574157014762261872232688307745393610885773133194192452391926554003674329163278253043550065469958468625532217494394584769862394611831067094096344826558152472135178586459453256198676050318816267047038583696626108697056894801672165374170907844801862876177481629736019415117058139480532557555800459312674185049543952483997784775826282718492846053424259146961669032037244424995978679617890372381298682736194786964129303630042111446263148528431332246567123662506885942146039277656704939243930891689309431008188479510147687981998692083781507426265733590065947943185397776136307286221139330074230051375210171509484682154352818316388705760016695530366683845078133509649120491842652984165042200901256594620349436675606245845949991852692362685052061647379876631722331702353111243837675336441216381194512396015461840393119573699976319122567687116831554340761752374348689085175230839606440941048548453069009969009119759954180611598010733429416690836936457860113641619562019323877892485695541061517136432477584645500066644177094491540542447334470291088884608316400288169382827831147571650946895950647022451874441979916752203348357920943947054449753283918352153230708932581909763318119206649985154925771977889896599624564829842600512478726391997941088133296089447490076057744028613496263365070569089462090025937076666985936325595359355851782779113272976740689219144468732105372559205036926382669085825038092811016435255035155396549347587561445723400937713553321482627449081012705781900298384276985546858598708955459368750533670908846413727109924607976980588346040691409953308445871491875887046875000678790035305545994300835471036112892035634952830148558636990205853478685959725654839184000456555746206925077925198042606163734126678701006908052399809361468842989440822430886149301769827876813449474732557188541047023850697688579142292498579551632457467333146467157311531233104132940887772955553283234636212002123597741195539865455360954216085386962230369754962490184678080613275280329423809269639491418681375980784618893213398910783188316901516513583957766863523692203989475055065397161990432729325048584290954037129579848322472312377466715012686144886882234710799149056321726230406550288505308433850981594159893107132037963888455756795437743521846896784327152098599540441357312581559033358267921416318968635768443574227613336399367774619374708038269890435815269339707407419991062645450076127894199929866157850747107279439335411255875956946062281077140786908604155300582704142047346495437241929629553163007887066499561425493949395550438257471148953048818097172077421642250858876634823387475952627168093793893331758303123886485699066463089884134350610608438635734601361889752917131885944218027083433948398556731396046897093983287516059023249898536133050763349750174524431534366600462253209453781983616652898008022502889252152407709349268647087814488839186498629330167259502605164026911469297795277012245426006869285599864192691384166620998635397106313413500947286535321898973556659557318460376690566261049701547507845748960585932381689825416303105206280127945013200114954099357063440266819285765823002345153452240809503134819215239035307307583306164522097882467285560445581641205713702487052276272232265915579701845141295329394199112646145893691085094411866586831560014363062509594068735633194852656967536987037097319453218857179013411506321293264694885087564511884503952214724175637446489070260318574428332534185979668331719069143631091495865448986732958827338545318305559385492144880001397241122973959699073774775880183969917149968034546485042850225596695095600657627147501951469347087482735407030002769017315301169121336511042094905698018862402002441954419095612189966548835267421576848596011841743068210577364789804341045505934389984224019222976586635952348324351640006371937457576315223669426544078401361153519695141798928980724274187221347015989733685473086655924130543805965086159895572111217842242159030603457021361587008509905324734281883942681610202916134230031823707677992610001200272650402535104625225556250177681261068138193284575917830867931336490807383540305415781569153500852148430720443255159130553807969203939992409743843518504983777959206314424900014087679698944848216554548245556173771789655620475161915443132869467456556824501260921731876403681324207637535813412920389508476639682444097526609529252543596083205425507490427268690735103498324553242737464859676857970591167048005494782280053891011384711159322995665713065514237403160293258293220770157315778866247939150247825851074703758414102467264982318039702917746135618552873898144800829562314523930711048769131656704452204227264808068019301859709516792067002051840306902049228281049284165026556065188468806720451808769727016359860580322308684771675604958867521951591122780790514140665935808883854452465044804129298881303103433523584822813423282589961128226035682467990209006755506890752783970754597973941643263280481959361098541768783160481054744210203198816252359300289023389204953186459915820485654514536229706743053199245220524973086360902676413087802993449281771052166542022109044980992223231674365297998150752135399722610914434582259023358986359210761149781624800038052135193158554033212127745596607589813455824540420303817997587921052432770849009241239735367862352813503863246057482089483231078462609155774937337827853428562299507951184444939138752972850960453774941278233436791095331822557340004946676051982213963477848066854117601719577703049681973194687590158595767040105229845085095496055377527962117971861577780099257070553714440461480073148930417772907762812557270118922217483337991609294465257143993454249915030759740841836837742846704534346495284823823044981752998648489656611858914269344214901788793268128806996148884501017966825872372990826430079758474226100383216342615211348620535833140211103184050923613654497981296434099913131719427706144832388016204249186786718789412523214292427480508286911469244161515861578817977526738854040974796976269768272403436024861932242986790253668929606371162167411729186014517234081018120058345976484650368762043702198880390594939373114009916189005976576335619352809768972927377735310082317217430152449347629915733345884838369163536173022663565627898987101037370317776956725418478060129709070454108348774761649950294746147664520894140036729364184310690088040092434326400727002887525684936177845628634183066149855959057507598398732151294431036648173529493121334311499229866255970653173800354513476765108272383347913872327761681206643209385992028056394725239411118651616014988995733580775914949895972912995401659751215174289783246720036669391406223824283122902126890695010581715626205830648649319387750622612941216670849228454526658306220405804107938833923344632657149514146077755914022735632503449751632764728584684692215725639954715045092619686555484446132070842178549806893903832479772384989895023693692893010086145060403319061759733543208431147930465813629252924399285793833241387032999608744511930424449609748842287056716704562564622536304874896303043150636155948243621815309418113502149631996674400332274910049875181776174278273743916068452349143531913017900057211224073586812867161614858808464958674248812368911931286909505484133029979038249834464431216892976583731266026788910005337349522219422016734443304560998842877525840891542414993557089957975978707948586929572999056199378152234661809050472440800024526833298451099833416674600887498616728838222633798574976343453563199077476656459591625138743702074614772676864232612299474735105392517164179343121852583440513090696542285569764829773685622276878300007899053704466263770697425754595456530301556814680578272251471033100215508256965873117150427427277455845626935611542714768895411854530421000013802501170989689842135992358172178522307979610592881892923963719802472153830570628125534502411996057476032593606003151414160670919132158707286613351240503565985919854671476928069929938695074576583419984392314089380046703223024352288297105298102750464578585026763842614184561625417067076868925783937830272169001196418859746776808299600220009113715183677206794969749512497403998273555121117975350767990027931148968979297436386898226037359634778152221843254455355120142394779371808620766097232405402931227523398827045639726634679076904204497872282922473653324739449691872949351095400230630347014147045389125701159305357924561797822614536953295688611317895211971626723288426249890261880777370804099261615634159474888599997030903835640890823557965354623944607044711848161089067610850630168326396611368597700763703701509324256435482452613886670775440075277743429859555013861020900784997566423986014547818723574250099061669279020903100680031973651906161115565879769166647734167963121719577285742898189049141173321325155812576541803092370992315327254926179663818282723667919853207005350148809773778898569721487882864464738938715295660480852244154172861177494901051710603558523985704894622712991163545839413466453267382272889973384271098635461041968734160952352936148401504683055949815155379277216014439228384377353301753343775677095057428833081468164260633520409200478144737121082556559919470837761836294548566239117099649211693807301778170023511562154958715787472749162280785299734437693861924632037538727936332276507212580340244512969823008434547427305457650360275216085516887785191451485803216343935578263293528623754191697940469171423031113447806251742822975995629791783826817167401195002729941722859681569957113579637606789588286027395592865349672839343261740585922352769436546846230667174259129692068979752712869615713380832053440097151122003600777721157365548578503742220880645322676090870365085272719747743564475515237615111089820493832006169151987237582813257519663704638047244800328351087591598580098419420862944531704344134424055925083673566512153899005432421885961090671399779150931281250649850267098040946153741167573870833650243996304986633843361075804015278664046395509113889774124460127648080006683703067138100498092729392860144552640780563154533812221421106246556067046405848017668174604837297123717026369742767476811438690580884378102528851613568355685507456590380554565184099560535586357422834034571501058787318817465784244846424294305155675957753921171622299081199963430919565980596967110510298048083195721517843379680566770647709075136794689128955347076302462801625075917646176470964046845543394860514596429068065010507388720499047116221652605376068502049041680033748919530683106689772275283466273949031511323368733152843794882046469729050562837231355759491698942093123102608320760934525444815649468604169777491288906643378297967284716382491339678714609945955139875486966639912487129047354492634457270377124463696079680552323308044989390030648979113709360869834218708657054929029144992849268321958516125774158583349520324690566843497429839403566354982518603098958325015052845402351338423685223869535485607117217793704577569465849070969598123986031160492435683899500247775732421264921100717644653368318051902863174371963640360288045894158095816449403659382624670904381041294000937638166089567755872292013654220919535018263597269367488919516786729352119044936504291311238828805931958873317538560508915269353403346037987940060987395700943661698624634676599122383708524335323240557885570278782496397988426392905421528951154222233907235702844022403267314019613912476829629649111502246934460896346586009458727602124826889307014029624371356650072428961119019861818315698151400015333269456811615139386698366386484517344157560654257351183833401949907302660283397071388912378325886957452074523092794829159602132056940455246538096603831317061308702456801851067795743326605647352504483056065693344251266724975385019149623927289290094135538401941545366884980923341338194253531492310445612939351718796024075610904913491837535890033350247537038231410721879520946191994512398569373870571647448973321248703438324079605043375589654622968123179179557161463888874951490751030474722588574385266292401008976453339798775399159343864174463283407949951105843978261865341420212281054812900923490819541470649685259381054019951491404283033871863063621698443236340218650682637924864507321425887369450622212058337498997017408587305648452095055989576566739423576645538215807161693449126386967112501206074975970977934390343013016986669867801078227335881946955129942290289403863062028967165677277473881346644903394383347871121293590474702004692048336017391105323765971613171682864909803396993710902244690358483268618964485339206953904333983243385050273198463455768022373635178755248146921985664300465812243916084755819522462154898599571920205651406953710097784450162493779707854040545690307062370245276724983646035824442200796014722601256972999858870128052068771627449284585347007585004096692043815099844107717504746204437325704609316978411599950619796712171428915781410906997559120122137406531531378256951711391830743349944330426754881043067621196212801679490288222373367800727724162852681785012231524748378620524883563658828937219355882117888155139067686890848852528850546189746144732096389352222805035614436104530497629210547912285456503361968829310995231366426264596352636492080610644975313955859060796503352041938090162559344228842233618018925503113284516173081015741356534239917119567920660136905356115302068880797145016847325161144702719154499013077281736942300528151759510923688523454301236619393009747100730302975928148954629160224849337847145435787376282134383338780960303957329705450228720847968713656566820421653039120185751926133532435326171978845956906966406909478130611107239837832688429511137054375992247539080535093590059387294414196502512243061898644698922511800081152228669090971734504258053430710597670596600721105885844216099154131194120831221082923783650320353433112845023019416421378970174824089735459183599057178504746365602271443515217832295152057754798882340030908421799824074021857381521863016625256777686942961381684863820739681585971799908805590525411705389018070719492875232889050974816998718426338239489131979484605221560825634673191584756269982172392204772664822271974478277663602422811369992732800206558674843591261070820214470706809091622869725223072832340782682378021941945267032764343356802211106639139083803451878635490686614948583232402829903489616549296758414225331612446720533265166710101163427606763718375947056882032811875140912510217587606941964653909279075776731821016057152180453684159781745675334458361255790539360079415017726490014959454797616447747664415862570921860244736330657632662111445150936374706897164452098623120173353780496054988903615035773978050643280180540075253534153758478471375245564130594327476657818896077453020412745861600102855412434805776814466140196970130882596233437819909123369538030111521487373873006926855530670764102978546221868149379411740141134527828603511917084753674411358479849630259997280093254357189256764763218345777860129024932278531222833476175986010125334733849075552068010490680121597597082976133787281655409033494678898495098048490561205040709522619324393507825776648246043693066036895466647916957588814478453066066773955682603399392557834752845383917672093703221072306944453323724673557383888328431217893527651155363410126921445223069996014547468762500031966541513135200587038131972258758191287815753929592492186344246589196318647300133026185153327170135083794570722596098252998456328718761654083979473770576251498667536490505710768085408621412243847792182545598162658310840029038673599517818773579612046766409223517286744474581621876902941883318251905462415840692686763408368771562560154002270496882322222062976086102570845812313932195436332501995697769937859857973383109416211213045513688471872618749124873058824234072698988624058807478558358116344279393483080326278751815494714356558024509174292154895781929462331735797995727755606233218905766248655262784618718548971980722439028709900268280470534345982215721783454242153401197099348935587974278856536925269579591077766833686081627122202198298219018105445559122614964091725973406328004031153417180642273674416685655398753280132558640574790526838240119328811169622252245237692815300230761750483463769686362497612056292279581744893410755283838586663986040379197993360412457416836316745946194061438666918770332556863909213539271679500107376672092833120266598654304364457344693597736635400835632904848778234900935882021734418727846839100933980357865996538715816005024351031232728196130481524561919447494661033298667867863825559845343016853229527144276942457128487229128268624143706846041457619491768469313321326625919090652780997683501706936359808671231314024687978640061434929179257702193625461994771116798929253956819615374604762823107901113744473995211656130479268650252982125650249727913367224535001170775394926735535694723391917533279571649379872584464928315973722669455185356534919923042602313788306453056483456372868152604629951001847988116249629004964009314115040497343540941788796679133263709115530805964028019316921654332764895202014149192375519798190758308546292097615883217353784250739060944075214566757138463286655278220176159076261284885668852046274565590280151189145981227344576904323520023943067663536025887395808158942831833989193442442083469227296857120798036898629928289139933991148372021136529478509279390872870020166293825924007716374558988928036067961300561990092198482523524855595620573694956728193673356734674845876228460561191965594740295461328516660811579792014475426491214347239826893148274524191880483187132716457746107338457676370426415437838500146974611523879107597584237998218608867758252442060837212989836464055292450982789543231892828805762747870648917029488191982711530053882754111316877513887221848592389002736664968088723871371633520357478588305149295645149506248766364606163045028964310995508186569719658192680990799915465809366074235685844094519413794803924125101511695217186928948228170314320960535001577888714679546338338926397062837274990253871934114744151724417866900543759118845919071263099140236575226615755459403770647175460273824079890761789450032465385145327796559582448362613193628976804090921691125781606779825978644968215338670190080103463525872831287823468517686342108923799704376750069817037643843535277694413269246918048510798134295424995563226167488769206853796660911260952870779429358978562144592907482175885856187356730972285299564724418723731888759375055561946591270537598138677132637862536951994462556055698149905740142523921962671918003295909059711903579472930573875738880191664362038440850948869417820900592346521985377902085415644252817965576075754742123199719445561485855872739850431491866572710657703895450154907315675066367066486336686718382978566985695636812504729738146000934756657909569707371615547487387910280587017407070735466921776625698977876661170224033330025304588760429297430856532970010815923190447773669813316593671792327321004576953977029154650727984885085114123958641749395049243554064997483897629629538030233079713829155686161251827908772159515555231012175087681031438762861144693667536474040804268959901255827685789325268511907617006923808545422130041555565271966075240473153007796197613458717739026375790233556111526763211538821681725683797590147232803022992471972722885171065648322049130977345826146391566711970763576652151920010494401003040474500625039833161487409810624838955262749614690569199789604226596779151151806843395849651011643985893807462901211014365928505705192925845594091880730133233604285119337715641378149575284815607266807301440601146916343798573766317057769122153719125005105343480545608517580076088213349021955958236444583029598146489914740009493703403426696446601356396749551675927202976188355488562917536609839596182122551463503719310273526758453486228820740483329622573076242970876688620256701207620358193246222777694307951143134024098666506218379763653635124554707341882813033176770745890463037516705516010988587780156776223283437426778146724137304850343241685308590188172684817975262539905634069395995095423030108004882343308440156089708965017335997607584835731963530757551098182975094090007632178338349572032264340605179281820669921367674434864691859274243952032949436409980724441794894948846404554013007744347729898227103791022642948563324491345436150241323109012314445826685097457921321362437659525892907712549560887314343242163592554565439590017792452173793589418423395455625610155918658334175963004399254185358219559398852171024078625861871111532251775395881370975448388047723423985166293699284336628633996088005773618185088241514065398499918635961811799861968525012544256211132902232041314175991936975310477024086071411881540596719004903162772139658771417386850259045234349728485651895636053342329118328787051921011086665019621595100950566695728206663941981761340747160707318441952202467034177213954255298190650353813801957340094996732147395380162549936285662540800471347824531500374488396456639746240209263398958900337409133708848353904039864243848975683148880358192668594899028292514542140826031146407764238830996590202213725025295126683246658584362194188471933623233907685450491575671557941779256138900413226351575193820176057781675687812652560879918620777673196904884026163577119827420838933838751727193859325685875812298865016197527011078600030396280642461351969055599900761022679773424261375455492449986044852098536795156312408786888213631676777486072975656776068895850292312512309414547072261972808421058418670756541683625043981626603304110373110888760690487991209828008797867874630865440506804116068566380055233643994068741487001979504042556164793168376308764172477446109329446647657132136666552387534172279382726373551952779297491991231658757290122394150281655474419677650941112658276913453366489626529751975509584862446970908410358640991042917067462912223578094193862713471398010224044164722990462761722421967111699623605673322401717528382851297648052070210649865632641894914615810536987832033413315900171281133271663726460352813454338208549832136482783109798392970612711630388569869803790246099741214035696053653432766235833614757397890697198746631788720626095420134717325741746226278099262388285680500441978979471590345091130544721796418745102831675289675029166483950182204850428016901709189059410684638162562273515390909334511189919720417297280970206957243902683273601316154793503255144929301376776354803883034448692569958180706013876241921745463436689928436626212430480341305299348906229467072911188067692402540350134735236628833353841086909797455583837902606991840096094371556323596841747779565108080539110381531319592020427063473805800048250830086640295650781511316992759584692683967552029902752998342631425353577567925441789092788376036558898308620638075788703673080320994279562064351010702076528165070653586045755225079998971352615877061172759105799477988218929942473604863833918419866693810086304249235988945206467559291767711431325244005824156584753704733362488402773197297979721794598063002353753189918165973898319874316109817941765916984816289236894659048403687999781278814507279902390182216643719690754954550700082559779129515826367491520908555747735895656186011035267663572472409609029938291619527428715840747130435229164772572818875668621754722842870542943755312282816898891339751699384992745311004793104266740764807938647744940003336525694343905134891300695151470555257299475190605584569223554965252727396595096365852984553816632157958647580913359004506868653101930769468404954764261823260265500112919660972064594849217675991254118754298123414760991348124508309029189113719239905818521084607488583967555781501816090443527558283810402900216120027588112873124422798949325452436888342397451129710253739337155347951114049333434898627833249444064338297935233174122929010224705226506061538119433629689081608448679113985900962881008014934228944205986629663357422331528165701417632893522407398274545723438550195543616646492692357643272654471874985719239709507837363984939527865796702793877722141685017590610239455319429894053771662558118267074643555341623366648321235828610722867738784382949928167148390932866623105804833325877246288537401164797637659368786972137717175109670312690756811188136023830017914623028833989100693279172580179500425956127410451059234356774535739379363925298188029293778912770578642944956084529677327438630099770854075890797161537089071350813649857389263748239985140243697715694846859233936263788101280106102801996521694245034893003086653156388374180437573628222222916565413970182171140838906110813119325934397083155365468983764198369144381776693942449828092966015746732875039210467366494826396023323234792270912031391821661765002047468186637767788412358824578649384760000502032864629201172191687218569003597734226832678835065741319243462344990605814142903595440940442274860802635920341707259653772066289148719728781573367549855884821840908250592517825762737449640617848899733180297117316780269583827544235652843481294292263239911832279417838061594376930329785888274646470137741486091349613916173193488305785500659096991751645611402436947070189170498146064902433422502232943946378939261918677118447362062008770685937890729551662492336873643439736481159533555684852821678684177838170392014591204349211244999458266545244159296943709024805000062553593376855026123333920520085776988415489041420413048312375004249799596135140215152146212627469372359658995174775477593343923445645300182023413287787411633643525008808097061264343614180167514895392407670355482907326044668728257842740026734799108424908855400722600886520580998542925855240630752744990492738357861318467736734325057927142725554455635228497532979873411216395815458421873429084440866988445708879630729853393435221462962063068005257038676283257078607500780798498403498538245193357680324437920048968980551593383911168747178724632387598073607445818775899988534882779092741942278286924703808190372151507728683912352268293386636850196791387063237238147436072272259654696435343850234013066011868964401239995690638784533188862878125486171337891422466517948241213418872337697593411963657044024376612415076620981343376871286475222197312691756809890411223721683923965801391384381011864335652379922541419913776263877353046256185090481466476362881998319749961187992328096145830883096417506733303317670715841815575662864095347913438296453753129959810881207950441975292144702058677808973055497220483516360181110710018563285012141155621789797824305795759554921485223696138128185567050051341044990817623017983612269331717421285617365181146831456038611891911650548599005922485707342104456244501981671707486359235174256079867020760868130408377619626140313517487669622395925024752327002750187620080255139062187776154469259362199321420745190523382510521033246227695455492205524251247890298764842519254400024173031251683040746417784089957804225378114856628996136484046608171940638241289431715894600057039976456098678171628711541982981666745057764734079755874326311291413619750971416095540055128813339593547764837193580009024091809824115488523673150854407903292552763874622680174391748796989083528063907180195788234476053990614625730610747277329876746473234716334912547693989816337184216054994480354420319827687361003966934902574553541094842369581266289606017478142361518627796304706009697546351123771428836352587789042340101281314906335995792523642172986859353301738627398001704537842375375243708626651509326198937039220358839451467292970483437887644699264249454777960391853183143932774822316699604708140158993081279640130323189884492038202612785216180598829208445096184056288174895923680521567101193963414944250043813117468125708696272685449441856022599472981596234756358685135658576403249886813351617553348602210311349583478649751210558865886628818970570289164844793152495679206420083853211644626505204107576816848037278740341454274655350860682723420289561798213238894922726780394351962816830638665996046531166045796668428970941424106112090640231937991757427897409934820305504565654371449440133606076036641026771160421295459858009504666396994011651406818432508930981952966512651292679573043828746291703903501527544838481603626108922853797210186040259625505420048527746742105571389806520980767312889060466083728691177984512003707247561523843048204489470837759827304899347519039879876992348098039103006523107129204396263806353369910954618047864274901955995172870299715287144604382593517158061585804087416019281304990360122425461613480624349147688909095265596189140649519607124731883120110785640836374288311041304759805193027937491499801378547488682541844229097432364106013947337494533654305767401539441125334288416286923643923726567273297796361377115333586916809230873159199559141712473093818561850055382965551625157636081311451200475558132637294828026883064190073964490663298049992567363892853643527480770030174296016714629848767844534015544325434392280147498779329865378774485798810497408136201233628347363327263609564647721651412785866141991512666580162458215482074112349547274475208728700182782433133850034022968483765444760228185717091754180739725630337740950203253933806994302888380281543600621904749318538964710163319433810056445202051478480196812322259696694278592815061860458611285674342971827058681451702197548893316476852975783593663808354487060840427439998627563685590682828030416831446005257390847705307552952979018695286515171448472097620321589781158949995556276403745982911419234178014909789216676207409372166616474482506496942910796197847509996487289729977953354343578300120474593845801561861559423880954164936016573055708999062493181605465548903952725727924477033738870541414097105754556429420405255613532842981912606673604611134193547008745493858400683988537114214562051207267353263357045183423626601541202878495523107945144097633939551193258800830736974795334761070474482302036372534285840761224020221250139745848852648006596545443217927726016426650113255376815718405112756156823169935057729939517871899905574271843834894895951737861639801501592354672035778377944097452498809114794591323776340636247590575762278026295446939534942424327581268992080706751085253687721503534753182687331560057950100551207896116853090318087385860961079681252333740987841221686256758487588184141563919833935948148338278753765267203283357149457559730254611162694087052503575610624215239427250901345915442023080099434807189326296352083986035971163083487066706040645901831485020444652898655358956320798835676696668286364917663955780038624625673132183248487024536847581197173156381782513606871482042565915405037036337508025734797851792537737091815179045591797971036375885392590706200311560322624175198460358486620652717241712514560264246476627505428522727024306149000386431942064006530242469720565581061179375420167233355291230431030076759200129040026148200598779879738154753554528515773934894259944257831728928216070059477006569978731483341817183326437954296154305716193251596548274368962734506022120026943384822120995680346875605252686850831483859492485440019496879220982163573711169140304857481200141468944259190271540934265604902679427569529828206450436375903012284575394592861086127847496448636239336446364022034012562503794286646125321233300667632999713325243166231674220014194353293020843863706567980768348641356565011491120890838744145624081734476603910727438185401847945768536289853722802979745546437449204746101233820450131934464895407369767533329013771265372135649649215001421886814536400614802459262320484588453031155144458891085647450496559602935870627150803616717848866777701726699736066821164426900138661377616057474657113024158478386546081487502257715206152381688897766807981478421267065784628857232513430548185002735221419612346646646985196787267567733754823956908460585105530600972880817883879424810163842543622587194289927103587249460784845854596219797946331084927453794160735194023422319911855023455436967288897338973780528522775331263628959824192567058905412218493053064615187839856978129960846767385027205772471869705449167968189575126048769043512346126419488984315166940446359254908522109086093033447395324231103075202439069534120597504431698221800656992127077561327841933627421457627281399359265725411175376760229678797393833624537385413744187888997624102564182181463531149900290187916638661575461599311392326495876553028151908078228834986884358864765687488067295040549174393652756459399520133876639676739439835194400648562564531726196416386241120829692539284785982136872239606232908894136662861318252986584293808326599289666686113802014120919051264298509252913610696344632703004833582185441860780417651067076954368716205877267233496876320650003014922105924768455902742306927282577503584193559514533835380712013239357679570413888247849440773873712163561996604654701644031819845084434721381095006642355775641725769784959212635655885616365603213424615260400613595520963243280848507549311137244638907176312083795591715538370096700215700066894248175203960112616927388335592870460805518926913339119144811500787734885308463676113701344924297282940646377417536654277422411311741917678487553580988027051487034968652007501415307009732508488299287536575646423760363546473782546355122320192555074602756278568152404557242082623201864036708129939450284829033182812913867610984827477544701376114589283962065183824719197315975091460522006060469565469838871070777472014117317570185847488796743596781423114390830838250523222664257691439135374359062188749455213481957428427945307771329689984152562245710492748223340388503633698491384030359333083246408167885531944180609530218037503932749845597463741277850344313927074076940825712623461881671339935079899619893763091809079160879985939864575901978733344651537322429209443134129305840044707170210137035412816763714149993429992523630917227507965051630703369163676120051226076507473431158314293628229526007182959772182595839997652710093822363396331219456487940477597208607811293618180104043568387001386879166701604170290622608556282332074618985427785059782317455809028860373985588500972092773279567732607931462164453268573843447344736762033227543397280604703555712013024190793373176794425982644117828637114839594032147553769112540820850598396835133727192252823178672143473031585185134206909130603680436018325146427477975819332443513940684000111579413467733781658381684741210434516718275020622999803489793959446015880203450002309608864841184464697860567772304762256307669794905763194723749876113111668018193583678661409970445399254142605228307201032283930165711360558386378174372739243032105105659329242273145516823740735066301766534120548182485124305177695096978449866562626262787018998052382716914032558340094424795427556259918006430066638436203866669533573017978831140921864797136289901970112383516771469666845270008514095928697963112744388714417722865209960721676009889414667704353654871991342763721826717601985473701464501999205874368156995069588762896367705961438220963187423056614000662497701233619540182564637073298033263193903877152140542591518611258703711867523472404786187042018905750305808345991556610789765131430595814270406510665526915389867872124800441422028338932917464258952743442252647692062083469854896354952303726732920848388988037985899012311286535854926515959832906542095903255488745574377957298696292987244254930861890464159944191610777791274676367960501431423769516043398719018015292371169662734013904484069372330278930099554306347149213194237427879736663006710219323326699815209481311001773880660570566489833930555668468824186497175925499732537054471477609902739444262224977751436596354639395572155451741645428725213878011643379213592599660209633838044668656165714442722635075347482957446922074990531825084814131928465247073793945738933598385221729894613323431199642336989936436445658961132280121979193284073738809891478986119185220210698793808852649533404631445293317358010383713369768059089273488882027585189023039111606010305141783114114076763859753229200546415347747987189309720470532905290298836741902523497650926881607839424576683050657749168950444874685047150348476468107795695813276535983504619734315124224825268824484149550379360911300017985542406556560643087400825338017746633369392751866599818741769986170211913480944360426107849846054150207827352448574263873064953175140898388678632973865852166438534597523875773967948285491995908363653623551263209317028817181001416763214640052897118288505921881362901854632451466192724976091830254373087567121586801655584748945811147288031722516029505601549507050058835975824413549003859807153359883946696902580842842126245209037603867129887296995390857729318583451196558556904982627119144467513370350937684873675482094099807979859041202834134891997606482028629664739695775882084457049652649671527773757251749051551312999481134897127551144324718889265608304889591945005083898788950707043329141050957958353362329510697105305425866475867428093464338170422210100654752525094867674384661267030519193314209259076612134735774466515961955434886581064065577547292030936807708230860077572239660578124323221240920608043942467528324609738023384961771282763914820365036166167806319903908750223872069077715213857976505293887259434647370773071716446515020367986942844882614544869583000297390183354014174257670276808679818801334526263209569104937766714146440276530790131670027086895882300829701114061306442908714919587823963786955723935713641154920978484788839169433813777687408969789706841875671944862299370181667364300837305049654033465457886138878967523020139923339705366723843932228109697422063823606433514438181023085927595018013821875086799104560063823833934620860481804434762914233948247430938604691224448075088325051421732867941107360279457947725638843373314569847439668763125791805784940579463398672433395003718685428698836174618950966206156007254994704648431895559907540952549219024681855739026160196328244936667522636549117429441693189288680271075059790949410436457220062847263637028678103674981087087152528462906780061398632190163282404061688728577261841954930115952360912716813866132861875384506687191695376034367642718240679096638268622337249689963568363562669308528763195939441923123145695406730639580487229031173923611066742526986754321244403275610863039788630539911036825408631127471737420010469786759986523126965567781163200797668939311001673371132455473825232707459368679461759961434176666270628316708170842606398548988744669924656308119772813043096271506990747930267331623203926394062141070891033498703484752436660216760726820854292602504502367721322071937074439107916363708551362652525374942338059052348867536140453091514016377004379455316769610122098886409244841427914338594499621112841988438112595261887386415466446869322690892643385524960041228841258120917822385941560296077170585024932798727381824760327134638254034750267423436236529870546748659939681639388503734069258094721592940696968960955077119466753540896744383625524752212882068371704706451991476184370729433144110024293408352698098832681912755356740795473437026692948961981129465775826421090842557166468741512326484872770333204158073106324963519628594050928533940488962492567398399478494703620123186505311839574446936957760001119499031048197164759973430787778278789776043136775467520369018565376784976032081068874494180351163038109309175473608551937600987168225144684129820764385290540004922259377816720895866619509016219679500324492781490271447522164140793927344364024198315380353523568058007414311583139689831660320482986817183037964104026850338402701997664271662265759650690095764158857030045176324416200873102861069556830997745667218075976733795859094290937123014782167574766691929581200160199189435782274345516134684264069757554050850321391318925975436351138265077001563947867036586460493255952546450886514396515266896329802602566513284770619387309325635250524337910688141778278938935447076405833326034984569691445243521763148525726141641720007563263294581715422520253539359806511917718919672742118765380123001824392866054866860646128579987138246720782497178104766812495588609995185918256631944466916327675729653020820032658654300115267669097760063708047261099791231474724949642972704844225211228165078288106621157870708953352954968460591059455863565579566367049624187951426535863159064742942842184778270226315990587417262512896333881416745491638713891703188780487131623134599741624883700806400706635169076917180997963047838581672613256060398133273186168785076499133250658302644116001170806032139579251976114762662684833220596127452792812807809885419894985920563724696249202916717621623801495476787842998423985584185480902324480990810554567861776420860976076644857663296794593366389669451623906402733024560418590117262403809741241446880136391553501973414266553253437930824810934085072891701103097679265635945423707474702187822376020375865510545794695899272263665089345380723181530858172155992220345139194755202047812446338396326309601017150969466573663268393515527305689487326157117270836250316948131122607796218378892647735175876964579639910758631085345192553865541904512820925462363096599880651601467187372044689627921550651849854308793126076755407600884153183726031738481409695111228635575845576276663764166391527087208338554304729210849559904313715126919392367873394995712991813436954850738749488711234593532078715530878652271893790020837373389483560278365521373972354325756953221665048084326288537857373001146647914116167477389315572040872220853067317652438966669468211177335224898208336291661439384916380656970519257737444522291643616093609760404901016868072903702451189508740484695453342134356261533166830337717791926427775377128096196625924508964299393224838464249146198285797700590561868376806584776635538633315214802309278102110751694509088873350520049174576071078796568934416881524124443530990672479734626606206990771867089495834200125441942927743886072730552982619322436214353239567240214158395796704730570277342919748784181760638599267410280154239870806517665615330696050170949933527533467554448069586576177472498267505755874423891846871532504189016777136325774133599637675265920548184602641837970676658173324373643281088685393871683681239774102852295900578574589064289000885384775038873218836035424885197002284614196159295003884904939208785628475703511774477414194611538481566349250425535887389994904127507059234242554918517349306350765621472635808440267208453413471740906394902079899738847792930682961895627245885946184541278360116609974831751507910075244573279209573294478169930043800378831733072944823542164635521592051677640438868047535889242591323295487120934191286502283242393359582766135341101590761946347255013708565832425490305591764120910677911783639688626084595196721974510174241725096040171641072557890079915298834964937489641985584980940853196758886076837415768086911695768090142898675890435156902855072246981005536219939842560281454979625256621811057004808813232535139039791906304182421940177689695435445968596000065561259915739306568740704131010793033609708018786550675317470557070861531796222409493538088778031590634081361015806440806571316962230152919812851418313473235312830441973607678959842677381526143434186750826739274585182269594118095285522754015820809220008071211277386723081137128321490372507272517929059310308725935933952098315603164249416959224883537951387629016704843957516388030520308410174024278639629454041143497021822043278394547492948515649105406667097089875610241167676725682072975164830674406641120591220818137549238203836944987431101159276699899587057425534267405653996070617218538411111295892432621801723283455968394281360563888819641387001074076004325754989394289133284517583447963998179305730591371560560079291598639402664217742941677416860721819581665975088363769937836341729765343461358001077077788671715780816895962670643393802448269115625195494503413859932743297886739269797571823705139903841155059949471696969315873975744786214410441726880848464159939023436122635781991999031982380494079549435807810449522440180683135392039932897935602970738601890283512404782240088075330594749668842977019283950743922808541238616350491772799820973333184040057143265052442740590525475812909154714485798805701223360904048552826077718096379524402875942689690680616633133236265967218435748977013788051057610056360282770255939125666208467174566866377174771289156699883202736801990771886984657460614898059596025842193257244474405217050759048434320658662499982523513264526583728735756284121054002049193207633602819413838023685921861524551385569349749891601663041718970252031409769915974988994743146277392652901368199331602239389966181437902719360967003065785150039678549740766067405237832898156208095246070233632809919922904230529839580038554021188038040466024171518046452517997272953340758765569857933293031921797657427457188631261437295152845079440710454399334427808297934274908433623986974943906068478132176057652767730757276795430011371834491136289318285444253494348550517771775750907892976920661464680468300160592206841435914207998303368944487447817497195757843441291078753806114359926677212635707377062404215239872982059082376995309084141225132782398078602781716366987403846783689564608113454170739844695297984240961184921761088642267692935112231136683639895391724551595827838945910247142930654529426405955896927008363230618287883293276756534061678305572673566625986760127945564010377930940577786470654043224049140767898054320389158424795432767494996669624791371365858113721887372207148432497220180764988158579788825470544617941506364717160982239167076321407612474091176411015366675326184489986771351633593657264915725146739279186591742523715104537385476001104581678534193734340119159551116719262555328534834100449231240656554280332834022068776912859591211442502416751770137922609965178400951831418689090332440267100853161835011553213621736014430282231552543694985650512427536276541070783853965440710320271094855871177092250376519613696832820922303794347233585385209863017962389982759792199925174833977063783137969663252255639789420692583144708183478372444594722510400434228084958090813264919517895242993864536275763210582950587828116980517217004318781758166528961548299966531508029829735215088418638829210152752947435638368592109960939511599241849700090239193863813437426951756518929509837443263434141269003081067924622948635124172681719252301784703833064240635262825402611893380148680658585966524697637624305169931433372066014477857039918192326618588831841439552517613774373739127286044041219705253297301435368728311624006412034834696574398000864455877496037904292851523971618742925554843177112004004881869956091584735798564934553734176398284518039331167561218248390212170051989765849146275821234524324052661392713947044987860730162209111692400281824946593119551117483342964949653497096561412852482685225472415065229647976588432715085276417416235486786584680267561158475547954236989736658157628904378442458240112024865772341032377028101686561624429384965938277436900209322747702709545621987570303355954156762234552814499490235993186104213819459078324329911480020537576651568850332610846931964830540939776636213613580540961515513083003028863137246097541411724844908283123608128015398899133056063029227242270838179326073164128642276238261609515546515431561641291646023413677564112204780950113464606939634709844068379699954605884113811266807194157012574160938548728686224195075340790812412003228185645967096421733351599661775380021608899451474693689106732020295706484624490056319437984691385486381762413956739153653471006079816205153412042320296534362904484022358900046106019673182578677210550520912778163843335614572326531034275284400492705508759108880603278244120681259145189436715936283299045458642765326985867069873502463879017664251861498110445458315534599103370036088499121812302355512516375500107316950699590982719992947058049466781144940457693824532489405745281272137690293080444361746359331274461141710504505518997399277499795592752951469500044661117260121497918434901066592934614187665567388103482146239575831987711230995576044787572129021946480518168419234426662193266566455031192226623045216774368705437758702411667181308768895331429080343824427567762401594222720603957674576375004833557877997207697160596015846172245124843069707505955462840413637063132032723536446375758942253357352261075029239336938641973433740054989132993954445942299637782633952300154262479912971950976142538330953001354496867548509811959821522879115647467524876081228436692813242410324545803365358521052889916759415615575731983073020560884745623526104028724931664051472853436251154337471245594649903117971036434302054249369648868024394045953013240755427935041900292402079702968848062261311431836548136429392600250191043848069010466855190342240067768516151855733306770787006799874449894522353502096121257217645158815509704360810250798058772366377379859320738476533390952828388291341684544425690614804500289555258546629139906831918073637646376706762740290086426774702262563164777635466136697550207046839390511093557713593495225528095173485813851397214085167458586352912336035922568919617111487747015569328945219754173701425740780687477299400685342904643251453393641897710188928701877053595601209355791608173315672959455347802770744203800097339709768251521242467541923199175928818677204239735749175383625530443795196379750384123406293765707457145321678848960260323812434854783763120055006408243865075637511389848315372558882354921886633621170143327925967409114290080987810019880852148173767038083066053971046633568167837729864482991182614380390123749518330555661330632822151452336188987242474122988418419112084239544310148077328478269950487958672670601014013581982219716847786582003701266549838867547752198205561292669378347950981687892568569188176143263171425819912615779002574458031866990088262487341324571588874678878470346068741832756245275965875905289764797422640554732803034982350015858445725668426317029826114522031986705633784688486930924643321864019045247309477147996649867495238277218939495386483141772822378087475694541214881446012394689165509726144556982126774911553656736662407348170465544636824410636885736924717687870139749524902382247194869553840168397418143216247147107895998925262873502297421673610142301327415422048215933222305991720369544663548896111029643370949614601644783123149217704414979425205292567248189989031741099176945703116696654026210964935331480004835876561796030387457890949571094586969877070473983596859811576747302571377062551835275453146336314357224687442614631468227015089633653403610572947509991530447923533635457981175312388206266139879843257673502242262770129787210244431456628064518410737351890041634673772436625485200248745788349417138077840041950466741900430184914360068198457637153870279442029692268644290694260814150901540704178381730055060722578099233619450725701571539910790132825476888821660458949983194728428326710416070694709532676132537915256289797501463639106596161889903951388752007788653119357800165049835274359702428313348820742897366278351234859440099267440641110238203486542597073312118620854782430378058429590242511114815468545373544317513460149499020133522582071353080189980348122920711244232811982112338300862050523113973687962329924511504503829930427501875623454352509291740549934138870985365282554268717444369826899666636296320969689909234301335479113323094864386483773096269906639183783352369794192691368423948989118910823685893987353846756666908764613482704843843567291957776318371223451818371340111767062459536820878769164366101341648964292045138579133458816560031509375549519506683048934365514800910974877935947549953354037531772932899274181614826895750330224455775814582289428321272368035081845399254564321064425610124975770898950055200990213287159569916259782687043156487681029488123849694503361415997771545163107253483863920000337325796061708255469726226904562410377192204969122538605172952103791083810501290277779949166109349033603645237367136230703959116439945316891267446897851025470316903965133860645898478103357766898516301635619549812780320099278791728724084099200915134326481766337338689083806650017980297956928898777109038225681587491074711125463852163474010120764050708138433962511094640951342248303904324017440564906952051409172438770048074606505976620976234419943112946592157780901874087930151658118371472887175814968321725710280998966968864008608142027590613605499821844187890209021975018923680596734648388073084287324978124029057126862118036211378687355754412855748303794862866369486214799941155577676042113370862998521685661655410088832512078795844494006847662032495783918515569183647157493423060909165553158034359331351009850347503183038566756658315708053174469766202519281116447455556125601946045106168232177830935687752314458133662218859777136750407157486951476882152218638821536370492272165498633687969129711864910776472380277563212698915181393846700940734789808630772099569691903454275134281644268786567812508282713972391479336946001369471036359742356268262546316395040225090949276261196837031402227322703796665302892053217322049413944132773345294431370826945964834412427614829055008770249196353697117671190879904952762010907609371542441559312687342131480846748703974194925946508747698593565170140358186574090105844734375393958916540824966422459637427520578967697292236265700098847463265536746109195312640191814292651699110317198090672949796499755160372540382801118717423981594347757850709993578673103144664201063581526738070521584363713220622594293937198738218766085407933236073251513583732988323590751631687160896071561657464368988879613214194500522360122935293138593253882121787878277566543045937717575014699695530818574619600945049310154576724702695383644641797883786208023779693792172728428029300185651286732934366886112287739283635934439008141949920517188364686393788780119118509702184114190672147536776537845777619559032479782353497301902687233410549109305513852017070568750589500064951401123027592075050511359984708611191003541991001522450131454554657069118296953906174363882180439916326012888572954303308828153695421862281431996656553940224223969820514864485927998161950131357625901791252121884592550046070640988290826289120644284219678397193925481535345187594566916319532726800266396145521503167961828822662437739557704369198500365991628834058453419418839692456349241476888660181484565669985237377146957059042561193059336161290869865042660091057934187695366692936190430343759884908829845803162074175208223812486655771173235532721291646995326772106076061837354353398291185081802998025384525946179968822322920328571579319442284583044695139520964910704401183276966786545871193429992948760616074165947971618555812883925455502777771004426975897520538890010632785784254315103660219574147624110282213944640063816213605122489035844165742094627396475128118641647533368969085686602318789840175531745889094294384602113552686936800455159665466866544689365897268843115097216461039177434816317945675333903229955549753329888694493821515676856057939672799220548380499616986425956283864960795384946890262783397998748807032175836871046637503636808474540536528664808110532656830014199550853546694453748502066172430961590067988431859211537846254051666400012784399621816817388356606349912089601843678052523781831065081056283098705900491324664482547571026127099855072949120389635078080487248056068070007535539587833716369669000229162928435734542461300869886527405852942833803789714231021013494693570524469172401794191199227796374115987392957355269084201461869633640756420727455673188157242278613992100407556403623045536622761084548038470038837025602250007368783304852382623275372119246144451116295306528777289295700622000452639384825495751093892389717063038073281379629835773969778815758370521808929049636647312454546198102516149040720555611240906223702566195191066580913010421617347744771022195614472165279178788566216600727990310308423375875059876042806521917224927036713698088498317941130477206416568950034481744539149067918799361947086267190830788000399136851236843820841827038875219363294607190234585786376917329072927352132720998116457283085856355661393628779772900047212962806406529899386489248816872747609452124540559379938220065501731038476038199325931365308216147476540212790974490730646668180621074369389430701231886255546034252472258183898008444454546947511283286898233186594388551891469331481496883893006186049020009103807732650277948264670282560032943227603645493653808197139524335888864702647319281137630267223805309936670817881162098021051608516752445131551623802951215041975874278921064240123955983369584487365114068757685063867727193567487798672336211245045472082680694623814223354999137742980178029984513425567492211265399873021646731678370470116182064740771279094768373875386955596075649959672668787186363176124699093854438650126197037338248669632677633625162593911718406005433722220367109593995241140711835063939772208493721492081832295124142580063409542235467538259220649129827049007766931443576578882012702938896039203434549119661170033548708241001490028572285869656011091320789559283220443631338041750318682077272657971640478712643546785420706041944029811145387026095691441059220612332866251786766826360575514131054603987166442323494153694491421072196868985804428643312067124556255573408159615428946911431244785094695623443512971944177794922384203625383441559986719131658252987269002327834981326809212884644381949955806976934989863971484573212999673508478694606284521476838258033254441067023673579721876232891112289339719422884986694901660516786402954918043246678622643506286146334547146149541041033352885529402153720327520469106761955925064068192691110744500848989912862649675863109716578551362379842567778891216255034154449911263446051959954341510559877957227140156157475755475706097059682151127574927954191839878943728771481118182670871682905922512140676661341901509041213705657338740705835625069972731006134985285482790226515043828839460297658870200962744436366784255116896091114771319872261033727295872826719820982867550286654607913422807516668340424584308693657367440259405739560913913131282521542517497909846506105454368142080596173549340835184324800155601315829318258613304441415873414157253950331901729279269108208088950692627864052517350243938770270063875703204479768800198615007238949818924643390889317237343525249987066311987152950580958560896154774232112018718294538479216673143905643827662953418388108537277553026559364846756205723419445950267593589319353227058295851167716320602416193241477434824730686134386829677930550257386423215835912875237890356263242920358337838713843957190892122854820813842969739091181875295426578409280844001641856653069967361491207226900148745268589170855930759947969774646565156806210801006314122881075734188741559778542428931745960110795098766627019142283084894461518932816779923759209392611722446547445196592435585542197684927786198234417748855288848785635274381866670352084107513173357799214286229410678607708707583696787720315469444057938011708779731623047091197254010218407393667669234344499577496985106762185091495834292713613421368804893319420026099406684007320019402579375876630597810196384610834129353789069261316380121434090256844264984416274769023382853290939180954450984824588988737009595055152751423777156828721589410396755874410552769784136372462669926047874081286264902099309713580254315823581213903503521831919537077475294603515387084174152247672554117925910470202919975235596487426068604234027621436482471690716247879449805417893657850123896526217621220865560996927940569107779752515109012782169050996151017281612141063651614021202384136287227705703139247579540059971967952640590190206843135646417484238748582654330224332067653764968311602380694605377261495194096986652795306218372182900520884914296622192354171046765803479211336528898843691910204446963234912765595028751856029415649954692456849857499594691632198665533198406653053258888011657036184340519263747101243825683983764819758135296438713178397812748687977758896532761998573046816223377699126524255242418920401290380362263970597260954620709325962766630882932973530099820276681642436956016084332649048252574879646215953674695975584175590979884856113563609943033693801260891905172618346901397815330531432216936533651342584165196585177301625752578801988840551273326911168005013404547480549577599194850150060499908885119132198317833580085758541756613561913761150173430268334423469002416456981193806893962973880329818061053957036799186858418605738383331324462174856127863655174113219874582252679170347945658439302936596696406217167174354989625616779567515254124858486530682430268621255227425541557019107564835750308327894452998127995038707137130945865466176280188544262231768025575848116723924214386383920680730738638160355221108208140415077071976277702838778161940496090834956662066711379008319370838207384214046084904465837035211683955040660976228523952122842081896736149137147324901991251366800613984713504916014605570779012466140634378303219825925812195707809339423104951563649271566292129955443739566687933895962757174398905098216169213914623540419629726027950555550677549074672177619851354857915885117645986778180323667722318599257657127085762500075535481066123010384939129636405878740050887383194978879812617282030402984806674497438084151195387677345619408386243411032307462909071849661929242477435720199889832540393785612773332989487758400889414993477956590326719186184462228863012706448891099208801214645941851999561229148506597979533165410954310528423027609553979668521179382120420455105104469965792364574264364172517439040386134410468985412635271497412334010968703120117487127947413592455595520262967357676160597123093740394962282827438076374974218614066408439152938100759645802545264438877661511516890558394773545733270725003331869713655173859860458941577909760169361153198357225240667454667184797207116774583786895659066763422540322163713366435431611421650315132265418588618304021196122812048126960178635761872355915230640263909252966817007667428551841770478816525138833098746849714790644761538869080820490346343715684772775740268320976459789637165206055095913390256100256471477984601975325503954494866644728912971206907451830169113252876138018728093918316935969191022627678959461526735256796737054904233275493435374330222827818583514055352828193243453936844293611547105312131534463504448085289127450091893824636331680024959390838043779579977755021340686879324670972369618882683680796082608298104903991770051746848478522300142143049420190192352090733669598399250333125835230109559046450027918562047108252297569734281166805682572694331017448495197953887733711905222245618529799654085910640345008945369805712750974711627362966144003732091501669645064100469518003530469509506611950968786626272100446770791455304542625626985325128607194447767182572655276654683680719718722509177187483372143408194480292454298279373019064538757053100029331925892607191659617555263999277661946105976916093081656384200098309966492039083402169864418402113694870615308962215786847962178490578100481242524640657136345422650178135219276204412701000073678551574589089451227033796338092345521917538513762462167533425349777798321372722196679458320709616402301679441337553553191320827272574029081781671945970659472018710612673000876532536470159633293674409652634738903554427797236364712824423429804916555627722186182202286297376852566023606998558759411728685066521866359878624643321561061477761927628911039435728169915749287695224010246975492710994604111502527386303337166157705934446054234488414719192785041448108893517950702278683903774977819519254790368309488583513251126697578059170635462441709901856905156909754717806913828061449097360721386057910272287317457803832224811566996692586273176662101484719551724307361730972993402859037783010832278841504470904522535390518088982023815240206847987691815371783794634850701153913404205532271046750992519818090291580494344121255437901382173446680223194846323367888031417704224570475093305402798635109687620215032749550405485756487378733243316024805858954267779226523179733064694492261432580696477804316993032692807324761853945912218955255810248087380587422815986724702441594816515955664580324535351803023021553539328293775755959435033158470980722279710858809485292041132469273736758596034876176890097658415918112648036473264188343442034452399821423397852049909475362589816111218038894011378788930919343205056201423442219795162692953940233313879455694904537373986093669205233305651211257725130692983809086152158422960188333686682961812361225718533218943280957522092624172951340509525254610498203075505162829801735014799594365398816941221665361112681609761585463467847528792378632928105636359370322496350792128197336951688002812774676386237995128202505549168878852405238145612636364607061897861347254137003038723672260973603613046403613374149825729065671862228520247885395014276698667601935548688136976326308482562562976289734842118367294179407647373957273156230896840228355905242654793955556759464658919060549300548993965284075895179494304978394197782311725160264357021152398244001351582136110854761422509032454066069572184622779642755976612286673571898003910733502884625444245755835623812966559241329151274784140864344238201789600793504390870009653403744586750494418055888384739837235397017757199911481688436843570612809706873199097309130419055569484357588692082480599252799283893924789168403566473385513085101744203006166762682417593172901989574643920418004012463772627131407058348073233749217389870555068566240972233146088048965956148977359307368763714604102145199686162945833258689753554112506421608970518814805861741495918835693147689785529181931479907406919475929645669682988990847878748930896076652285626345832924817935913851707483121571928201721035485014116727418681623736705045690596769991892405369754159248771049431794414491810205790264689228791509616832816951881590146482829826402592493373153745947888215012453610686602875452225979568932700189653449369348274440119069256168830085688619573911293105588529552876634811874898915272983764466337644282399993995397372787152668682080674062633142333036648247343860620716159223768480103184627327827751562670367352672770725085577228108747537144413359263605782420753078042910724084150738728392921772387486345561049763991763716493512282155926886924467843824757403720562218005070474005710574318836497005709692704757937164466842965672055344324558888927080556093409137851425523162639915756949417362645866223970216683789372695519072811691358341896494839407941138086722941873610605648165760600220601277887127124133767131968253771169486584854859623033309423744673063318875542840976410018756729002295247954112667991384875443329202997312398419594634044551162685957196584579069430295988331966322874814356715394789113409380228568538063397435205955222174743339149548275093678610607767511049249185421826819765411717756638598043111614786860619733650948236427073770156259012929389719056992168708177445747458617515688648085791589893824699447313507784562498528678517071138548716253592073068653821122040025693841796710124907010048733281203452668885372403170279005134791830834671509722233771311757997770593626986073345046289897246589162904754585125821980894051990974312110608051177296251042822397901901806372019781795725664454884109314584649359269789816238239197476131767162256315309734015077005494768101877180395296592389864170943652413674922388202227910722663371110691447163197761488922609225783228392043168877202024296779940017304741344310311972156671404834838736350792494511311216150982290851140687897576434907167196595356969311226897240243452085157181374006506462035779364739294944108087351899152415684231305323738001879981888621260159392040452341370077556939120919922457604405768985410169629561432129372267180952634377303503664721016688919096891828427668200156642507477667173628252712655530503089885304781703048729836836306795547752985630650262592880037012541756975423623317417632236166050626956031209261225049448912735329452556449331538486354914506094708534038335267354482499499573787082920564992980072851337198559639832116685876474425773743841753574663754909948681898010916893720979654646946114154081966247599623639134846769332728973961188700943289434581643783678991994155598509566765711176966652538580553216929842062819937607572811207991484940185462512401383242906791302813188457356242114140669924811174743571414705486139456207649479429659475230903815345967998468763398111766585538872853784519417409218533388950346216741573715052468693368383366657361716436799537712988159879986137244236331233082818881062316570634940951748663384166484843236964634208478279041468843024483321379755975888769080884249217174319128091513289793823089449879828087139620418186752984607904651183933342505357728835551775833724196503206941794572265088650152808900337090423066154126188946232156500446043243425705448793356642322481526927971408204614484702435201986610522802671131340242823402141154363832749531507072687582772047464329019524310540414456887006717738955006164152810075985805228319165488792240833505515088704391263930367468050142511760214975414154465301085247346758392699649093864324618747303059602214967698845545887577689582084011099883152632831421785002804494743228990354480742402433349750277809256488079634385494178651119009153781064513989595901864645570168677029615442417463197945312467241144035701418745516289371462655673706919406451740556644472037087235075438063938870980348570739661089978874900370357707834130889629145216272162172245466187560529268217312382766262479117456046946125567376748344967249411737733930743832032315471384398484396164466307382742101151161869702126120247928865192091630175905128214827215447198812682670008546418395124942548647228490597730896651370876307829489273837490934960836051628944227897393161392079019323942820143416051678250687652517903188717058568616813913924089593666732237835012318156685133039976651418871780082972376738320616405317612172009524574287007005939585747862217054576745081292497113736134171089561511519025724214349581301879428117700748505246868839318457735051896536149715116669585574524631682916949262845749214652435187258872398575327637321733243765100910490439908874488825435278184971568948322056730408178184230938174169145987041880286209725311419245049446524446065529480107467400141546678320549949011820011862732856903341898165965620402936882646472359562479125735991008883844674861599686133141521461930659694994342845976533359626983071121335328431658879613158846294132885854499704491353958431809178614521582155484907649778411144898639475767712701477824115310895941133222440608845081959981677507012849811258631340899877967193870346019037171287897280107966506516666859898983422685204492143054949736426569535477695485298416346956563636359413147898836842989155817649674536474867141437886711758179936485985325806023345213537449952554540183869648838875766134987015543947681239417993957814325602809598487586648472527453301540109012038774777219545206964316525641006011141739796820738599449885162228421699436170615341364986672322377763757802773324087214706100548569902122312259753232537885312601358746465333026367671624233864189290876270785179415126471465267713079923660447018631288297972627801996588149529434947121165151240261387222723779350555846478371129781570429013313885144089408968202931931718904544258218013125185058478521247724143042101177676210968375973799977336225849364074752712953632954994999093492946574107429589551612101878821302272146306520886346805212073535746755104621226017602623123866084039411916858097428607110473713512832669235193987154131081942174302012383699913630832134566415629208578394287999764252834882229021088505134786137018437253033904636119842571687975002064681749295561989858473988284222622309152351142751150572636262765095178626355152288873258447059755970381267128485907200915263703055000451996297893005853787853653586472158228021842667642631902585579876777394280754354834509848529898547530528426392064793102334685542908339205733790777692602026727183780232886269415558648629053627455741871772514609109341163219003067952656621569249364969467368639239718678240647989373336371469263182273748798106449617775434732035515360733624661459435932770322227753052326432034954264103337649591353627362814026929105845126085109019825067763288113655954813867038211970269924938564949235913461523526419522080914759078545859155337229601005547341676438749159624021606025945961917997907681775950821008494666811488492005318045281718325845070955897716450829584444594193342064325476939094596569961865062500832261384216731079467805043174740525114611671545599786511196411169096764076232005447315616902151330166453496533656898944205782994153755489785179010869240839989286619680700587553106914103130703180660287374843773438276396990631765964680352380805654774678469037439895071661089806526833589365869419883889215365932269477362665915327249802267276210657494681323666070127070899528354183508681103980296310393231165909798642792518453669605991267372002934901528370895031640568248807308083904371558757141529690757668340480560939496093368589882411682987281628222430740752235246847643493170035251384713869489994137273277454332017413310425691309662828167104733983250141607617545539401391809809970472924471966934456356275821148752298015002446262872248698963978140864775762966327954437903047811052629946283766646842098948735471765942558338114940004353233593409705030051990703809797560968312847610484705896892862046276009566057392116940879350772402904771536455190300757574213966644869544597880637098849335889047486894990639808873614807221266570695730104614954444414670815358718094684015625641696091849830739621742021219150055085925577614012585522658845270757733850933303868728665898730137747752027313583784546053895284060561389550709038881878017198809666121292975117338346747803489921037610432583422909559060475328144060375550293547310872068207173390888709482492471225277588082373378061357041425827049285917790214107267389271427323901900209717873425595101616281354543370133784573069497343795047043961455834232470827260995009144330652774535524054701545869711525487217491769590995174794557205643925802930399964633268859928423297818036134691190036362911355081979308306286621211657728553147474298582167426298831388755732940723859672751202562287036431280071432567457240808209645347046843405926198750395078029666988303696838402151312448585709564372842981148125127473396966483587896670776428742522030976759655259936451717000284870873171851563683048012181445247738040214808837873203694582338189721734547983736358466549244216400408132701812167066562572706079303325871523900864614106298743284932447906399459462277007126571894149471333747997531360606656927709090521281404997521091165459726468435172390881609568152095197580960542967542747651892935752952943286607825847531315851316143768537427160025084819305334077079805647785986958119026486669404770624010971080758074297472074407448179537715865828703368755418625570541833274101358739244532894892644616699321269535050443482192398203885975198590950820947985432375731500379973056172824777305449718025642913704675878654534329370711761889621326040482818225139663592707672566242822525067384070215900545078442387931688954370426102310890911778458953439598694736612738297858126616118787806595949225898868975151832952545278106179965786381543958787452858627870095814400762386515148825921998312247501000395249774711001270308359428665611819298578265126253610907611829935423066910932110624897177140419543304256117272549505248593201356060061930833038292503776268799738190024991700958291502279589937218960060850448233318208467169504887284910216149693149498037028466736395900715947607086011735350418380475654318823275435359977010306400752251858547038202817145462077295293770172311652167325304567917857810331264164093280463995429142906931331201403741195886739228860703429882698199187794855803629208246845385970998880915310704983697074692993214077797802053509826715493082705057162646851173936375953766538348422929805533184493677374515919310522038873707399644670759581223008313898966091977038433870938501153314042399439680602775447611116619147823937307434942833488479522884820706048818852011305880830925909733961597139374692256565651898448115114451626641864997826129024024603433284912012324409945705299966278457389424383106832462742086580341908399247578199465686087582123464420238505435290443853879974602244193434535366865020388128883904798022775895865136708297077528939485795965130345329692349799896441188486927171582494638934160614575136099016157267592898736894168269114383526733940792226019068241400990002205796583578136060013190240564361445085195112378141997859718965891885704779772145343157360500012733488982844916521514622788366165466359706396891346764882201220153161796401909402669710016807697739572594571484549959659341243487007545112492577737271324766738626744504455641539140523579246395823777093475085639037059317411563187155203315594281425992265272747520956562511112817901419782039063760159623932824334828325470673614296006875937812549530932807810281475041378509855894417295697827942175076216077752672503168306752630556833266049469823413937713365486736632839015293385476779084978875790893240895076476446691990425611205785761516718148725077361414986256221098745503218727893956776234975691301887179847903926098427393098687725034553521627790648288649945307614564658297679972987407455380439281199814193069890319635987187027451993725317359299109206381442066299976083991431852950690749234098923960065412243044628714060356750456021077081948354863580415617712379437092033611163884314292801355914549288845719811298626376879392548191347239719400556854971548789087015737763484678347630030515577245765741609559834256805610565524446825372688201009355354725022217220767069402852826004768735369889515843641946240168202924061178352469514884167443052986500533511522828838245536795902070548176144878599529563341302649546949075938855887124397706886375724611880528207867806037025049810686262960981799436324987367245334060375884338392753376699011404337436523448299141887651238439357144959500194892372597706100490903597850895043285780764793528408351455527899376553399263081530171546260818821977257344260624107438294561103162384613364121836181310333280016336251027402010847803516685123220568590753108562586343501991218373171865007856449444259289236265576954426929645279539824190558437778042119333148504055635401731644172781176364010316360549671861654127778292169566798802404695473333538352600207731205387643319385033975070127509850070436018171851371854561810378518562479625843472687870378782977901036727241383329149084116360724628491901495505049951680424599139605450487522565635503788992439174177337620018805447174307284013857022083625047203812942755905527142334115126115749551956971346512873068646486697813663670169890916094568575999575474982555803040484932564644090487516215549959894026333152990441132218823207666780587582325939257435961945998099018271594042368447574365416554271606564616316714487071038399085029837198260393193948664173867589419111230602322087340498251864530177645251409957250075014113382939511793019055282146260251021974641626722519371023967981114879312623935731570407355928553722090613851637906068259422180697380877433515492611989144694662852162392585435607178838405340365643193444972558331039990198336485053269691321192979896417959486228352239487087590395151875892836507534101139689078811454157784442925382304579347483609187731662843996927554216969538165318369695532578146858429882177413727542711667493681734909371509033198802515580355623500948214013648411718801142331605165569098297379905851418274699568619294219118916381616710185151427127022670583063949066474638158097414765722513262831695802221022996001231930187812705180498627832899070161636246252734533678641713882336615004533022400180485790375241839057327973978559660994525684137393011465259263074489741047928371424978677114243398899803956865926930037857478597429926074488727933946559674450576094991842819743530183302146435267743365118889039881777819984631599787856274224972450231217247467530814081857632744990870338622310640072055017332064767871665021297733273023374120869210558972843910688859257267072686663017189403258361013641987563750402554147761580238560671795899544412888631410202569882851895026057005829266659351221027863231911527203440756806411850178895733515387021213386562004107191113299853857684597316308793060506083264722017765748733166737941260110551980929483806050656883321562305101192692724394466167579843573437470927742980710856839731471494316684241229161780303072086077017935275126919923695484439766558979451994904147634360446740908975681488989668951706129056965645931160749130145888237546872228364556520201281510378959658203384869545408946784705612098058053127023419963698657988721772469228597354631181822258828946112559740498782401810815065045462096213595314868345200883724566112277829142297447222237953166619383016599583058566113727624765265657395761004068892722371988105494716150606426838294487284493596563122300230451137648426722339867256826625633452507273276073037720733413906772277534155096229599753601904946930897920290649450784726446779414075355738731814467609636303575543500119191781467594030294663321992634991590188172865445684312288532407167935198531078038909720430981382148265304211086969706729712848057530489023751636213386920502661066492632579554427336364597117976510954821297117485315267255637384836439628766073119382553285793208710441737576897157558745494309601369382106281386130856770594327642903318442476620248184051803756920850631523936609824067384355924451739157131442893371037932602630621228816116220499629971277923092747170375726139280700618753584251358252950390537517067215567379706277798275835950884452153225133714916535809082688602821985773778669935590925594211280718470901991111151498079297242455441429312420083762884043921646384048855094907170146451482969223255924059688418900493018948379898625282830928379313286798052661588258221265181096658685705057421654818168852802994610166439460368547937094748162603550498119421160814688479712128429845076436417028604012265077286781967782326126160109999674547247448017701439137106157433244484028401729911416491371811946796606509797376025922078654570866777961067372954682110784991068886774455147808840602218789847216561171139749220610878947155880781036528271160964237059662895897116926754203239300481667215394582686191103784804486366309108923899459325753132691822980827142935252692471924672480045105739757707262600324751035309469756885193685908621493517990645755111505285782688394233238884804845157928113141462594901391280921062345210532119962675308785409081956704271294789161349606542666346420715263253506563119776033052286359227856830663927389028268067431105319153315585517242807372527362565831761078302522464840849758213635320442524422155604493557141121710511839393241760570187866703835448608895247623476439869577641131029492119247458147400609315246926071976225247827898558609375762700266876560833136489784966477052241637513316108546584349175016646095971014533740815208589645010798062257198572064167793823409312243865072944931405354232353710022063084876005531741332016421530462971467367914038939817153399100880182728915711683905153126232679410320247926206180308489792384918140727437852811652483396997595155156145781476847806533664737791148426915575693474127450340830283224977813171022992564954300352327531493091641170093647140010053143522300999874955441578988901021247124956785794487768655330614918342831014650376934790693964940574921338605195027852401308884862384724518376227320156234005709428912350741256483633677295401385153938951823407634453281940025876357949911777251393682485267543480706564188597227859530257982585079197343337449815265248320052136502247657263283301719167367981525010464245034339780971962587799731342662573507813723129422716685774176431427377560190383547836777626550321230490048561827518337007772897321560400110326915286470471932441825606319048870054324084343979763724445844273554855556978362358450768112840646431413858756556684344047009762161654119597239921542319448726034958322290599518405286743592010592973660172333931728487656050165061646853697434749608633812045566615800349421819640552527403858630322356711008775014588001955449781803970222790795500058646000973485895341767102254368231719087769838194556121161305313534533267794435742338703293065454786376578565322015729274908493745089194729496512014784620245074949277525177940603465728522676554562041732342098711303036943903718497401469983685237062102737418245929879288042284780631285155843801265151810025825143469625784612167155102311529851145627645560648888600390922959386614854823136658640571240252106849389600459217482141970993409575924047400442784363627979150151916189306378906492087841882916756822922515909890276996722904780321928545140783484656475168170334969217505118885318380679300443671205377268160231641198448258218728595943829505790447875211920942921838043864526619565736941253954895717820277019841352292220604108157023833302786414183675705164876877489410001137063975714600304800535991914875632612614427406484926276280180891548450774433975511244035605893733718430238386466157407349870005808663071343230010294266874861098998890552795336754058404346244102377892489679788581070482060454456180660630084652878958414269713929041576750419127263238034447799855349741304861855757662975288619932489264738680221365576024322818645117234383625404298270399115040095481646402031116790435027033600798983309797212825623967462704243673840944402004023028747986695540330633516069176836618114818418060630129380715942517571471685905937150452742915762620882044503097409986740024300572469401992193155716267731611919173584211918807180090320805492009563080439214806531101154951302660541149439407434253964132553874973113182008214301882481331430794502778923172658740971029139467475700008924650409210262781142235022026538874616300866986555888081790536756908407665521017377143919702062812352521290567185381810236682618802932278988717502762612982433273347221100760438108555128807223784984669104202092856792091722605497651021218345284334310964850012723446170471527631109019765346257238821596520102536637144138933223973319014586346012406654251964690514977205643259479233110430848945368762351468869145084705868654590679254806642049800471589755949338187354474524178759197789781582214842624271411482624682375886243221533224875989110141419147233497064462481291536393969208447057025181239026311226854519492693705650755665716070160419539646386152914073529566994501870679481935800667983802827755919642993670145026773978486659076395940855601433810888587218753879538025924007043946496383854811836172898389132764730097667421729174324213369082102891395682119899159734660695870533410229994841701019039094576885279308492613033059653073725775070103331372412801343982770869621513131017713215858160455717698528593197708286046619885635500055276277206182658201064191606470661457680240681699215550132811382499594291468959621789299899680592586464830379996145263454916976012251944787876050152854995557651500513943272202444958027332802011307718719982292902176908620869252608029275810831501015574345934420287105681562049158305403904016588873736581333234801696833056529975296277551627543061315439445257066406883801134870284606349718444282125397828217438982892232368816215317674352411995274559418139044526455217071562388501839341172072368939269023170076022454129114463308215097259645102204756007754647785775035768661346381745889805033333787585523719794690750131712612817635881377071913351222400445311994506883086337285048807073850975299451983617405157091406932233344989106437575157438611009159299174056476134414075732102310726830808389279429087651590550440432760631724416877187125421560972750854032562764357486220667883843976329830372492734713732529355862021640210041290875173002365425749422600231941213103742774136574408850568854134104037941760713011646699175213617371088021782394571587831712067180615521779296549806292274665712476151942622419468024366866956397768984739163498084353648860871189017423090252046770736945567000096350602499630687778852538417753801646298329600027787486186259865509139696596092041213301906160791466753857718421497132671083869789349267051361751742768082197252701644225767452871333791115480643720978007582802573128424947384224482132654091776279108278745185399819221869981024074072064025335671176087588445226052179944536064910118420059859568679074593211214743245649812321905932838636466210271899058042921531067101695237986671156403316446961635425486779591232042246105619827390710487802125690010251454995908606091466557113809187716296907298263944433866126597973782115593207654048178116663566194350263042092508380862618567460049387177251230135405982842957903551424766566083972434178720004377680562744138846164337746446535964098425820527943203479411078360167460560079422289871978616697197283551800162789990777710594611176766742479362047706622074490415305211411622496427403971163379877588933093805311098435526523000758416152080418285808222642501695817834785429382345616616257442515098950907626955126097184803738945950588762714715175128888110558597482930329165437105683498814431987685894915508137626158126284294516199762664040176572684230507468752028903776202303261122545817988436159618974702230821629509799792505934934038497702718476282738346118515580965006599757341896257920883720977877517220945830988129597738938811733921263099951594735838135423506409815623297223833847953295122449401565258996583306470574343920950246133791190403189608291895752478872692633180913105150277076240614127572068524663821348333471352926895735204377021428134389567602768151432899172610944438567205247149440279254334779782230775113129685363379368852175348494432630085337108501043907635436486529982008591997101161241168006354647259114344344587094145947149855885911796011285665832777008960378170933064380925305590709098457052722040773455793252785608657013118680094197942953870785219509031501497380319782690302900414371710097980826047627355989794788856830615874511807053066609865294051299057594138588742009179483593690604262955399929449839883156460163586647296975518162198273804950553536923251980995809848058672649677628046677421512410150698034023633433913689481338303982569363338185336196089151609839636684614985607063160553489177865139529634163581432746242095081487776515820356137980920228350348028274579443624754014198869648559726990683845490523804707407123503864778369567923187346583824492463631265234291861228404807194332201070852522641925702682365010680665396637165448267737130469406671667135485087059148772499202935237808636455919381695628796951676425137297800967161957859158070172109556909047301391385454242947380637438645711891699624590590154029635765176885242628173586218015656128128117672261768239746116101944568911028935367754781253052457238217982472487016840672944283134819836730741092468326192628730875051623472679489925826759909897848787813805907507858830381522886351805566194753628946921744099828405513019524654695692629620796678294837088801227241405288427947582763890137846308190194248835905099789288696869274798002865560864419415225409185623729740331425922094886464580243156639796751149944698293572340532549249335636875611954862771721616806338049163202103684608695007355158023437105872584945256344726907756217811269885782234471637718007760838925130975029993927895607428804314673670112368515529133739194358466750069073299414079362522633204363809022236105635111113077935998846274808798811119447616687736111004205685195168747863304586959681503478594117346329103126964784009786752353525711492432296239111843547968904029923951899473975409217614004057205320239994948122718250414430058430512978259832351941495049774894395890649503260718747797988285386822813406514847672594133051521904173075333729223363958621599807102454259167341641849708374421053604540960191311740630157060328352912517670474966788391301603922422665892348541585221585038789891803793326686349728166627606279923137898400604452881904089059352879567750452309040775663137102043071041393510263143685728601045999118346207718529911678614094039838427076891254879641842719420834536681434510207202168451823439188372042600621723259346591523761907917317176624005025182707018663934701609297592088118603051428328444980312459780671200619076875784775426635108774950501075298923967109339540448759636860231465962630061426958157758658489698786294442886356930409866655491808170015956723600570068039034965369487450070492748072597387759743291732714036782199231308516569887096859583725822714855403974705927195751948603561708105482625863778795620074957738595676525836281478639637479689627507237646652709360307358002711081643356060327255488734653999980924456279617794578648238944167931338199645962873996423145830444242531675691599280185618088370691639584582887662925690244422401194419940511106318457875283419601752312191700499030443830109306108916538598597626425106628628234202329073923906454320766007076036180617318436067410075705479888242707139476531190846907059663800558436065057082954738006369550297626905509170319799049210490949377674657850851950947609168721086739915783376453320217390090978855699810497064945216518054511751778444406236129824611905375602782584236228319459023742432105566666872063046747605128923843809132310684782618674328318260348480208182308351241220849280093765824663896915703159286994409430729345723734220109898787293775118508103518436455316014581519904915114087877647397040245742068887354074954379697993000341774813990614087473512538679473668655332093541775513249518370158526266824657936105348151590053688012503784269096438704598700432209351756413823934298817241410164683747026151145031503776534539263176773386460956570990924138368312856759114791681479953121465343079250001699741576595458114134676390883780130031093160326327905768854881893652924677969067553859725244385794071460151665204114679515732851180653792996990860161506492006829865376210351216573826493397330272117523348291980459727319263652105746670590909560112477925087892226765826698427603526497378357363437279697925981838080559831596790929665210449488092687459773149239397805820624031885444993679270069823325295842983518412634684137128055109027068466510517012326811527274128726332780337808860821997502438958980774624631022238438242539918930557987521883815179066217225946170112147464259833417149347858318365685391712049704750209413063780854549789891689137087908359749640949026031458978182403730509057263874240722433268434349449540350002363344627740127338950014341012364094331549666307168200670836281181065079876305602061057176858694565767223623060878311994085981020622942942770058199251747797529412362085155173282070138008909344754640995851689969551951240704469822459913169949073698909855135914837247895612215982309680683485466680997185555938554572078344761261240549479391354480655285480440531163267922103756641068724410501201167735110020755540454600034248356065668136171612049287082678770672580714202367175648874831636507520123377736184297855438883621661030913881975067835311009056068905174995067148340871923692620404849490486742524958885375913270388729762282904096657910322231616793437870995508553677228226761913246286190070695573126466926646052473891023229710829763887334494176786387123818529211464651893157298184810838367215515726027102662614236582647511883646005286432275461075211154255369330121191003649083173237684663354220456205937866110360154196559352795125190282602768470811130214538770728081928886750630281357301148609126506049034659297476633711815827194768819420302770543514637603691868488728040172836631703297985457539749000760395992381624310878516344855839231307297106406014759703641936795580739757362269931038031242608558282526525208245553614495336631077959593983373126212451385987488687468213575640249394395140897884371571505163979441401454742864225845805823307148296019776439122496484952880846453991253684250561550594922813351339542089599642129686856713087815349313114969431563486111487401741681035979392179136001211681327966805792494030903231726069347093773732169577549284369667269095869445568135335007391031413505448708147201213776402258565682703998963117609169114461091954273337325724458623307612362401832913862718972564414856903588310103810013132280982011527967748158760242702106130841499785814815884497351463607341905486028328583752752705062929522074279970800138507406135014332385067636939213213030598783997778399909306937216709340408292207430982662055158893199972163970125665418627155252596246067538974045385152502760217341517832301084427930429413109236061431439123559552362191606924247866072285305364046052454052099882496357893095848300089235370354400127583868137663611259458270015454895657968087481374574529236138800023734568378238135446162523361518672995969542987460787508407078951509313029974149432537396721850948859732510622330842568924667500451376496887873417838620130915929302809793670716127515567146722733077499252274882612961549376542123334110033200614978151189839429815548652132410301887507611057358861878958598616949352632477746894447651855012909744568489464676255321541184378776313682003572102557376267685659833531243389305967313785376465559747420841536648173713320195859299806606283678140096249942818154953707557321749689280221915526129922825678411130025491822398822503491704579367185078293617120258924496008243840682412577307697127944846258921597335715820420904359527561492151481135518374273479311741422657161250237419977023496743205711832228968833747473431567194071197642097225414413169347266534297907319813602515987833811196698687005476891052707789249674639753826527482855405946892674240892146047091945047163813103193758906717722450974364842211699450776190592019670493301231585224809285837429340534227341918309988827888803876644979502699135417025065953766923140611399863581531865050915638330734122901630324529148726434473301015795676562040278045783204099496028681373987350613956080364085461208938711226686879556380465634248459979082292256766060488503877027758575086708310717856135550436351305596820194492447571590638898409751477130254388864258232869043293872638673266212461802949564405052126372814848548989532413784177452249055795522280026954007771360677826147585722413323802999701413195624451122363759851006135111032205980971033635367811916065539591226137643825455515329360087853341844593896953513517156043859740448747557227314984665806682378510100775946278899426702112368697128728226364761309448045853365437555384353305590310897564654445740021394462471059035118606623705664428334859044715007219821796380923667005497856662030625376715263400363671450705240264843024529414777139673033954586302149715162062007593419865368045408065034709809564993030861570395156949844071148603409565722743936611238087198554160371000798422371635937255002557610403568272507502057700062819020676697909037645928676450853844581749698804789488453797890172043188292527191797883919603899702763485443746859127493600825266605615200545901871634177929894435210674471027409583972928928674313077894378201940905379603945493049156860764459343865454737020621920505602596014625861352075094071468063105165577193506670473831145565991562535475897829524283245094728355267948986640410850510635765294149094628150973442256339315877742728477800483235118824345380908697379865058611280361675696572762432423026599597619387449673617331893620000730963206078955613541318571117862357202725120059399621115006506949565306875515113682446908324229795120007298628833669414232649252132061304963333149085297130680072662752202139564170016064608275220068297478593807033662945987244732774001574692739370393129600731569305329793898367319964700870276411846152557812682285008018952161210240688364010498994330140462547029578308909448884637501891559223906260705182773752267816873851426057686060725456108052426263133199069018033498764920540143958021741770492844408126173356513940913266126553358880471221013036970943192981307018913744401340432879466841150462464988890225398720333875214497216690211765378495747058652151020551843253008081435538060157386408695315907815615992214721781184895179354079664157986446318927788421618414820973069835918536646941926463697046399532287479824656454864794111908094139417788615396629848436931634624001419238049390729910711845295112062050469538602756924171114068749816887382978093709259214971259891814942261138302847783974598765376409758312276527484005513019147560941454266970118441189690100161559170697059311703998328655446832365728382206530596423370642517270999868087189992382315410269984607564675730356821535736187758422390352130325987702807042267906892484535076604692598050508659223070689922027888417015019456169014534893340757940334488534680314171323977087434998407590963334449913281524381310588290540919865053767026656973284277253210864356089361597507433725192299735620462276714657678203592741774212184129030018587763974004107740977802868008554685337259292054893705150120189950887976299128987152473051018945603218461955937530358073346917648908205114047003889012419267330364464703162277354596372431588419109156640810198752968034635763172108693274745185758960952806100304651071223206079644755561450920318258968006464650303085195118098700525475711034652596197890941600884754547259909037000565414556853228760856230843159332334418662774928468629419271986177138590164966994091749191000781986157874333020517686054565180286599532398530377042260067177598695105744864849202917687089421919581054115400823391645941808821645565609046089558816168956300696595893849696502297700009966515258267825970214914342495727720684877022864218882742175459374921268481601638152167139145887255648449858795097822289662723042810292258254057402376675712606384281968630960527589197611233114319075462194163981823185217881848501464396572082353650864377580797569172861414967381863652462902965918286313424417883955405665490169393619066970974498223604682886519496900557400343746505035676876703362307063283807796457932170471247735426142793892207611509375900493704674021713303921891150645134616784722856740947800559211553047087346674369472583840874236386693852441486541791105398033824650339364797661770160357979996563383493315665930056755835462429621645995396894747877699298506227016642170077225188305145748596060230273956633385180401355379103365802818410676001569956731610207161460090561599804650560607053321285795630142969906654436415266047639033780437011068495230827931076820116834539786711969221308264187956790339369425755138454923243344539368951794528727770609781150725660234019510039531706531000354991806846923500181513439889654977650531235089800631830314868287678113706408366855547446922152169925863335725218516748713356416891882222343448091396409397400097152104873331785261491369561991593687581414968398973561835117646244309813752479262959320705987842817373381675107250393982585826857889029980727787583119783277237398277036674007762928485781091619725097660223331212079452187488610638223058388019611351299181731640004475283857743484076330672927003590358674212297896635968423050910088885182827495760949829839686030032556737601119723724617422819464148224778253093881111398244128581449601127748892459424307888891142905557150251805586178685398213090443268553793831057753864601143348933874802878195314650447000005734602203475324224389737573261247727596492092401361825766505239688207992900300707320748932006668635365824811860138332345909381313955792770033726263496216049264290348248177435393544399928607189146370395861979050890770890257629007241797998137058149552413695539953052044462911964481979304169819415863012207604398606122845797354348859241230193505972660664738087073988140783242910693006350068749333441856358675738176087080188892565641755697326591630780292701463160957997177331293854642188024692813497325970219116940736197549758854847090199328651151862441183901228826980054827090758456831918643970436723172289463522949079546590614319581526620232699500382395679314099379796429585198346927206278405414214883473682921753496701028542771466202047323538779869867274182373271871493334504391888774242824264103858705121349426157268472541575213385150600448591944013412824090660733791635071776957812867157755908386732431505918511274067117983244579390068632136578862122961192428104781258534610068636122290192997762368595415091430966372703330448523522616963506761340443239189688925084647614352697803953997722073995242839845512728722349441438873886657492652305156167744488021220326507500835082366366877917283080569419406603713239331601339969070189698689700941065009774424780151544220940179650962528379283508763214631975628383604353929548020434184168393843502409990228718764880277100736700555229050866196620830138865709285698040954440620054177825048064487349238307647065571013575929362208761786690055725107053793448084166131264437578226412058487957272933978924123609464488305943245709491059823246085909945301351716537655897271154324283732356787936844662359487780033753217279681017357679956872668324971430288496753073868295127197454366403037017615164704130517178662751015072600951921076470806353817156905463762764034159971417851895338293116478874995949963134314825302934400842445599945194369544886397728170006304228483123928440573961277051823487540306031199102320483758743438537533267009637758860871272422205541259907789920772332280271698563328290653435036661648509187226332255576828344495595438106415525377024538726209323821966541252818174426732749284835180161002670403224639028164824679521006035766783999076934129349385501777756499668808563058444266952365575671505272687213358957723292590588329523148853837831030864595467330202260479837252628284827435346271761054460332864070598815856124084933865941903098927042566524486292571377089440502981542896906474961734703354470179805956685651638760938638810082297475954758054732693661347274310329629023089120160123007288489288754505545801292680389724341243834578581424766238737978144026889774452729641226844417190773926548883258675385420904469920543634425950005992538635241719232835321256838906741059575531839442229427420457162073757993725186034737469356909862751924866374696217414759853727719945642456371147224793458982126095802616374031809883849008755623979145097363675014079326268478627206899785099878503581340048196907406171643783051019224049691042012652645765650181866539948702443766040662155555586970350674480029040443042056605428331852591053277920468514169733459009396175406760713145892396878884575037235955028543263196550508445164551228060553018042142078459206029148114594432107916649416718060514252754804581939527200604392486819053836988615205270870283979933955233385759274401358896620664128852928214462400830577357878592205691960634697125630924542357415380081591428818299200710203094376990825235749570063198693146434213605689731953568659624981483446274557446937795438506449237684450271307618475201051926424257023968977774767062815600478106075982116915851255237598644560724796663051135936348506209112767267855300602838601829634908168019766979122523260945349117281649581112587463830887338492408184535418481061611601172709088840702587048262466343195267347518821800686937018260340589932721206960828352452713864312910126388303749938851224318055092888100047431749333152307402936501940236256000261582182595847752562823983414676104957545671382251908655344966693762460866963221368055928099950053109094173598491226231857497210827454734952043881835649433790828944105501884655411285168451002669726921319712422408115508445717440741208088627575355490495479299531722009090313828168425699378970101492137233814509389847215023282549230601746765835131837162382163083230591627046345597518472600221883140068361403238966025867424290137737215222002003515415825839136489282392726616640831664176539655787609243794172258605571352854131401493079912520122550969254646170627601669099036682318055924054517189950854700027473097484637109231587226270802489859259464057990583621046650873139982290545406772913192745495058072351084394628614526027681585113793854463837200011404823430358707532581623862646769265906687173576335418939271278721695825402345833132192990668571834195476649811448271629860143823789372515716750714548899015889849085749037725764640705425786518946712446787151557706783989550708937424066630264322162768773330029092879991965931055742459080551408409577958376183489725888965035385406658386586546614179044953766001365918537911494516729137702709158019602185475825787782735774472899884018164431320902554379421643314961327993997087253694552820115160382830566362470012281520117322335069719714146565317232823940945056670452018823805960928481736055274570315141988317587123542027132179808076496230941049439477376880963411062653684693936811408955731805619755266191669407355251893748135623626562268180750618447059454645035471589172915069691622435925402091663612367045692335965369387045417124328466370602408818077388704114845418588307771406869162693076753390564244428543777909095649314491398928236548727000425994853674945535482685621191449550706194626269341917914498479536042809830049539665709045732501945574629271691895433407097540850247408382381913713085145716959770578658729505763930108854141568320786136445931233024188901604475295596487239750258113160163885734507943190771074645083612960048757216832894101915686405110781796962345566110829627021359515505364321682997884672557727430412146085591352656829245002683658982192667759801172910704758218156708245582266575208667844010181526430361893649698017956456666814196878240398843940036301993884590086292531185708589193557764717556067482101560760957465550243211144129820658227590015362053841151966246575186644954154564595987566238919334887405281864641498019490062905429398612105822519838872948567680182374699609897360387947605857951296891557801961872102498170570973922821787752439262848343788101690222733821587573463434118281489102034529466078148286798232579367153916507141946844747776818117001377466651320497635228998913920703434028440742815427240362189455301893971234181640471604537387510998020502019653791935775799016246486797726028817347031248594149229437002073102102682550660590994690162036702623789109553942532499619108926110878174285350555116675442769805427438573761268939577852179231412514588935549192669581498922467422078091098322875001124148690816812800235115389470037049088244693393741996963211523159885628782186031880328576226053376561887651783027273619784674161449936871281016799518367110108729471911231199737543706311615651621619990527797190040010422309698741658547049892681966168749124203009483048702794226677067402871069509595944291246948584117416732943102781989097958471392443226533034705235939109368215154250352256725938581833369812566302382693577675520147742867790676401580671347104774326184429024595549723981795008868807557750654101641532872777442656653799697940688879081023495581656006211450529712651211976405845630469254101731327382878411694862262683950932659197395830743051637523861063489598757523064538985034563161498726648161944348493948452324074184751264087022124852872751288311579487381704541271749269826531148194263996242502696770004733964861616013603275421786867842911942722189477812089881969645708461358107645223449051877596951686606126356123809497398625911685220972247134839497433101513535181700639082520186630081715752824511196920682332668659595742285307610104965012597353673866947414735966495228386796221592565127573128360822482173079951714054560878374599135762710491813291192868835010526722872665049939205880868775215646821126096195406648809619691201558921824149036158261888582355189200875113797761843577622035350178011345665255713469599462820057487584688624033610218701112796279948987816682926000229103653852263993448091189189462507336701374827260390095973301805248319595730210880345660338967607624653145847293645250693109214380510744914656439559682655444592170903321318751492033269645064562177009057282773229319649636213065254917919520504661755459657726610450506408073571377488242716874431504482318693498416345982658264476675060770140015592832517605605182043462708134379431470849511153154182090992931853048664175266137679869276551498267931116813230688587881432389229402887876686433682896589340778985927936579084902459245236579426919636657636898227269645824904170990466934148869312518985372803748829922028275461439376470877489336769172963253788552598283690052431764472801342902429971020380798108911922682817347032004628614155811679823010984440749002786867390956761735814339105946404978620152084353964150584183277799966649178785240501368213260758024994435416409616229531757232038959300946856595253597348405470200915936027349288348741603173823210092860642188797824719330222352629292531014430423146030487730814691519097525564942098596301923183069884088014019372814607189276675439474010884470788594321213944479650339615133653164632883999450203850991234891241605386839690997070820004833741732533420362333933663968137394635550017030121496540900855143850473958752807304563941866776746010472225342334625765843892740729847438462015551001177756064491664225413281162497640851056178445208922392124831140659206604667069806082658970963710881805069531771436862928975285115375409027043623160974538367178173301251904114835311841415561496448835427891667582969787775397611115322168129778954636471087548749504632819726665091118638265262766924901058999861594724638096521033676125898188925826255506952683504656196158112873255782284363219297819926305881233765637064817773167427307018606690459046760378775286887239530211034970544645397577838861214238954244221588956932200007284552135491476793677491497996472052948179142759153742072163047458312529600100128523498805596805375958598401433574001126595363138881154606222663048159748343304231876765718080277865132637194785687493028382727076302451460963131632475147432332458465422264087640818235558330165569644544952482437087719717723761512142995330865420927268573487620274897481771660260565985467869426257783097750285987809015605606434047363854786553166546276933366508973941223639811161865951445165271574043572327552744400930240415198217707295571408299434765737102913153189919393076551639657319038912031987268130856323549407776452884403228522729800423870961821613545725427640779663884479788894090576211302116380450757278568643836990274495355791537222714258803090820744495873171625343010224017192117327197674720093650754175410040881602253440173936650413961374382312518654335937694058789593663898842312810967656890262389643879043233098807584926755898991864492828160271824247164239771299369075727121047520143083928526619845218553604637252662183326231191743950805131052869809014932074170088219964765103151170218524585688691186682719330327910653567232203629311006169867128101738546593637283263633465186652709973827612937985532327789055512414127705184474565271925584320005226066334966074650016732045058771106705434879053370257916187408572032175093540537171010163804215460487928343305413959062948158785127502963007310953017765078906719991646893171661915874574252603999361605162676698502358729274966115422238074301655578380533686552005511308386472919419662991299025388826296594085736574152085085468569143334339582166290402385891802432406561167691186211704380011441501005997863282133670916996709763297027724545523675596482899131068870945354939458852839060011492071167143354412771285433550165255980786294333488467729804826352162316857017173005402618062668835728815974756912962278671731383997661839435243690516968976448162852420658003003776479907023824662579373279205044489746732841766914575106849569917882202568698543119946395985164867292018481230568176188575032022662745247601844495825163199652150849867619492557348674336833382032814105727341702734567794833937095654696380893698787521588953944471321889757151660422158682169172093269660658492154837988574900074820510706292286395558827206543760015728529376678012189439180456321880146257019068416819355873943410622063556033866053837466326973390731721546955843683769749518147119728096600746848644732838858220422635886035755469060952216952369560771394441161833043534422350274063257287149506551148266908720900069084519666752631625823732354624304500795605939778410958378388847263118065411575698137189824159717414135128161562379248767747848141577207540419623547818265365674273872962442919032652147214022277332292588798718155792311639780865972020168459234617851354952511302343293484210238169359514048568413801485615132214830137129639933863498280505822770766609736042750571460185750883039394093717905456141197735887065164842136095036092854978823596489394422639248383328626657530429256560139851774368837483520501961628678922675997378588357703728840241467063001176824585774636269997736155007992795919746475574428420558938244984351061526705891123310543077941433464776758779909293493328964771355897844287504798104837867831781685367427462575748859881993081830577989811267671775177523076146403911484505379673776869191368905220441589674852893675975662680209702864010024366577221330475278315834516128569256434054211570612549510769051360933705593621997458318158077256712265297411878251765377104962122951404877734986987643781787718859765931757924501058497346168266490108562844134960295006473390367412309983541353548827691014292678174666306173832595878768954481049401873404917352885201822905241576659426885886985863561929923884070327955027570565284474739331483563622473812728102574888537467304084947526994517697498153951941593351981844478495460405881229516601606571482385159047214766269606559013417819254308055190972457183463451088523368648477930260603185258583687164348854853624994729362197257442577008798367550369423008553814926250392393588414135019483267327846754524950059525108133179704370614722407022681951766913478211346254145261133347211531438284908096646060009820383463412302079778813731976914110738388294867400680136811244613584939962997426043372227564520487151923279645640160759601283407806819182819879286661025381869671968434406554437768766957711691146477312108016066031647479843898176448823563257722230557089797191745600563348718796989552211489185247541458542271882961837219876517263141928761453910142090137608835334604910134433655425497093739213580799457766842401113588090495897441598687085609665861364925044414837393724473647172751610782171745870667257134408741808717610963852925722707299564380568396765787888441528159518801156806513976282338165328382164062498044586924928354403194752034277280690349673018058501050268960736301371893173404357621639169994707240552297976201791255164966593111610764995384663268370150240633295737068777688479746535201635584455241645597308890485696416879348289846933160208660713109631045440539508026792751099922793404428129343646589034358128276269293021518789833636657240213622360244780865420708491225788424908483374039786175177811561035577895811389339218512046689834777695704425833986809755520898758963505559638674793592130428492983395559354778467860466736922082729394294385020666013819632221500445249783323301690691075751502766875826419784655092299534996945733197018895982034424674588632225235730441455306720285138949575435384717706505594722661221032342607901089329445867565556902562822516610872246539417816231148423904284500589820998682118766860953400821601331625425370759415404853816383736490530393718782278045905580651051004242743664042064575025856329249552352776797000108045633312013683779773267542418514860011812958149124199547313418081303616709905283054798606674183376734863775569678437963433157469988484484008130994258109985912818469125025681565496287171685948662218006620628761253840761417203181620745845533526574191698207933840273918245525629053871319309597770129948429095611013039952673473286965297101370303351027579459226642177812115039855558000458806343270482905825104109022532629956804636513562886680993878786747932771715741144989787914477952546913275791367837687864633220763281019985360074950493870812755287206915068568196085313399163677308981118102079332256684002596242855123768207155850746660775087789223180744849601024132259081792356011524216245618117461654722689064485307644746444765593828927623340987091425259767692583748144557103690983007202878047860805447652946455985379080058712672184900637166014610998904253949727313514378577181020431971206698364725213157226640374142378963480309074286883417133720525010526894799487176689552090536009311793794167434335822859615576850928242099793906862788485109816788772186923152745423382634435687855720225314938949034237244218272390751730017659449648357059404362232847884087203060450741802028025542861865529897423618941086700521046008255737953152666638309335549502761300097082487538911735690228775415414386300350645621473195297491173694410897850904219138249956258041050529823253367527439388155879136381077674498944575481921012109495471535335376790343689484560398094081060889296385663741915613896150206657709090897025460037219004222898839241308267001962928949789694490555723945784133023226395389495319897886169840090754011398994379397222696003410977849422481322604785213584108887860332976822464802739261105064170496887037069455221690824414544754591281036056641519861184900991279163558439243019396774672082882532526772941394382654289001168977019099310101386234902853056378619799677520877792019493600485481722655120331172617356901188567561754410346655086474658689792329214757087696638617055829357128690495468858618033156643924362885927108804032984932554544990429302431543505737705346285856922130181517728202404852879185827867859583989589943720170053714987388516514126468604708357714782105180155134734533854170596505819699266461876454169733298496041574375422648118861314874393216821897619154318561420565525583882309739292582454262682749243304232243457882205065816322714927943412359155749882258886381901475758595525491937525154138322752638614906919457071034864539309027527348529755412739864066069166510934950385581109003295678678124077517562753201731625593690154462974570861654900185300507725060310761253040020026970921128562858124687955163317137795062494342644457425904527230524392675528874902963146165218824544069956798762681292191534839648719092539599794821977456239639383213408472602172300395744814968928819536629709267173755767357526107218984709355067224686306571198160084838177138542338714589846123315146364261800344600808208345269596310388171577516282065192035401219000189800265417042775891440246259858822736998256781125000225192630943541271582748862179171279837213676965848871770003676216259354034268586867557714387396694868820247287266977687510465073811660660447956166184841525689769117660180192432078386909631188113369647575939010050808536731876316058545324040516833195118982416260445261619429397518852027119900324145971831469261881493237142153329370896192049956304147197248148985576815515832669039349231006631356464542195852258141989575474468336031026894103955216370622943761819825365748401891109142996054683530508633768794611755043410824106796546671063120532409868431558164261863669608783247513710938010047786075062843207504287505307191313184389049087461620681692837308512510431674559198395505996776637921310935261664252554790069946078524627562851766648664572629912178925115843559632575923283239156658030501950808401477682318494367101709367203423191646557776101846159552431853022528727515366240193648171048171404622698925199081538536518022213553577498055517355920458080861665643684780961010172535767706589290139100728191301920118815232361023813781276540980608641200982363174128146738461998869884429108099258092746609777041310753148502369103050421352362103068552941499349109603553460443342028400826488963625214811158218754220414165847182213763920181430017554666829998646093768401591950572202833520693485099714347287711140197352876363646397610301314750000149944103549927868971054596942260538645109435099227798548561039411148332316857008718832668405690157497231733634767201777778899901131940262370201389640743485444751228586903373573988432777394065266341139174095772956864011919818128056212110073937988142143687772085060882953782600445012226233865557781910430317221841106164395077868476871398639920898646473116014685997015986459069206133192342261908100373783032427383201709471511964223176230052784960228336054870718143530482187366796033039719613114187942832711042452757602003154380467728453327018406917620058703361858431788528022905314611202405065848220002424694063350050401370140746515064886733737420568655145268481305096524313726217916083337833759041057387319720931249642606868995064269664770464900126787612237979896847203120055651910979877234649249145443896013859637695440377921138580702721404033820454057187926614589070673080270146069646904534732380229356409805378825431038836993917890970300543322124126141272333254134561618440943028115409786920230034664702020976010149978857215877352399852152097012600264044930487621126439500400409436630403586970167243754896823208773030847056789396456829965635588713556419547445325662652431060785824964959378373752417224396649081624251827709214934812387151779710619781859514279116048428988573741834366451630726385847081998672870789940999538094046170268669216960844061308713789834912506462029772795100486763166698073868112047443782738086949168410557726534981411956370612114319601347502997634878680410919561587581813598397990891321051052118507606414693264759829597226710459729422151929923928325449346646658588549824897403105807559332874232040837076983718250929604105807130017959800941884160068090483968023121472492602859735801215894030749876548388171537111999279614805243019015253087353426929267733846669770719681566616555637638477792825255631871404384810092283260542425000398941179798451483910698464764489269712166002415028671028409977574660883445231869051348455493733151732812411845888636147405932647545157025029640592954216241884378548342289936131455712925744106018211777208278706850183098494675022227243173508359184920485502758645964299607886763826345435200620258435775904270658250603760101338600127549922028949865097158539660433529450320309624831478788170357726932654064253557726494196291746164834892481132516191314162831386794242929203778044917738510854136085836286464510999228363485001080058651713737347906472255119379227727003722278435106234389094654629133488322807180596149433090062086461227684875889562133922298886209018301824949992694182121936193052088300100346323659562021978394599004390111400728342609274883982642973709466797740776547826044341497101783552650758401574870672942884048055172891858727355648288499273126517260490988893232243331238259141309757971564684992014313548585662859046390926012998877658251388992765530136502283797439466319755354695915171276828177345172372570552877123944282990255862802780907696514707250286808652953631470150517245017511351916535572205621096137261509920627120771616891548245947796933170319765295275325571322635775594337654588938814504149405619314323015570516616327026546258399765526126784871074490493968794751755460313171656490292694462695647003170986875909432681174851303767993297046720795716964407504972066498516285003319324674872675823137572803882344767938828784986888042335127586395173420388139653653615418295719301124696070357711003279246885712636699913170502742682697158523822026456488307148523765741498812441548209219965014207430586824402470723544510608777431852303644184060352589508105044889801102016102799728322654448279957656186595964740970606565169728922738557883358605305057603174929949452203018546339822207656144389988757786977018717938442537820685867168864022450928942259833818579003627109145650793862630604184966694826655476502454870733818784240561361138500107257017028433518128978164590821956504170353463676972448015087347108015647786225437142559959369081323406663912512461155269414795400600080445386371623892478890386323218376023111699346696547806858347019820765718194756711013320330962739604639787613176225753498141561652881187805090552304271570531151485603779994037455451535524186522922127952966641324842487591281749529321663708705877567781923520614458436175169174900865936912766035248154200149835934050353487768759299842608194766381399357690500421837707623162256187803304014768810710722426241024057020757491863708952087230644876147130657375514174467128611792709186482156722413250730851055911556192967989347808521588542599330706207352753883474545192709678433020348146948183393929598731834906865924339198961867623266755022824978608704742648284885179092827364771785506458783812369846482492483371157183686957504695415548677007156948948541040688348936639528386773213116514346033840463720105163840742232600430362109541251337064534716476810892367393296130105966926405226230433874160437106348916666312272377435180215061721104118138279570698899849935910179932664277792024765363918850281160200317510909704875459954844185432911189560097407394967165780335647631545455499651651278685352770382064856461138909067701446304855920374316725268029929721879150103042471238316248191312308830651536219763610735929557868037116796632442886990439386341755224159368417259292990288148634983355722532558156807592097545254407776821428435040988868874520716327835153267386977324931504171149338654515011657103251350537710833163548133915345974726088099844369269670227485855745550484364218071515231216881239119321286779426115485150774694341553524203670609380868552914951020190155895210009236623441663864728079468583408040623041318257055971973977946593222313070082771172138197043868236676211718384152913387003203811156621104155532650596894260569672216631051818627701163270060854022299533796473673490527440485821074275441789226008732329373681189892726610272682933285498606175518344052253270648236619033750815890693178665512451161877904080956232770986143068883750328880694928984707213276800463123163663614073231701202620611052530438456019901381392840006182385002485866351410666028466046477740400302005622654107757993879235933357520611161908218398718871250082218088325377781691442924889439529134205450123773960276719506420954596615006756896256367209625671503661469638429734052981097359996174580429035639038386390045776768015899309178169275278794160985883303173988449551097285795026934960960798726157303891632730523428816734090425009603382978034355008873747197454501846879642683818506285676452098594603643190324632196107653818113762349463188530236335277786849788467230825068001140551707174679758989026070064524999955026001414169786843568966015121614300080396066090862723000789177340718381944690768559254512144998134139470707535328031894143262929548750942808167228597418689951481030797402176199111810092510268217421481181330852945963174433588975998906904480547555876730023703620125731324798100893160383477720320292556028657920705262161002724054574860130537876422716972483698211866255384018116661270493351882738522003488815846095959712007897782818262124404422051857674355999425057437827785388937082800820857640699750081346894448375348331693058556767718727490142020668482589158708815693172873525892475447631545087207250487492625878924470556181764875531921463736748753276532947438682394463334568424297541696625498999069001745459033641361230777191888337281966788475464138396719520897064990411989739377060207657615241708463521850906727968353073917060941337490781137072504891949069555711136405357968074129971498682636852711604256088143622533004053836253437936230511000167089473000928927510558081700197126124962557832068323911577738721975418725747768053000295169138606665295225242471812752148210160468807099289827157377617861221533667318876987101901804213148278606085396619952169305682741358518404016601491282324347110757222252638066478973062134329132109285319935983899952946716787179941073698328020556519617045725573420699617835216118922489018607796954309340534908560160608452282975643670225541300380247944610027573389891603412275620496857990992416298060898340679605175508153192541116794689365753650642697688063739040988630381572005509967696032560435253699879974803233031612583319112796575942666501949413060349475905489500594897331486392750752092614924341765457637686440558395909857688444414352586901888134875502540959497345649551879822100951398933005569110739394105931119392330039081226252250676249911575741633875025720725464084425445010242615074603729060069597138369605930015397721933470047340818094167891642163320055779653858560984819771977961157855615996726410384907887741676515805426353442315569282007676224619779185269841686054730259028485576848189396303691998237729653856684088449022938874206725471758640051435113267500097089874665179626040884573376088994406193944150586912593201700805270758277145632344214798067051326809472101118640331862603202336404718948034372674784659372083284022042763622853066202377522809239439296956660010527088042637212115388395838510102105619152992855126080945085777867628940757830182761659900973379057986430046494445331614213092593997635081533298610775151139838541869411539642813085549435494690021584572135437817118808945867521060557213981549753077148790265232564960164909152811604485768890367510685013380010162391296260343423471054153816249931983196338466757526335562922209377813197777391393615727472230138209767598845211711788100976230054443071503606852270825205272750398352440129604683429260022092387770394591815322008020758286222327565762595324595379158522018143120131661376439058892892476551694794884447261756939086362259740966821699169471046818493600813178604172608978587993190147588878483322615258178067990919301240445747401277132898036579457011844112003790389587261294977320721993064261760196628683108154354223560638928155359799934872736570030696829909205845902177850523078197143920829948247428288840643807566830206304868380447458605380547689337526654737833735227813805282111522319186922861643896662808398247068755321913045429721275584157573307883402916157700825459423637851870780322144105515618670976409857954280897429661278593857571059350591045545131878125830968272695522952314306046422464072309142790308863303989973572248018177800488547189011080805993488553335894462476478705591859681201873706450375605356301033155760735115319580377628833675349506179739342444764748873275853375238414446092380029474992710145669709723428645914347588712759625365587582247110227960462937492165321621312582666392948312593441786123725203647966904355715337317901676176122134720457571166464253629442788466863565028699739158766943014826197563398840825274425569475082578489512888354165006167650950432456945851529739831065225759646243092368269885613688348137833593363144144896188334952714096258074820550259326117790866767750408522779573854995049595712676365582075315778341004864455345547731750045764010180339191220077143054660279896104961694050182450459782056394470347014200970987530277516555217956270866742873804468083313675238389652153158780519694221163252702323384005200908969170837070783033926258216241418718180095645661474556856527826927328915813348785635190197594305105231651946351758383454844394187430260804868602731887349485416918286123071076245412321668914602489033129077439602414480520756127771759812810632794750789725710888724503167290194150219727585794572672846720638938618954091894179467845378949665838273178321937422540761374914000805228758960686560895424948828947161969552639046396355328744977100915880075195422339981981068661195695896364068939317729235868653430189594773417484976943814798705062506349649690698683525290259760381592364222047355856867692653477551511355832793026047812027641389323623720783106746524504136630179124263883606113366997795968716300480519879940563954664331217496518357820818596430113120237626873098190763793891323942890625675516775613226658480114077416166477361355440755048930932620131152628639710251146104445335051587860807589292721259614387853458376964756486359417073099916652032622035166518707382508591268530013474367625588839015137406995612128438547395945291917483425271725553482459164169879627774654299494310428210685539892613697541527092048572378890217287634781443477084803142588241734402681444830258236713611359947879231088939540234873700513874177118649393318318740614391799822902941780007421890601424342791428401843605762250441120907088062818599197997435232574845238343002817437391444986878528439316039909704167771137423484912049371679026901791631543389415460386134549858618638794438580888795821141941190359325177502767895588919841195881953566638751856960973804271224579765850627312116810366938999994340906784804263129684636515048154949430334563415736337214352573269773583453904934668312449796287312910548914150330074118718798225081705746524531478171098684635863106909560517840203715354988497169772387469717315834517130470537576491821100522407854337809171378700802910255906628057162932604965125970611376044138029872148935396580198510536948934985057344173324046000254107467504089453162768571254945027325456925220334745074827936242129992856250643744188219622692900558948245113968075566767955197583887915855174344919397153773519578248748482153067240445001024668711838998380919395899723641742107838932738860007323380461339676497644317438399450729068290099217799945972182699719288759728544314232824907881857113901766139026117389354152588205189667017890278953488578772998596575557908666221603498637759730799460794552046600722163492349338214756274459126247102341380181690361065120436197057086707523277159334961004643306972317894144947345131246543681950089029783752901137823456124984605046226051454474917721250659357953152809195823193603342009832720557575060234101788280889746586176052130937316456690310535385451785151603642239805803428339739867249212873971326492155046238495741893510838963748970862087517771563018574027619339945056423742314214375138924824916326351698867438084907163085747267418275735181114088116678827398772633585116965253648921435203856028224539370239306857886712204553033306534648966091968730465938795229469174399684594368213887198145372649088835649759505712284178704647487959201811053443139910696119863349600104371642635663829932899858014819521195055167891097846637106426976658036456886313525837969278861386030225925274475676673436180543404108368951106663309300315726576617863307528521624590563674645255711980524142787832013536562370062964895107575557170273825967460519908399084628345415870549447106836065125605214876059616842301045132269151448620374440837047662374572472194772446044305835805168062143393333934982660807166130515743588266244008879740520241045681790803310230562852888046788954534031454788061475280034859138231510064188654331831908165121233824869703155588524322068450924785696130622640880552402706539110907434200235812565358600671053381256090244619287913916235278503608367762540798311649464508677254726427050554161538960907910660543776602721641156702582786710426918193061256394980562949518372405310438432574009222377588714682245182919064771334593263191728988264404104919629250608938660566393880874448956381355638824335103324699019779943252885263316179104839413689162076161281254298537624399402053465811652090043774249202096368929863041029387095939422935266416946624798868830396962297867133145499984612205055490239931133878292178916388797012573668211015357877020895451377693850070785884433984965723822795013272449713154661885746408871592475907071294044327888111360521401688658830295802866303481528776947432396191854240072437060296912651829526333172497027966182938572060485818706733084744369579595497183105711316266587304175377288433100941689478779169451293075551671051344860439900726621518118897028737825173154364297834010414056499069693323792613284512810250117115187016171338102478130525563903976431508932964378031301819050510254375383066279114986076172884276729539775297790006007582770818210152067114387217252387295425486475142085643676035139134758956593125364619698123977296417368857465906710878304389578447168914023333317950789483582252443325313476253653210392815093061887036200115631621379056712578802202628865691397121349754530295110187951769346828607869507998090458793053156844995205631003795783321197760211524861638848067456758800393341993723159319058794042378695257839854089345672940222888845634848767115088466579143253140432755527261937049592117290415628893947992415728480787873105808238986541940111948093907191029852586136213762621963724272846317127885762148470879594206965377704577865310578990779663337405711200298935500398580823302011558346073347804372986385669998134868798400325028332770581738614322208794063513155416318989149474734599870979773984811008651927657042522774261011858009848671110285790663870867084608174794823333091175876649181522090979520102756830783845340342757766536071712767570632859769189820072683533989258098723772203720497535917254774142334274370649071757776388977640416233510165949050089692948439054778170952683617152545395940114454344649842550993796342057829615932445081068339269603547183364171503120619919898111400930635452292825134200542421343545909337518709547720751937106494440660275443239807363494483230851638894373898811507318090692442787529446775195161464003067982592191197443460310295862551505993315188425473420508541533313731891774944845133567300788948180489736455871128015043084470148316729531695864772459376725956317374777448534981915449760420404743163379622698112861644327266511411017336855309973083087922925585892538625902799208159573147440644031236884084914775092174824227710078055766617078444518072317057323607440826466861194266727182402440016145334344434696767215378837248192334204190775667154780452018083594082846152850882158642249877542879275308098090292243568008972193681927719200949324409388947945924223609068517031674785337804149209177409591622168547806578795719530872543262955190442205544255452671338871489766945477934738837494280783202794485450176656965231327342483261605978255206873632286745634814866193121929536944053530677804084442885924329434460901779880456470472215931955397560745439575146059958207695886196250695282244253986571968305966005458354483210876253317026206003890460643391242054494114670063831624992200081045756017295955048458785100974839814402533722936570781803906765517117842988292386883779318463949278961834975539443073910102532432687828693631337462047410988577183851859237969761041875308336167618658323233002072831221289697584052734591293459689836875356495292612921771235127251193348838188208903910548642328739604712378581742229066481577496660901796159324445166948076535255906207908979453119115801590305563165395198622776932033429639447442464349393468955926221304842652321226383067004798084338203312208841503614391348331953969931996845427271700689332160084968380262186770027183785004737444407415592825622169830589267026061933591489514254840824287847396906496801053578242154702441744199186282511293490592754334013847154976129426886376264412033047130947122635901298256883597919447516266522917430704902038188614294893276624348184152909381920779334428898695296065262243734385388385449985390268625705671377584560126142647549100053304987359003685257681589179281576621370038977812940508542141572884275434635285639040505139505037003256047841459990591774928386935492153934389119520371226082694297527207420596755249476888732182420310690444797300187698335508293388202157261480009193907025180418144296437596842898927826787550758482451495384300489849771196679582995702267488267666651333473978616201794411770406106935620071561815817378906784196237033567470917968513671783167618397229167748600187298176965254924171195000723358033444988521893102934716456700832069350897644220786732842592759761503334127689890605410169416365232787602213889382715287781633777152687098742734227614143590079523434023397102916351796907644371266144171956185567738421625911591506203419678492639238077689953324716207922436033991547558328191815969695580665785815002353584365053582474227522749499619444613523055503756455938913879874210525154675770201054169355059532216499161290084272999321919387559220513460579462095629139951790043591629243281456858546648264642343729670216241215212638479485980396853177696830015562366653357593477415682307314850811486497069927103294597584841157566023812296684858350427341905089558671029708587462710562974224969535934905274986167663918840300485136752982460907237186150461676275126884245402891475991413254410248153570064015844989950568275438767568712603761934961746402818576966544237640344394179311241852299247059523648744432769281113298961374048657987417956928375812470888801539721727671271472904641561125110003530953013783163807226741304912376248161634574929111197238616645569380563259980154443820436422849560964123232000173468119651889594291805068875986624159769751851332255181906449585762668010725351029720504240779868177334211952720242016880938184422628748820967447178633307332559441595303657403099526587265722708787515646055920947977732657662422465181376370633435616808306219277299602043710864432899627566686822116986243757122261866746956232065929102792746910758288757391576620640720668432169843219099219817240202575488079700757058520857089857104938437056307427948182890358715555234717001552036957830161347104411232194358317552400414371458958114565200591273299914785007386005329923557694353812428817210571429455441587433716742081732541498297619006653207096770561492995829570551133007868620644798849782884330006499483532397605320093878978941586698702070170870266225556079777715300710197852636525461666225916979086906901002411005399238746935080480772194317617689993213931408883820060961480620647130865817915130061511115564870293968255234321862444284693626160074427982040939799076754321705469503200191351271463779375348619163198560197705343993607020821774122963306301416206399572068531427032786598880543659583739841942322150474714511428737091981199123714922954898012759337559846381772395788740228594944497231655331272755807792825856081030440314693769256067904047586624750597444689027698847900813716911599160188031040590322897920690356939077600159032296816451848923968813924673966172695533219593778946407984074361484635536380102495495237993569757421677292320348541166007719895740599018996741116949228547572765152015513751060485891023976883459064921244157811153001876886736085554123359098411343715981484934423423384138621752709587279755549087408180292380532258201195212944228478468322291507949246391270562060110848547454814001986114313489650597286994426276438413295253292060387645838414348793765304521543325722921552450384040650404499524164318428401259468692567287845017460358346972592433388427932643680791763261815963416826878191888287193951897127187967041988347057753020270684317384857894611965497525396330575526570677822789292834340345348607766649263247143856158817326203906378843040910506862392850182864706254205148011396715494003885858514306278804460462389768628540582069022242071815987850277337789176933602553510978929505324239030491433673147927023057659204806567410562702592592300707238226215784877478411876650689163698269131829042649387095131901654864123002625876988405211344276078588296848075277308727303325384452204290255666011129639541967867462436887071607555206159586250813876546812662826982154233311667774380473219925490660073438139779968150708637352045300149867161974618129369058934427854970965482428938989983286013512880793527553747336208472514415317687729299550990557083891574009886835582233843725442668907071609757181263510089770449446990585135254655797037950882296926056558285715387249768554506674260373250169611977700225559978138472560875112116868281980550566813077498735081129946240663912147891647738104913555012632721642536351931406633148752059756326865815440895865492356013518014417926677039579942779862456763025393100364842849572763976301776343916411212133969077628424983973599383651398940702050158626152927115914744031734866749406126730028177144533271455196052209151940376335665951726649778793898202058081853652578191799222108754659852479449599263419582800809202509365648473420792033505398892988664984967234725859425499451771611508224465097386806808375407815646459789879668609350759083829189279737660308308457851831914850430026312361350045007019800836534755509490853362875641325580422812717083746033186243890019670730229786877094329956910146256083830071858728597583678349359761758444969798444293505276060705918410758015892318598775386261296226133611191006053120771247371651499053476356450971341105833085845727112768043275987976794678578109324226415344572274381573901664112329510330004826453813579688513922168888701658130492963543834463255893202211150360546603596314056902885755596055552071197278961087700449656730104299284889926367603611752699166045359798348963877174470488766438975439387823821968660940519182028716227243637338718867924125642324187919309768869615982121554432497028736961972985167175884655731968498517288982308545682122396786701333637269055518226654846124568950805829153634389427429990780314408916271280579505025620855269945866218305179976447033520974661904689479643048704973079175289154422228298276761446980317084253408470973404598507704578835443494005480038557985742990487355117207222485425075544196187456520055083787345237092043394104403356644683306607027372022206499594338674034240709645886184126202681936407387024532036187102865632473211785092189565004259831251406492034563431094092872921677959904413682829324708144408174263362383115136287283150319930818121131274376373423601361425870898280785927330481903848221075981172825249718919013357685736611270115473900482729583807487390671451847687331808848534705296453642414852861964499697462573417198011944952493344533987499367169023767528510790348399567022748931855317215529128101695232347510657941687280276785818920960648251707420835127766985189931870905685666408165287012221573949623407395928642750148508297065753405423654184659067425260311613554458676110024641358415078062051899930169850919228372629393767955922549880584769557238367416976899518783200742349320850908783749493421314517685069105691122964243740714035843485235851393324251200473761032873846171596290649679028587491821252068701412626627426898659934551345441535911097621800289096641650790162902309477547694954628700900222701562947692695538054558412093106384219640817307419403140798331295070764029666134533585053640376846919996264218122803964877297287539287458133201370695984596431134763819715550366237775621932076746197054804489004715734726943243662431613136052602334408265693923467958839978743194562815255954574748218571443278823260090552343402174812949108472781006208444084732972178761909454697142713323444046345547596749090104451226509603789505786456514615021419933421418804027009864763165170955784135833112710675772441369597985197128263853858262447591865763664520091490743537313240015309929541946954048237635933971548026202412651787490405966110422032110193563592338383192377638246555966082170483935105265093057716887523844533971900385364491637214509281668277221525916031705598997064875599088813100141626879701041506018945634639467745714090916665049291226286561329533593814433847014567040203458701727506341196859247181886041461965602842017528666483588641848410676602674764306526398869601110132003111662867967296940391226261506767485230955190318112567634093053772991773917932577276690075404168978850962703116696326751387190717989713758860073828295375134898719586212017879422511326795719413230639441239627811714880755653169707430236338446886278926626463851913122316629315539665181467130027462693686195153718632532922086070019153983016139146571174890010621113483695142092363090415173957381948673082937812711941220221588235570110002886029040509649474703295347304067717548840691427475803510461073669652149487512208472448989080513690099529298425276466939986148967351020183808750587754275662471792006554030507272277465183199323497938591491628086021453393533480468022861947670149670013124450528401293687690723170119087662503403050436850429100704667244261318418504593818879778310514649076749952017464381330168673760970696312173787095286392627013521617131617805824648792239552418624006323504589446498716675063364664714163017710582244240966338600053893064977285418746455913590934898001304609575403469763396689894950187979495741161612889162811435793001158629690483613671046534021898452764319242273936822700303501393389930980101544075356395718259852304837222223178091837263781591961998310154112317001998743143199366755581636167298019729803948959278997811109797044236616386512628168484202228491700357272724001004368904494552493140082562761107262789816952776118017511670330381460481016864258405237458721664343022217609032957872361821322575338695338958301049054470279920751028609167357261096844450320221302882953241941905003351727877172680822391326063363949518723097444299312527161949679594182812362677340432419258658205512774949619650041203773901409496882013403152912573721107409407413070740328473044165187035405087747497754319951667170975759313486672148318050180443199551663770251164723970649008751484962552176679640473605591196837402447200677121185207072040099234839944099134927520474245738342600127734589438331764783860095486739891395552979174805347309885536501966166608670817789180808697809195458192582955789997271077577231678372637316104162695172298752703481734101112869820215979902048106432981438862276813066118451612558285271630767694452459987604440692061688323672122971722547932255783887025944252689854578376733708076821467761541191642257093987586918481602996089220179066512971774871562391742714025263494233067021404379495748683431818737938007130840677286811201484129150117648757459151389222738363239207389691592214484899292220889219457199293360878813953160775315855487682220557492800739447412434621007166177396584293001693124721746921253527557513008890193146191822286608127440494432688218465525447914711463792356382105260791434557675272593740407989944629706280263868293853471150936473454577271769243076165077291604382480529430086799259601232272523110507669388169665987239935399738927917911309991496571960657002073553497378451794050015767454373790160767754525276897046241168086468482366714762984002414082359952282496837205626658680762664230778825208907175354986688991750439083379444217510441386207923824934533847798373982990860772553335631781875877191733707169965972881352806662785643898539439475050139047934566647068064436002385711644871836507376069314930289988881834603559166437641664357896723517180344273430536722112847327721925715974775362164869533202875781870611907329799383985067150505386267879743685676485225034392609312248412832231034468288785346979831146248957703667561517403693530793173493411047266360019223841863238526400379136411743955692529357754384680386477570146396612799210038110147359938787580704840134486987776360177740158972769257964411660393823600491221010246594453697155134337256801158658831683171746700718924505755598699319428591663466157673461382637469830458549010296871530762605499781902864626417226162607506529977594199597211459828024932981406787588635135464053794353180430305064161767975056298020846587754472957597194674634757143119902385911847136702925866743226626249747198578842064373055680450176831763878939889623610659815243921246296709732892957484698148210935387267032956276623438854566437247067689495222347854708128566592720792037101441765013589384580781974687021394095427075214185049444590193599370307668489242215812090595501067909368227274971142077524609335933420907731477141596645897345270001887545726492498673576868810562681425448367438307294880294923432571043363268886890417131354308030207689645272983115534423196165478091347184345579350644980092962388179058297813936035354804941130055736337206341541319615792164070923829823778500955352336574240506133089250791612435828087748660983178985779144043919163490678628133265662048309779524917567408030727857352354836852176838953031818261181519931363332107124639988996113896730783578060384874061692086687205567298875141268973938866723588338880573994599226104073099608859214990197047788319608583499205515750080472065773268620102573167469953963863716336449643123481865646908673088185437625140563715592589360978686322905821619873642265408899024946434153491851001639005398781595562042988116032686190012637504376593925215615809051043552268056318234846562048281690931617897065916788220270792845330998075278434853879419397534565307249512046773385497687702305549969669957545285987032010303398500407613518029376138796437789236240484694907975340164443182948069222709947742516588472718400591447796054142743136309296284824844933460312419574261705057756004893329481042766341494741737794789295065276743770446464115445437069951154278285038979432909591611192003169383782468919614625794050516649019243139398218425719189494986655041493233770543309990731525734988643039549462529741065546015423999467763271710734937258984865376918522113876054363117441617778629939397624459817705036860279644567586838756094663480091466242008227620914049495809400265810110215631375584879440644738050698744455691309628820626294140203647289779742659746972213530962144312047585994919586931846722292441350999339577914613972029018111358876954677640510242357455397791094226038252614917396555247142931203313953274040550391554539970219867367206598727380327596388021795627682236374490171587791424007834514385227684728909846948398282534286330934376545964791771657488771360879708781996792126700867781245751340349491930224224414611294812628364877892194028674873407738483694204744338340927053793938369020768858835343356128347082493136314100898494485821306201995998872376768980073724315919012716946435117235368660045328739689213865709798755855015357367752088028087249061295913757049106458978726884863882497707175177808084278996101049708039577951967960693846453367753242619791333799745156146004074691848013781937536048546229316179241560164710633890195414263935714097176916394285413315886590272994346530392147150309785195216149786749420277236597248988060081704650430041849134930729545528411614292667039100199958327320102209277960588400906235677427292350766973905730361400966111818537117066641780566982337349678433395736053855661064125871595636986836932099526351127433614336801129364532703911520152533886570143428709347286395266449750531834969662783763380238938252221778635439870658317555762902536233520774662895271597227557170011760423933729517533548940450299181150773791789564013448022653558580469658774585066409157633347687625417823969648540005285613339049086671781593046386349217601260136142909065679381182122583556705047049699498190208828396612138851326341220535679252724441514435055524187987187805519974834232087258216366116242793039385714007156761884596232976432111015244675506564484299693610365617265135756055815231784558890634417718796298917122299795753446853053497195798488037762341353550028196798284349742032946550233473893502196528927856187037489892097104528282426837823934995294818571782940268762691469779231527670896003992906265092978665374392318968975758086029386653052832244652969316034672588147055900856400178347200406070945007480827550519920384102340734875867604806667387644023349629103691387946899722379833094300810724397085356238612617362301001116893597349787618604849329688990990644120677235240146619176721479981612025076672008399733767989101973660386148122529897485314536899675120135309775608382334414816405275530821882451225386023247335199878221605893835873516701872181997507808059591252174040685439340075893148864713508996936016248242531551044214214596606698223756193140979332619020418688868711547189876331239999778993423068504841654172912941124796321207387531767196026642461737198469466794235850020904410003421050830685823338970890416034745436447436244268836138519221422013580317225451466493176453378319025868196454747699248840374742491008681718041050899318490370863176296213197701343605257872969994651991507794876731618011185149288976723574970846878797702293837056015881615955830179397136507301538009261333511652617469466064459018361319026453243894579211216544966063015057958744653635671390906604615174674304680193811958744279383175680806565237511434327307703278849725218288160472980419325813748796919595000965181022513903216126828358842744595219117707947500004837497148033636004684572060928754580829195471642046736208384114432553868765068053919671427196800883058261664194964750845371737804947244169743662776636371711957486038945924222119636774429350347820512036010522472614365816143712157745844985820626282176311590121868520552152940930835141359947540489833161283423459622899887077803698765135402501182643514042316655314169694843325424141564919359842481744087341543070703701035293729637994253990294622082952340735026672232588166742390357036776626242893667399090503251391919379386408222913964739756124545445456505634217464334168988406751495229926058214207968483834012273274184129443676046455829997133743492123819430033658314846320239596910482640663167817579867561140160474149641954591764966960071304487087245927190885683149396986511368244860838146001660138731866801472840769358279478595492977566545348859723802598179764402162645253196054329793337757524173183058301848095753969052485494431648027687820464871795253297166310749532781051145214183354690979522574214761217629438658865806598979778800017847677200316074864892760304839780058141930447040499675363047318888864303473695951832954064637721061721202812758098441388960421049025454156310600845292252443764559268093664516265980014143305651361903971082530474179582286756979136113579039065893041135117416561588411272252042979188894560074345509690981026992220558148931503346939544140177521804603312672404933146582479509457617381270999019180604228098155636165944539164464749730762691075145226344003645432766386130732776344379653208975700463293128915279758466799947796155060944590256773784823400991831981615194957299517329419405071421717210466961874773414909365558233157855455966016696488405843148749117073380821146377025131907323781168800937545332615654139130576712026749334423198214652497122635543756195772023085978623312946197106845273651514116013350213741206600616415664226646838329502145521127102525856683486511095564220599276630804402944984032772160385224513895001843223700523949769405451799270197012690344200196874968375310303813411267397542883920255222902498680354713979409772696273713949311549153919737869387091827396485275091438073180235716285022042240043661814505999255074162688953940899583092527010092459347379454873353727307370062618240606550075016111392282442982838028244458795171942949646786476087055136324254723653650991374296343149602972043894944753962940527834964830776346838888027519376979244948172225928620703029766473146343968278020417695386066180498432645158154884381854193911998175524921998534911633031753516512053144178495931490664384470972278579616721606508275081827866549643334994463216087320311735399896849615474275874578677977360246514684932161608312211926010430756487072669019941354432006592697211515711211553860485031449984782947874871129898041600114018880258227918215683821310896253445889661390697673612094746029163023835591424642637388678973823275975480726012414960326010420577973246706050518576014849609439735683574312661256831526332358538648184602017821304794004768645206140543279678648883200959639030092770704101214573853630058559681592367576195204505842575109419738881083757815093291056726102237839739971051525261870817289217552809910030795770569037993646908410077024745817254920466540881576023787431749653339504256772788242919656399528530360636749934925536402897571631919878699695857565025015906275653974363265372431443981309072066604769533266217652267289355588478728652185965249266823821949600881934554009801066900667917403201314187278859659905337994613104582773093439997695545236488019706352513593748202801525323562989990019707102795470380216252414376240626399641695769827651825066891170483104806862676220241322376671057658112236219923984292187624640108978119422246426786577054354858959691135262210178839788383832194491902447781403167241145144557609496983153802364162128906743744201391087481650397834179992926359943448080843520798397919043295281510014418331762148626889589299120208491697397637309516524680668695886331630707667062234963900295192148028306618155217798503616772993965663419922445545278707234758454482637797142626615436330941615326953177948098883057122652752200045634768046238788758786208790478416208382598269212590272482438565352401563381226138343329893086037224240739473271151877910495151020690319832340574597498603624301313830516145478764817202416723856609350041335470673611933163968928004273159864004360404751987489213903864572518526491686895874711146752066056754826959503572257589318390461876647875320753074604243525984688285779570643282518685128983072453782021029319760249749845023288213269307888229107136870592942706967827327320369589006380128422378939932860025313163771649729804898520650467514687601626741244951165643515219663574982866001793600956234736730918709033726646410475783869488678814820791718116151715736436217274878690789750449750838879038107642293726050733505625328294051802608941028597368189453670055061855146497362327204272289018473825737551293529576758342142664956967593541991009120971164151466576097330017355509874256315542730573354871852813118177980021357542219991048616018991430556085098326524340389448945184250860537762874419780425968514015535610001871898538820960484401089895206255630168005468570921385574991565502326589677926678340856675247112148547032446347703577595515803184120911084344706356366459137803660492026652158077262062009078968024418476435084199496519365418047603994410538427845132674004560199525477234676886969526775751076150545775265525446460261208592836817410764700740272732978492165395185497600629378558111029785196438906556739216079056103871203783681123815259361195379558594778258348274080175320164444458501801216470417258836412460902984881069092995370960124431869986140415438934072532865862114207962442701432253072299534655081583050434701359189125901606529661004856050633355401832387650816505595514706676519832918332829251954287496716701562061204625679917796949050029469109385790072097107434910900707189416490369118616772808044405920089847323551027028706565275804652212121529388581806429953558486316735252369049827053554204429547154652578955762718592602393409526248287761762610270285295598124860552693054496769131826638868474997563848260501961206019969195645616725579730307814313219249752665815636697372320080687734972816765007400978248943795279351042732566850127316767436701294285458482719032391360263173708067492029664981084849622554001206777876095187195978920465049833433543145001223623992711075284460427265034995913597760178419577635286838671337629556374876507560567477083696218856137069648160856031308189919546428306196779260772728954090589029053821825033018599230801409286849712961057221970388239731885755596705618926593756949598085728706546454199780254089301743409950868806993527832690824891983107027640452461580147732246306495302984820020076971494819460445781799073378040963633372104394373426359762898054356209325648700995654072884725456445862231701050077834330340747435215242324741761387284002022030148559302024262735839083726263384637643955703508486488067988563280064689427201665131633421656358413918381362066526338767141238897956035132937874268794042535341872022920411256583311917498285554281460910311648738586498377858997646839807045300006816147310170668044482593898792814845008077943463214092691851586619342502291289353679725710605401784568043436467547342927248526328046720202794735855350067407812918232464760994105641970955092426888084244193783284667561919349542795131789387146625400232045839882235500223247456818974917868552065139587213378376223535998208771461173125924894186205310440481429057102087531133137093122665080512087342706695852290317092166176113565115147183083126630829191921453398605469814927728375248910326923550834392292016310670320265679281688443127501143267764609186881068096454600101700144903530447425995777679866128388686343198766082596783128122220126062719670580757764046364596468781760704137019793406008140677992017972254679848343734790462878219263961111765422264713375319345771181787960391985992520063007351497517059269390199067780515907292021673844768721260685004198974021949003009658654647215385669790634477191994300388939321814892935029166919609337647404746805706684229324571765280071891536355494240392247916567245698164887642096950390443957551510350034368928706844286158278095517642945992159422011410298090770276695439149015299878000472960743575577908613658826063050122941292132203013394976910539654941371271248887334465592620293819213723493150101062448513782778504773199401276920254741332493835733100881591671106184615812237421759352183265782907001489790728353994056195079417580727171384588111013221011855866322646755273362087537605477564879898496228201520367320892617032875009453108860384868174285429679527685224112406226587836744756757902953215461497622220079382749021962335972178581052022686562173614913800164827154198185729218691371699323285503676498114060347750906188460050518191679482584067083409749203927488857741233183337434199981164512864757370894873936509519160536050364103861838886886004453802970258696538400473724310845499459003490169999083825364880240235480198141403024560600695119868876398867104605296107511071423602934373327456481123492825781690649924236087127562302744904437432512743148744562473881134834225157310399408160012665132736429786333224482740578432553465260153508035828878374318385629971705509866820772102891719223508248601824252492306820343345903622561124191123584517084283435929614948687933495117779675788837621164426575876276054686136039537832714454914187447509497960162516807214949126340050589622768777495901117809522910498977082048001411993246067569569194725572525196663113789480188263939684025739216166211539263051411108307253986994032329224568736081880570526347007148966439262695882819164306188530025839077077495197801433504454501223516899149137688352030448346242527076737103051440809968633196670243737096140489578486501478076339635159301474970085664781198708700421155820748204539993592618027416489836703014567029503275283469940038138079283230496269171095285301017687513307589920741053653821761307839484012641311361439364442587968423417166345389547026245985234002588708538030966091814792636200821410294120877539187774632131595740390311196884774935216497238435899586878453500798895511998636951368791469828204871687188100399732785151947712569146543754854061477915536012195893307670303653794002275878888106826971242562542217250589035839266699977916703539151650750119605216835237101639096677943458274983046825713309276193242753436070919698631703594134802439996998157565969341482050728032541943192102453619430111836453672127035999822074109114632865524205171151250303066456843545970693646166164551206674500532440926959381036962154995946103372485577440360138281676794639205225748362262759879711403151742373109838812573894023968049020674943901480800786533618469154746170198902937080959756845667338438597072629057974523818752588002398592352176176030576420558009559140579831299977559323079495760524923118590991793961007727601459760591131433815793653628457784433709513613285561803236056254574970780349227400288544154080125552520798858929153309502008720340210468332073154946681830679526327664716595338543747773732039940277890276657156949999712364371903220355416441202479906822996222117954195248629691379902838459100092602854262403252905842966736336375395897186661239961698481056583004228274402727553325082960977495543880046404117524376199419375730722548951408166031040647263291723743568669812809174975913623290855819369452864795785341345728644089342385851896743227064159489619645602245845270055822445059544553402892165669061219439851989750025513665621097715604563825119800587178385069731303894756789321208997686514572575407982152856418535752735861363375373673778167605272284789273691141121834755659444181616534383414154047364789840967941306494112195662255505152737870776875489235506298687763674595952366330995565759570892661939810410529882843168581921208313200293847798629830193559939442750893506300689729883945048876801561360919918194496409897956186173867318051444546737117952174826365338450178614026032064419254936721856808777988553137046616864910066207511317466804596036107973812318782261703260639672050626505175358247058673221100120077039496015553657219862636813656440454449972284695477501370393532892596185545800611557551032843655328282399058453590407362423611274392504520051519593922527015559138359297077791652612157620053325766731428692039555044177408410837371288225538609320447108028885907739766713223992471371216712883723098352983545943689694359005646011777079115413943282410681138591559472632395533378879285577164464144978933035963240801610168445464272025239089721686073948974938214197558105567864471055927696128979681597540774005417447507341336576214394424348473522632299745320462708138430799141180329763934237541348423348520161164218200153354237756636552147817955767101801984173623778764650010427322775966402349320206705781888158726766758079492002711265073786182267135738888039966599486640697641625947387781826017664910295847560732374197714730314426680946221338349781067727997014000522974518142680925879522059722408518449802122221661346015365821429632484846158909167270153856369547543459267786865519522892435338450597362454705090510648787881528921630216143516791014905227516195985469238935008394986275925240547860993635861244877644325857722497939636090721205207299727556615328101364978076206651017856585295490124292846065046253802284575611341324888873350881425712291869033155657253812547185648290797189395286153227880887275158644171387987768188682073253431187008792267971251773102847313513787896810793090005114346127198321151477694426147727125312173249490597137171919393714002067781343836519678737369845643999090123103233520010197208037484505863020631088830857460683874892611561341463482892344616652322436437506107487647258228765492656564640856975802133860250940383078447306529111685370254251480295788542497385152308261414045031316538104172765969807740192327229777233847462121769019175799137058209480032939232532725037309495999997177417060228570608401710018944262607842667342008839312822505465108532703014688796192276589694062681261313809960617564010977600181387385817150545759189161850561198605891131426527515705663262323444481633670707753984988870887831892835445378918464791941846464456657290315161538658397108186447800091996218708891724704731452506054427287110943905418293302297165456641848517537328080921650386942392712540175543548217220930419604307271808424031179621908881437232653917743654448458343793022366222772511381573120981616167590862587639751904873501495336077234537190521725979419855480459446055491030086978934244110036304670414129891294501181985600438554832430658397527587916896921035304634817243104937437951685178976527493842272978828520920718798930316265847243987864759775043050317291325928346518890964480197051158344879303920392820349580343454635159952626546481961614300414697870186227905868230734448338688717058195994999891307897462626614867167772078861892057190320116720696432152535398408747138265293195106832139233352217892622718704191086938769941512619609161423105792977291914839417840752704876628590180778270971527857733726402874228177153603918419504880308968934891388977493761143781574136562276890074774908299364011763608074954257774756704483884944746378350769649873437381983928304486321120024214160503113564282323425082797007936020792852629728587705790750255342520923116883501779729813841956308475540418380515676787457798244921810804062143673965008146690494785309890959522857425442451797867343331508793940178644438605496093366138254712912947612739900789455697238638020158108156000289893409836104994647971023576142338998759729906070951419719330693138996752216634213990070665161918523092682136517106229578845853263775653487869640851000752765042839621391761764011373912137737855147721822439849664253885067239530146473947754543636229931075977228484315786130735622244652877780215176102898251202611151771839502610052796640907038927224203890839087431712568564074106657331548753420105628941582440332352400504798445388753023838365752855506509136767599926910995663073082113486744764993115079182088874619432154985402219784852306511008320544933721882798451513454432632583771872370771709278839425424849348521489190380743915360485187927375164052652516844930898245202531910200597040962438946387742670493260295664672045964170536332474512036338027564259073882238412384792748245655226793058981016239646010535521127566430827232785911221140993367038557645290931087022471799391268075378730415907285313027181111901167285041353155042575186852427477009448153025470359378746076712100947460465100448962290708086073046486005164088832101207598289779868026925785034786223654416206807548016176421083061275243094516891528590085594333561347347133754123621299249423129727348966782672930985201781778511616710116901393007929030618259798772331148564783430045437337802547689501157608936191341208698982153415762806460395424060147784597240138556258999224184407817051693399809495061535395895287493435449862199551480233227974641116831893288446051265318425374300169989914839830646531666207726057309135341600418932717760617322495682671229627604760492543903785734069423452249094345949996438855435201709405577622166219633005288874457333643695506760205285651555929208587403102778931020734126751363450278797015709717836016118462696331871549360978086633211583403049381493397949556841931922323045314643237888069926285469977963341408678497970977557378399835553269077787275746655628036792494146377334894080521530525506119458770112483621298241742118625021078838482079777262923731411020125898606540241797114440410931960179291786919804662191986217885709023442291503092454412941915091701527481687151637853165546857867032146070770908135193884004786017590712257926505306086995365905328805595002341258056825848175801364403569372932819848731627171097679320669121755764333207485849648613069762687672361802099798418901377569289925002269542132770258726405310544378436666389588559244908427943496270775856770638390739233624467094019770050629745701288856471473847102750976916852008251678169487247981294465934615025755545377108563255445749328786530768692488962414834178313683137343086988905299259988156264842645581872037601784448740708632223698171134863593920844698941131869207246006085025244373594865575018704627017802485789577531150939410550092273261996114075457726448773738888263590224976719923718570856861227871870823293540738228263112213457694719717573576793610680839637324508304872238038993703359187569023681031077446221610286611671574982395841499038003454483334939832338235856467251328780139814361270984335289528771791045065369819884328717597217219158101016660642845137259777769146135503829315476601113547865507415137403915928288573000264887412183847277829098555685110058350519642447118010399248855119661979751293274014621193830143413051223356089592666546723218357795615163682299729471476419694612139317139004053375380333066252682925585695633957229010362841626796301012306670467161668251644587988531506190170778334017212974796700266763761828329496762631505077892279777186855588554764096177748303657658408033257352142307691684077861367172242339561090065709271142576729399889350413920595918324066303720840463783750193576442842663114464764129994403305740018337909780330097506744315060808116713864139850693876894825385706549982833019309876647408631726890387992328579355857963672207380288033455640137953334730220198941904214404633614944163261071335899888146416722615886782555079043985085330562670093040477959360121505026434562248392171649850630104430723247568611178917891408939405829576121261054369315435798565991958117624880338639596078857433569896054726442398783304096885842667594254550643703668839272897764793987552115307141235077257774490863118670216544442980540956843452144187303949441869903622995335993158939349922666826678379899633256832589456246768488441097875568378285636021304710474069076063360972640563993353537980182654981123046296388280919432516860611862011938475042650337351812938293116570973575996028775764174279716284948309532359035493724438076349564627297208980113258215456449215924418218249056684816165282414438901936767095007607574703439922157582530321666704171204504886484043903749064690163444850307208257428656472328682083917976498244456699103769256768864699301270756487459074798712319730583301238450371635995136189677142631140704834511001100592818242560927527260237236608533261648660251402687717478959914020881701206083683663801869599772628642910799916454662186139955019254658062927266821799057006632400824068672311854674581520520551888696304443508950015353970391225647765207527136939370653222128513236928087186269997789560050688547922679662774578787325617824186700435519319313928050984576453419264074035336751218485969136618250289678649681699287802409412291596037634232029576185867518617919497019400405517831288107066324160735536093170315388056633837596745374457240641573544151608436583735696607525828396950950419039840842515169275124385076641572135364084008994839771068699616804220045206819251623736407750153984716123687048071215010244470764839080405232043792982574871536373214081226140483407162629907681266613409482155272215854222240854483332487785450995116082238342744050190983537304964407194090793325426138697787302719965841883807582757758222212856034868934669893992931704156837819964640915610436431215234496831382003732111466828381604108318863386079979977644370226322132921219608657337289187936556814754976230184512247495378603641061472426285442771304968530797278076776212877461815835006026879765485477769070491947086970017713203941430574953608085586207190924273144665899215489144808588559433721028033096150189995993667933794942855988864362089166078509132922219722246944068384498163428218709740954960525404802699325152269445116031970488713346982326297643544994714914188758238793882303771486685714400846678482484621702255858379363194616412213160296973760040861013207596562027650157731837310307146478074543845127791358700142672521975727777797724532964874997273788017301760417755833220407030517945735522276254145698192254809361083310176668918655715409657443116374720164361218224625386437451225212379868068198037669262131407578783640353380500651217621271152539331816270919276274751219458734297151880058110470676668242102900205341517053878983203659460122139658937776120125031279560908387701103321509042330679699007806886534916088540730039899260966911491457570458480208685292640950777056615754905065466813697731507513241346138400847003070970581384730345088890178743982815193738162398826872049748334422778657941876619162506404896716376010017136383108365780045866755747890957133971608688064813324820759460129660072761870233819003904898104857346167522110116681135829043973489276681490199306094613642090444245485292548262219102233154103453493523745939796486216457771135911771892585212917489427428628102055353057972522946525876941702826758235921228959074139951418486602750336618607487427160586525371320362496160854651580563360720771185431302502271921096427482680225193636542504328003907979816282344126262934895506674349088922068859169408290689034280416180652057761271320481371398603290357057598608712327456730249835090565918332896948162112166370561114504426881853633938248882034902959335263365335593084229763416840515734037777455665897636518034735346695530857216288849930863365232334286959779639577769195977031869813033754424090383765128759855595266264885242932534661814119266624841522413648041413963978158209869581349141220290527415940521987891589296473665982122988202119954398444444404453722288842448331627989754222442712972748179995322047221036234872499458336615375216903719550278354109310607132807505328846992393645223800647796694824885746354228566102585577627747934606046514308987204391083791134877809541689974123725440669473521035452142446771612321653896289027118165330247619253673370248519562373073819888418320698826242980830407195931852531666669554524699818136757860459137471835981660935204965884210024955257374230670636899178613840344146385676650613177673748950571099885666010846527274775614850411715092723954030841639543709498989337429930103092005074860156476216705163691339457206724915100926173283206218622119180823929994099238021877727572661742318348480877136551560057124536986571239130110208036727702959965925265635378760052304356559241691534007190315678818290403452149881498114013176187731767812239601126403430673900087198049972829949604518587353219017103871092104657520926141760934190661508649845261929945486670717705891193513707228493399270168747669747541135571271103412874342911388519731794434702249116932155242718244407188722705355832775354212685335063636668217876351317594939510028723005250023623770213990956004601932818705764637557745240301725921340895364244922416091483400253291493529924161043737026345848246015357502951414751191166489685465897805463673885559336358245455052679837997098319612785962052890828452670824224331769226501981502842641151312884152350811812179788591743071156178824080452295874019371065790036745398660885453450982159849711308037107241788726894449642520200660762395743722536880683375456992515123763419445266746719989768402844479090495241623412712414536444065646668242798120584242225303846101850463103788043939138759459679059702416196135380067467022847627163753192975695434867487058801382714378133045257231741953588341967993043769742526079646358941837362096258029241834632872236590936299533291916214805810388842721362326474820539386358918544701398006437003708073659567859475741157033372852967268156943157587192888111170557950246578944180397201486261786195692086490474457837183891826967588764987441495840625595135308579901635374300090527771199007898799853516962687303401179155294824445878459602343589207659685758391235366217204191590236812116038175682541832559510563884045808392030325024628442015157112076561377711422027469584405204945476583636646163458086987814861412847165311637223333386474954287776657961897673480229183462410084058033339314214785409553992112113099528786835842047099380598395696815652667044656813274494490699953267340730310505757083155906919694746525516397052691349824642619466746775835181366008200868687385084745887501405068297495948900889584551639727975156426167339671471264076510946993933204666272849948191714485622225195563591096389317318596954010005225056261163026835774529783326981766506407645741923842276767798507285679719810490860518056759865237595721708254020605333117941777797276847538658035947789535124149666756883594586888258295894736614881170527381354454498052479045519421764278697857762328686446814679796017152183706234391989733666601820817777886297949361050485984246474584985259764560863744900328661232354360438631026732434551832516617615341299707062202376479720261902487154891457365089257902526990974399567969480184363770295593669523851845462073181010024921953490132381740529315493695001024922401821592636654948458342616932086719808249871048804445296262783715858199738004366760500148391937716183032921092667550123221337025302282928187270634312128394161973332543675352540925243182226692820515155744820007599634003056952964247990959696379415438459899714794132227240824319933379487671293079542116124197923003891010939730405519176245531754699961472218081031091627526023773483095441612105791898603340021113755609933891079442420433729979536089192537468523965777677413140798416829622422921423538955184336567191023611874120984113815570908563329797195125107088576054904639436979099942984300100999610595335470444225401409519670709381573673121938881384080131964660454022902847713875062380170318049728364987159492688737977854947122040161937614561752011165263130137424812428121449332153356268126066217808700559793221068903914699229407931973643904174348170495152270463809992541200381837952152222441117574195522270182891749647534978850708310482906615584162207193319210057999882793009557202625023201332367975661821300869197627239405570819789443704824970488105274276142404559567156704484700441468727031439876623318262565446817793066182078054194292954244785737011575606720554485400489751256390696247896467839332687532154575176769550372985093579737122463942176545126684291899972502871835964911053284986161034012918143672342427412765286584214811928492200386815228033127436678680559916377647229552320426207808972990293023037414495501729377436612605823030019232792748600254329316729510506960479827527559230933957284875614340200537550457710883877832747769613777939066324597353450870702830703039135198901083955586230062344200517281992450825542476097641242545204737652694195312289428316770326285722030868556883722217284198629118944139642546741241629842016877173373154501389440835714115260737491320519685797270640194849489516952676569511285104875956562322414355153352218356802847025950999538265125634355534185279348656666871290274888964524552023054482076075275142498189178899438543863803419134700511559372726130938640659921261194172727713800026902861268130236387716933369790431631238234594255053290261117484578856931861752868412104457908708546089123256808967257550328294212347997354993584737599279328772861627328805852217575909200197712056055504130286029320503849019024071729581917953423291191860772244630163294833455078823038576655237038265951446755885203312409102248502937289889568629603521612078172294500797921265351816257826354704352089682233004639882622137482901654704658578102998555145463593202133949890380635907078277427526530553969164546047244210489402274921327873298924282965645236325356108344026430811038022696904272412604439225592859261401408091085530189813200721349912839638974308444121704398215153346003084066084482219288243971174806503576245162234630026426670298336506193920793274025407999520517932327752631094886989043240764733757884413960864840195335921110277179877427762540249476015474647356216274029507836215441329757505172305706473203195385801306305851622657587613063227674603050737959720032776821185037809239892774275396323213498879089803679938576707807020530621002203068749398128280078250649509478350390312479723612902024135103363671832071968964050225463756275631946261356864728199140851937330078706230222615851979372046976559571139739143562094068676559914669845003380071324507939394782223385077698045981116392523368201528349104311427794124672074486646519009954704954548021596190724748095029861216626989643031588403111097392389914705265936366829892572138390132881085054821443223111742177679167314057268116569227924328757077658517034877945124529763379635172038323408681218231493252135708610412040075320974984287251487451476437036622370004904373292426990349663542587388485960012025551527944802331166786280057598503253790508113849144475458605481175378990288135313124698345772192143441907236809228035156821162766877636107714064759650008557451274124990410408811862178277446881949194911135150650948289184355624961058300990292562799793782122409488954718349572882827920491632264617752079946535530239352593487393299578150095681819096681805137735842145685011076315346265299914740286223695729471910006402520029303222078219050016933327248129205342256247545824237439153265471828531353052189476926164601666702443899948227916627612454005131910685100190254106547486930239070020993603175625048134505973955063997867606857006708672426326934188645017583089255474521215403994588996935165290598935914150026316058772911985123710044336154648963720779226567477678865954870629678550599642908478357677496222083564032640294120223155569787032304718962307150140994042816548161925664916088048096105222487001384431669953834978938816926062589082990823670145612986387403265160824723122575012520787579267768758586251577117443841497248777810493256417484885777954477986315369729957952568463250546998465277684358754173367040571938775448380001935012785395976746573854511902770391382433466676617511763708088256351102925655045092984894229344766856167034605187719112940082426451449355170079279910516717684755088042317288443609844974557072072492902088940398201864264148290200482498328058285720315814551926649431373681884143332571986321751898194829619379942009537485065852431607407780816383683281984376021183294876152947660845567426308922124377598243527970641893191506727604976160433669916664295489766718969833217974560279853531147922744381327302357193436642677120963800987971320517825441484391184824790335167729607243375523720972117764846318264823457386261544944056758535763792941941798266682063082085136330043547691606680527215867242618180993962807617620924620268228965005314546592997548928431273736710363615185058789189836681041548387230817345486755745652622657187845439579021038347137576590865907815595355811390653572741017910146208341246361374784705696043934727121880806755044416624124732743084789329293241071579851822808813565657339595013047727578157746891168832986290178490138798390192678483973662629261862243783760154108646069556943346525101693157196656234326894494211682686803257384239469799608188531166197626185341075625644035377756357792954093139493536784588520349130861438116505033797690251172931987680715340384389971281440479836898704852533448428791522260312251818554048392591177480225180197663191264879169293382561910652107448003299322472403726454065413392348785833439845985923460818802971211152101528119105269731056778745182557452245409797410489354270745071875135615335698431444966692179186461638476721536425281873071216409958886351245307926260599481384038470228865396549606131748589431504674251861444242434592624911568886061000846979765265438717626429786207904251186312452212339815236289965138948011201214472472205498371208173332008396598414025478610468940949703416986505706949351793951931094577967197594606857162212516765392436570356237969074752392321436005891385165679500635638501419696757890236578039256743940998021382907898514730217764309562818652631939589808517053690871740413485075439060292092779545109088989769143348848416527342673878840703434215836341126272172440431562860940633010080448530311879490585209508887648825102716620058401199038416724903982329526462827170102521926043434663764131785113598508198066150005166452562705964651130418059940255756523751312541317187323407640465300673877729563340233664235681329831783469146862127577253816462866135750042838163686738021928022908374187339704648623384741940790536036239487113056690008101088403990408358629556520026601324113389436124878693220493082746420379251642695702942219464558954670227603457778372187721069978743546596285902104291905251829306162713582541086014851994405845211477027182522024527400232572768495664117778834490892801067303826952678579874645906557360631516611494805427358429185484968698292083595552075767942643541070392185260454997353632905740272269560421763975430536144497150776747511788723686529665058806217422292916134456760850726487653486905789936526882899637651741425794753611703206309628189222395376805560237274687119964053238625341510996034748298383545535675816085206312913225772396365630003228044063529261184523771565913116359122088930694854527250735981093826264904519566597272854891498140798843908009104604514197330984329668617389369750602188891248323905124025851843966462347416475802549349319772650894661060403744628737681467697454634914803034210323937911876535683105504434236920078853021136512265986874881777544014945659627710940161691055351094151750129030195830222272529467618025523961980242996434242021206437398821608293420338576443168146102154135075834487633725814647922826765347504017137509629228001971142256251550893766213866928041574784711101364915742658240016753048185149912845119265091593904349301551288536818510443972855881984459018946804394435970041908389586788493766513449190152738801630697288168998492086896105576732659268557981972960016597422746809087232956889133246987542056089475068586045957594708683055125644138735501368805257949347432312321371291874442973056032006344664899120588767596842586233767771197490903556802854097050321655332636124427366639725527648670854974808674212295141530948086262700014575816901358842209815110959512781330845507759581816800592289124568225643840439886783775453952542122355460064806705172813246891383389474800950519379247016740222862833468970964378773132676061144410703893682264149579568210281089859214088686510153148760991725257660542429177941201382682803462139604258932343800166266844308480779339838760564871921821154897274404310712472845481146636961432991861405927705550331838142403322974815901840872746882119304362537347819536748455935083065518274276594011318531067164707549822155723134961957295911800635658143140421610074546468831969076831144765546690361320720707502221354959327776099523534234075342542283136291091114799388450114009721278904325881775052580021872586642910482237218799261722545547539617251248919796354634927139317088697218965283725233802149759433543904556749250762050581307318104531029374207526830600121189550068429912079806940107064579111733464783470571353502776136132549363992787107968794117610016254525711461039764321144661771500728043358907379100256032362970199013024606395295205940782122517719504483408533520670263142646820401827575457906527813017895154749412207663693528641502338626580053805479305967717808145459193570650102095605722191105349964508522382267909729827263046998491211380749890527972054172976526180895746792262793165554005489840617646398623083700377740233667709810379521461707116681860103251695214648950292200435975537840906095936031076494284518381569776681954340527697539554138866883028990075456077465459266993872542491830204167418343994810535116573613707810088187428428163320250580034395452836984677599670963491383674868502342606097816114081771993348317705436697666151884065175796581947575009229011657827844438909310380814566386915144743693115331870520157452400930041357223092116832666047195984542559965911142376657928509706877800616944715513935594244610354994303570517316312653722128027199040852140566571581125608596292220387177315493857748679126777293613322839287026522278186363486287514801475240223092143518177861072627357096474489478135402784955187810547596365926633637039561593714252209841495457441475778665660424998777822629614630725857886591139396117225123638303297510399034815899506652326947696012133263317146021786677841664853657460854345309568394850753668851113931397201345930719995388914102429946464740253129960025691158824268690170994360493266933319670552308328219148870918074056903027159435205097282061006152672635908519316907759962929954834028300153040176187914336204693555622169860480935121240450416793749459121739250474039035696725030988245349090001393182589684619781746156282814069922446920086796095192259043033082451650561359852651257500732704888028503716832152511734589646573987460590200053089276851647937253079048379817763406827302756062373814239539100562401142408599796586400184270338175465296109306653836725782523646552835529194535908682903293488375646864718028457675088630452376175097960040349678681541799465727424504993198689165512536918664043945821292983423109588509726327697473201929301394348981234654788723020000386938384062470220361730679006317645047902361178707750647180741689834508809635255950850878089794114686221539137467944284158965920080972256377500632418656641687256716804005509807002768702127398992463647514219484235108390812792569660379510369562148261064572585889194660061388145305978640379747439236301417339740394055881655525277240800729116902925112876438345664061527588680627864509243453505252670994572066689985499516770465441618526919443340453936631979427516101874454794590976918201458343945354433840975136066089571045947178943670176154265512517399878773572766333353671989603774928953305076028259948541722799875406682700776298641814669419381560740151464220926810242425034384229521136823620656107781273624733489468043694295156758816814038157077714472520997435786550501519948649518268200728189976636055505891813667104153304810549676611801660330791462904199583698737506133610927772087477443606603149402834928763832477689551691184892154094203178543601905940538106138835153925864663830529944045887039427801156033875270394850765359485349599135000344494362607703430984204148842052822535831299617524581373977024438738382636404486194720738569638554223094922983791558968247291160428530547998657281051758495700393347848356864199704039714241093187733299510086749681121948948692962223046349214306588628642845043051206071434327884132774277399195017905267248961860895434709796260959883672607653116345721682615884592396292742301928019298963302915915108846982155158624284525570204140079798618126681007278174180907316633724123470233182898873116512751733326865886287317698687602047964410614916309288905114076740307631290729051697089492438670826351940707710385723098475702933965929524512236827207746221339467915731362664753403575071684674723429216011442075627873234548537124887990612102615514861058181011091819237268117334462133938762460961057158704010575440923457383154484340244846434388221468060735594165506207489179520437811663234885840775848635045909703169202065171783287730767440607202934892817234699453641994061852845755487113880159013212441377179299857192411218873678013495784763307036112727342836947718766356513096210176031700063740324696119752688472477067501037891810706006106705676396963711356606778881973508736828856399243566995703219085188840757082101335057829240243032807901718750952982341647221462183778807973294455811204925231809628165692659096777727935008317203944587561211113309275861620716557065249211432466481326635413519469220894780839572088673398268598023948545483540450463402432208406578181389413164370001491504913727305762947531361669797396674158130535159095323655773213492828638283025351345140558158153242467961102476761766440161926256416405709965052342004377508186338525601289278247134056518500015278956215092791149435720322539695359602288232128410435496320141384779032169075000947381392896682541446342708404365946293263020117051101239517679060154205035129808065700320845733494384467208229677976025027194516822012830628045159070561870816666489434255750909648605000279168037968032544598815187111778147201938679817982571104556649148460662903217297535483090661845887639629570582808419748167968026728951118935549332830694429651068819364059875897726929253344865210180861555235886098245118678799259589821888645054560084197952204229969312810206193308525660005952829638572045384050394124498898904318096553760634459871638881664253260098117973560811893105793949533895359794867660229846592563835440240907841964980987926242062692038841704129774211976483985637374959418496979642631713121945960345742003132848932816071495851280315133637061739735658230276071066391183040590333788563194388046876092987103100483808474804751964574284104721230956961253565696537256304523203577912282993197890961425385334696476387174058428380191807752485402349495973410349375215911401144693857109171223475778941198482196038643742557172499828671820466607176161796470940522543741071302776944408366253483362772151156558918120310654713308429323776764012302883019867951388307184741391082915732958249271871686796116082263467416310707728147070459472896224265837472573511298508978645152513583088861537186258541690809236810465417103934393180556815432839811554714181411694864494625843607139644394181005529591026290647764020935300939781902731142229305530656630395368037583504492575095703149616197196990887781731567880409881073657879003584956993388484813531290019945168499310588974982773519988145486361536728153633917519275746000888484845081883355853865097117293290420539104331807704266348963343550412220706157750756922408503231319274537758451473471471258432574329287635558821112583629038934507329023439009577712899931780128048406164294752774734737625467596325955291851613680126522511344844579765763662407539611237430638411469708808428717480676570227029277163226173469907422484870904241513368073769798135585243623060235695702922239396305981505709927810288649985043380866566871798466121734842821824434977206476014551882855597714863075487172195779293597042645060081029714966506874752883111498415493394216251461613322935391355121552943325561927831256175790934513435397086733209659479014124434749221040957801952265022243604989468838822446355016969548795112820057223547302727700060238783802479181736401600188880080932269730164430021536201348919472168215096372643355182622243620779848484354982964149452710156228564555203597390875407367447433521095803581130034214539195783360319580213453596811001591424577735846787983127570527382684734431952905038473463523725013482372254340058209637750440830333983158344322121940713860014843262971106810956202721574462842274404148278458994599865340622010314368941933276375104960435941912081362679417706057321610037891723582246254763788554106686381844708096754980919005867420670537499752333118841789710476047293967904975278005285515728593446611949420042661854784891353864793881824627047416318630370976337322706006442395735799239311297755025890902247049782662438012716118058680784832423024026318017040450221270697790637491666594537634838196599799268231552273791913883438687264028294562131668140877882946949723183609147885034290612551004259862967889922288304836397666461226755369898002653996397581767744290313087456577865767037372347859400794166257594492791824323809766922190068112934350493698333636379649777443931287991029077683956402094656684277521004498753275233420135156769360250781089321633114641532345509459140383971121964927511517611599412671940762711659483203207029219115057821807860543123335861407365935750433346600687074877972393848749741840033314083967849507444768279711898321299312774153422890781820698845918869431061241922614589485601047205954536440977028840280144456360388099780313998702163349856068846704283124243556736898760702168702773895243560662929975923385552364827478513686464510878541643879764610777106616086441343616185663096220127422379907663506325671588962555375779036262508183658677926504168703722647134805248059930307084367053568486932507690449306571023431837332327347659760605622596058324957858509778499688101918956152821376996931537226027770948737704369370781759306164186979582825796076894565001896991815536870858471968029912451501960010109624415408899321981370103375138490390328521436072878051114066024352466457520718249814198133487411792442751848883709906797772423900693187501645539254573745528666202864099878643237186411912281125901732026529498213365563398637102765779241538388757325634912994796631566174511137550151015185504628733402594670975658287708881208446539163164299391408146145689706026682123888369097450124111408427908981528071844444254749339677711541564516191224654833071263842449393744060252709129162648803117310994397925375682649331535756321682559832529874674788154143576463675759838119569092758959924395283296038951591049844873729281609386860746692725879726393276556789137929380966710007970709393103815037853255324084482549013074219936478392928084150225485886189480405591814977462603764563795309662402147980851138470378203757870316113663861558152631079371695972389413474241986568409221072271765656705190004251074606136128063210452988096013704491435292153346845958921496462865723437846156238867093834421794583279138283767831077096111002020790879612256643394505157472534676237266438032767570360144939543412020744531399906079469044223870422774101738848734505463371557461930603005357542138246575665706712659981744300907831165536689896383628753997389875163066441549841925488630196163995188236258448097912223330409560426222145195650268297245088784365253735207604715348440144020899505600461127680340795864755754214353142250864557083328936384608289675117982828377681673084392780519635432502691816100097326540980152029066936672970710801774094921939604971595319001981969361835058623415017383747750202495883664708580888511589195224336484897401052932479857385137371217056255064780740154625182618817168122137885291843701320151745594989161541441536038119602138889452990666380810483392321510229007720016222015680727221773601513528370037409462367609214194987524433715327874221721629076086299445128171010149891254733920236649186856926766411675482933647811780095917580758199432859339297142257020335043841011393124686126707057461657960035129287991136337534765348882847127775940566252208649081007274451141165075880744321721263629371548661427354586780148080172744979337620178984079588642961512308189325279516630237154754692412356680975696663812976578612701066873478606262593750315863832252796633027344458279063503965636427462954140854611261101943330757814753239369707751537721141008685256710344509300707641715140394315714710945926526077643533334940450249719962333400165869968638417280883838854499256885144063654915852745540320335888083401227299417981223072063802647300876406123668346554904111999061344127530725049588545066356343744460657294835919027405823207020831499202792794326457636926802683637825467679706866738604306252380853366056084692181963585984057679537920230146243059899533800458824835175256899975140185367317533027736241345251007865294560598869502689834015550160816794603889980327613949816159994105662005059859944788239967330220855126646289163971074593911459360207194148313456068124570942873907993226873438671716170533788289865507810055430521066512598319160101001224125849539796764868599615090620579108737510164399683184639061246636667685534190549503726271093151663548929419695585972089928110979899491395923337147669979853217802961108579691140074748748604547891845976461509131483887126131487901468424668209083996624265540252425124489356038909577676074954720857087182725254956433638430559725086142548965108571055022294541401914382839472878835390272038474104324540926224905598998095725171033448786769944979241170771935601832854781430360838992858534300533266654057746216101576641705068766493823663770924921135376113886454493483132441724336088073458894927800713409191823195653196491740044874170737064343205685799722017746046478938846968353023780149315722617526550132292591527736318396438157514477012604148908198509906269623399818361595147688948807274550387476839935301042836188771617767091446757550037238958472238317464575538660720096891863210972645750080214577324381164231387296090382002998125064390765773781876403273243848030437224641338269622770926052551754723248753200763109123919763032478677458112706519067833524708286655231899447574104241554966880050100734515456538128172144845059293067904142687956110216692567437338815411161620167223412271254789848978048341091409048786044917489955256826209115760937726809219393765161615044789154889183544439120121890514498750911055046170043839631003723235451146729424588891925526842621279360188546440692529198417301392023396180738705314882455640374065419052362251514100466325314622388338136728609058849026367802154638661792890067190023577447902043796865086839838543189953509796061129595787927004354873843520210555589811144722922167649361225128043294239500798394933975432589768057817312011000392454183816572340324597014897541171160606370163991698996208997219964161254702352239360836151578467409290077938734850139724591114091664355591110157200870994230107550923675700061256008112057987124910065878958535292153284119544977465713309775334696794695862048121577716757421436755010038408279408520046513209233264234938212584738779006368062107763895107231803818725274917866520555317516504107864016764084922191085712576884551927930397063796768796328712742454207346579579610017306259026800991668627880412086281534661201201266416573778384048536958902141715411037547492703481468616099903725147668430214137612325606375001159471204531389660738195271777760251392611480929498514039456244577726552679211793446757268294109562975532287684962291951529837525824051774334667468850434790279587990024569884932574730715007965268763930374128879883245276447600113009832490898116298416727025581831355906757551790666673045037089064124365370856622035259608219315211556747705570587714637087285413700675181061737086768063323924122752793194215308606069553249823111296741862529147713227863809187300225900615351169769176336698727390579862234669580047002084669890937754303349956954007938315163766133377970938961588368333097279068696578084505707551674325890362253738070032388797308491711219135603136136887109157281187945584343606604180629009802662115892871324168541154849779748189759369715185581175213692347634928807338186339781000701933806305207284619261267762271399082157913086217672792601098405856418678743423134476798489844172808871786020397868881354178311330972874494173037511398665168839086842203730668025240567166904864758330362157329553430084111548283364984896672481610632266075023088679546978849472299132271358942395453586826724330135267769591234746301673414480999561196564319106126398842160678563805501075062694376177314171851058906614134974991795896477191123693404213767211771493216145278158770326391683340233681026007329290444982758026094068694440391453324428615424813030453033608341866403781203810483011710693096825878437984066394677891578609588904153279816675626993139087713726126111506812207184633571831874859955996505780627250900916075568534798456327197864612053225999740239451997158981944072414151382385329117416213000057107273325259157645234941244332689646244181992302554261558485343825568286616849468736203985086842748037855241175222778394198954900071491412270257161235651982751809039549700562863900972557351206187124028165334734603578827598744530784883001327017330189138628343355255765476865656210781010072857908984583031094874365629395230702922026338637593559417260906499443544629622067833000085986144004373090228707604847947067682719371550986321149230235279826901493057213612417298310784897168174381050820624430729534510192940408083000834218239673809142088133204947926346914373272681750921662856446236112467252699954254208318192349858242683546612067731271871115489365520691627987104142776078731640533309865014422380152530538274637153219230274925364330969318937887485885825496804103043897313643342378185835907943227254596352801332888721253844149269061916046775035790937521216762742439190342437456710587122815205747603420691753676411023282216164176195103355331102983983487971886070465303432907615395323540005579678068304734343003543397987391985219725811688986763292223398600526181894522794978920077890613898527357658813354453052600046859809861745228768816880225047872651950776235866705214675499089750778440565082506042122054310277953700043810010829563224977614855571764469802311671194493157108152979084071513281013197687675490074863131086848260328438937454802638904468030395648478589215226725839130187354775728757821921393014573439533088762278195215650413653165798120767000264863351544341591714346979011707943976115136725048265146623592328805252075599505672680363454618204313826389441299189028584796861040064752566823823584893006647998754123495576846442078666836973054851460696380236533861957962221610088702749266147335561184402334660124363020819726271239098847308466535341350392354928951853143876043573630746334577353535282248865683429996624509964197799295467624651912907261832484637644153105138084271691781962367924268240215536463247801502702465336421829284870454367310671302170024425193676756678945751582799236939948053132824325540819300603844202669942236798753209846117602162745609143363339249576021930244047698628180396402378840033873589435962969986308400982246081549295752146043503290608647492515424046702075406431971391039988971889078830204886740012890836009167030568627301882914734107776851853546438438795421677666595559121531038802360423379848614320276142562172534878651058393353638330040225403803902498205401571964659618685002097784355580619278210203867363484798945121961219897678591544333469579161381955041575163653953286516608413649523988183061003718484165525176550752483954005076974722514011994046871025835351685369298075147403642868680351961719503260253158539421675015492332590020172766583542353018729291996981568624459500494087167567033448115590701983193073700062862355707951851067916965047486392334535888075778044144602008441385764273899085599001804982781541156671255783653311287314934255173802413310604227287969781996979539761778763782083608596808212979470371879723685617766071472675614282121759968468991369034452996950021710693090199654613700702741454484335008267590448887140958818332676017624229593591965009522404618310363939329784795362132969431721632917540746529416231727926091448606360571236066562953151260895935474758850273513969406726844432533245390421835635635462194539334055779578528313334302410470232815935675267450924421282232562531952779164055800201679572932064974173742491673959741975583388282580665142871023631637444597385780656123944403253239364324492737774538278059879455673398386036082962393175506173190799679964709005056433242200232008266826233969250326699014518372623229243910540711505443202080391518418806478682559330224419263357566873059776889011495548076861772577789776489549256108409714179571823120458649341454142302898895273860059994567053472936162306380429981448393582008072240993546192771590616838858032596123410123460079945767462021601757368597194244162677397789486326270885223086268631485997776461435658186902361136311356475720781694629479420457125107754742404879681413788178386791744225782107548848252931147043104383078128515235755956207698802943513780638184822133264732617191138432140396266430062583080869281367857825033839127936230132896745229989701896719135363888497489547552287576816923492814165243766271352445640549123722747940486651881765328859513791749600168839237988734928279344263695348181869209399816847940736213209605417448692947498175889055219686553891031821147003409879452858581013097910338161681716755039115149222427161649661995820494676677743329014754835573424819358145989130359318770391236746458028816260311384618521452751393364309166768839700446222235482962530966140464658824058009960445604922152395896730567631158225401138174643787776409604851838950388274713510048182853374643689789751988468728760423546344965948538160095656129691665965561355804763371736647944575380599687362111064413459414525267429699735572411348859901039795028532075450165248638299644398091339073850881301480532905243860958451185957306930832237015176580966878283973787351531555227262435857026196062771445813334968776245212625816941755200203241139658316616451094352516106980593117359694766875108683199479321207018817567234511280906331889277104942847940593949994941394941336232625499939879581144196645332793611175859017468702374598923599811255096175958392249297134569929804019509842762644986849129526615079965106190835025116855201465496773458673481360067455882861800746740680999288510451501662884635773881419586691276236860675463046817047754062572672394509435730486990592091427670253040321730457630247982937457861586191015803204142796286252013194704815168722208381195797826338129497308870472373405123068098899866993257851682284706299108295776424914057392564164180094036298389515124701303214746527492776945223784491196315424756375545546210411432542615956339206732607394787382502232021004166178570645725734248864910757885765923103286568420809030738586088621630184731449654652228834675726632256755478504557038261593419956320265884320734979192771375649582508982083895386534877169756115483328281518735177849688682311949892750163763978667835905259554458220993912690114752996618696781782806941607885850460466771202336451509736822423553514168181258561495935175761895531459077116488933672928378088719408656495411524611228395812847327086527165383752505782215971881367068585733699597805911545855940878175038114713770466669749185995630440155535920547178724223745594042782923024598050178798294257131837367695630656737994897207354615947566057428349756357773228259782776973333147220713847095780175347577136679973535045756271872819187782241500288434082349914264781783479453186271262580766892236244956230760171632653175663263435602074562976212424365729712591349251585932424616443774235012979296155378012936270234826084996057987240702919183732439348428556572929230336092703986533377093383961818101771840380350918716211573126365120724452673239590723686058373198956073974395052784015941389052330221025476806804094467940201247473331849093648678548481609533284544714678518021181756933897331854172099212561376668485439498547632455833234486314623826094012358350090338414780467929031836247751431361716157635241543386140915388426103611549056043937451831385384951788199104375470261279042847794752037854101186254025899768795747555688222890063130786043389409992825925101852887237267246064924273773692943195878056433249520392514937461266610091927347318053012191062644320333810701206195634744020545041935202139204414081257010372218275040401287626083324178986484170087745620109878927764410573839380845744346042804351277646833863572958345049260759789104524655770216170214193839106453742097167708458263221578048532525965084097525951343176684174315194868379993226982119240514190500353902405465986161829768607019264595360777414430471878523343264558558280617008081393462186389741235731516743712021032134673115858900907385634044487128349717220754058591823023074062687213519253732242794455047422869432529444436094058261301876377501414101748653627175387336343302080625813510247065140430721212811000126274702351103320937030525855426055123907715404093451225347800134703768061098299807054803745532273040006048208577247830116082769479920480101258878297389541333239213753069632647905497991402259369930824787937102583226047790497674828116223220265124416491987966526552531259496363362959563218000394359504834951000559198166880067211525309712533531457400825633368375576680017398220905924618744529585357917873769775961609658659175883381524481113502057969424285096107078874426664499774494359039347192938005350364296590310545477209112542213968270955039592679306410797981393977081812975272622300996181826832257358216913535172342276310326497421566234732684916312141170200940285359623915987333294328610035717740966856455175087491936756259943113357527467611950392004900853793240636716381265325341537397709739034919047936642041532805482352174774990553680147612236977487280134137724294566156121995012069138298385521291840737070047677823243651023906444745587805674088112496312907334646702666605251775801467540026445987566109345489222781221582163366966016905520854245776505264017483010359380203356951743741539432782643486674465336486697128156539329697851182648379190120472463914804647432432060600398092469741877185365190559940667756165793810231470146556195631960959349178265873437223916756517645501369240374408121271840278266714565691111004741061421103817368153709979759771152545978646178591726784458386547348453017875658763295060258166203487616360524976913123952070520974273099393294437748802344327644795464650421718218098219561424458723948708153952540779579704174467382754871225586929816919544122132549777770722380805921924918864674636767699490413357740731216496404091747839586507798476322391783775851395044618416888185865421706097666082674149809142828704704677702407097994818127642389151284175319385336550954685054154506094580009667290418737820101873905564130783721430131470102005491525595437016767062943585424712404504734508098557232627137630861426928339136790083490664920859709940773181325978686788888163361352223268701949527237285816805206275271951305691447481770163239284082947186227275439695486902322009003549866736385715727932706065531903828987947278684222820750700622341598698311004431830592345551703577508314294634960624191896778206572956400705747262543811451866056207227314019645707489170669180476011656093537570304252024967614029585743825125870146194670223930485068741572322612556341726523520262302347296564365277753899659608388381723979451951609239099981189491586644460176764403919046191399740692697247244047618208931014425813917839875489979102784695740725861648391245170962201283225614181000033928923302014480093096669092287777463531285330146865224208657425557350925330970204700089847117845984574205056363180970055855765977805322794785209251793999279508411862853001107269999316539753258709240176228078813356930816796007028137940074164021601151799464259634708170549857061549813263458153540893952216322515557796213723235216965637618623572414649139669882180469731464592742405241976154322019504332810513331659127502275747642634055027443169418251434795019995280958052094163487796027922307236332995465467334409342436176419674110382995728612969589123705678437096797276882137885385395174512336554636033268290497656479885306298195416715546980344282543952860294322082791189276891704977922156390723996558582423716717443263860160444836875471865382798235529255472956498303264532523851595084233861246805774059052296343538599040309307572584923264954398601139210902130240244517572311457597329585973544563909646559433373084960427204532600696623156430295461396674098477395957312528745039246628130826649425659692399641234565312933113295874369240526866112977653725144870044846342766911838410820456798946107906219246447741634593926401679276853815821448832456524657263367528152221654239994297701750353973757505255416143518108651412393008207446305834052375535034227148316235681243281734055225881511375034294267045366329628270387519341607593335475868336785660621182165044678523717742812157854656138290856840154784299179236453771995795385377732669327332270132825927614431050967529694016548764021377842772303568877150515247439145246670460353323277069828258642597963122809607885555914608594239268476528060356482485235934170856683704454384660186567775055110357452941070156359653232789769236698529048134388509118321287350640417298852638191870088866771041749175340840410188585670066003263119873049647334362082895941973546273703361647274676370658408787098058351184781391775685744120259114323982835111747039418658181555646089716628429691443544423894624474277157926938622238891748537567632025729488005439198033671809472462527683716660523135496489078332315647028995502528884318374999793672347033801419150125478067936975014624833052699059165039324853904915491824581660248479300644187807651822283598907668487230183245753048785885372600490028416621920044921411451686394476074858685120830689588387419244779210559639076007561102849409406651296420435837766113123471040928291558568037203512250125171401835076232072998549068858709057850518853688187830054056239682341738768105083071753011575688439841570856662234435415085720034671872175856048709564581072899919147980843500826559813657510267746723935121341766092113188523409350221680032197680131819058789317015308467363274435701652707730122216576862897974996384794490786508977199579099100183905283417375389808588705020813270100339295233315842227445116649625700174843579935508615293598292910004517262611004598366842085568324367577298940065497349355897438438910021228504554927731965141097858649329080091290613851617550034789167682585459712161404989581226234270835642642304841494044633574898786622813023386060524551027884940554923409719591873480044488276721978541234356018302851662046284007049595595854509851875457153950371905575838780724329553445940017568269512419774521819198498117408690956925054650835670405735581620887294177000756908115819331921787034244330667296753907039177941251608819038384838703072413356523980529031080284143620482697778575198830412007965122636076849322426093520218909297154569757295919087244834507448725165037039905993896171479598154475150178365443814741076487228407112409981490352353565750986802064699972233032816347420681386889800522596913546424404768802218688928805684096576423608875652860074437189076056600670627007957947736887685467715764717471742462943876804928662229442349847422195611461595945811229742178696370716853941084354192466370344418666779474823159673636318095857295084234410423873594889321670922422949863042026582275560434911342563325888593109877157990922134406028115447563402738713462928024764656181879735440747837392215033457192188938063320347042413601992025830480359338863635921674199993323805268229090445327363678322853188363384140268620324087623644105193576787433178688076578982037055817678922357713564661468614509214609531297527556943859087102267157207711486505243918592271796466514829992890440333440442649024621527883450572098727590823061612168170126408579983644538940236009668825128159635703197659454324102401663295062281605609370521264778257244564179145829353448084455828253579357681421577037408592329165050669327768544431752653414075904075663853319311566424910982098384385268360813525333605756101752935334584765335011322746806562566233356282705030978227193598686054834838929094076035406224650715312935319733974541241669139915341317791369391653284960442447198235907077763375181805629799396852455162259360517716029696216562190558228048732272330044624512184403035917660245363741491473335878355953825325123827959340733507734339619763397259583257158632449963810156515403645533742768105779089316834472193950399029162498179836126337115714602536654243884682022954197122699314743513343199151640784553846751858613953014667146939031381293133227597823755801668461984849671477276210237309794628871190118368968395886671040794061752899421734779630049873723930547201016604567393938297423477766659242258108698195497115717203305220023788478557667689353966025369145659788489845887800900622173613597028130543960734851231882115671287010931346468831710341496092627635546524184302678011103866352779026764080323964861128228469559150651728715122395476397529583463305897693314478380053561778686168458527659039649974173576381893317109762369615087131518594278496397013818054632496518447865721974332423412085528097126380231158452263855315646891576421711658017593154557635199069442588988474184651937054903390841944707613081922971875968400913647692321410516316560326461760092188932012711856996856952188662640904315147541915626737817163942267090769002024693337178548288786496760099460047598625368887728068955451054834201835399826199149169601914704390456067658664132644455754904321055447429759655590948256600140039125232906312199141854464955265981472374822133413111245113096861127488715340861918493880707249630424675124433881782045093168272040570567374826814564122680086078094762722318360722796906243597420254615380769608825594622185601471555551026451986598332764187150390586044350505107956406210152804290733656431818739511946413076817983141304589812867366487512523986763781385035102853570342010439001987332699746389293004218945011239029661174176964365479286034358271467870183050741661584029844304423154268317054829734655931348467274524565607549979201854126891078646232469556843605485482420389723338087222552622485194406623885999508078402047540606177506727124119382517044237285817299513588987953775870640021170785582641144527854246923699417748138146147074235243886872872272132776606217712255850419764276881813591580531558374138042704686387492070568180351172852000758621493223410259312404200570791084746545699487394578544643942808378623106367686270406799692395332995107787070751368782801586126389889960699245235536078963996163484982649568805030694925666451613290031181437849099621038257027883411620111600082338933188980405965997108737160969013717561671005526121322258586619599634291360317864657403043518942659696699955364513910651564182460975886781257218566442484580788897161679957058337929699397237704787033263358417804246982008686334792022556748505992304724686504894285858657639847672207498751397284690125721469235904112042447071210952898807408240839157241899929218601201718470578479125727151771399849819759577556739200001386743102626406164391341722281096299917689454847407660490333863486835396975680560418732620671871662700434727369156497246188598008510249791194456802153250238401991087479524196286563762198196526850339030839183476343642705118413947753670616849681902312518424086355196995084527859380342792015567882039991113669226017592470499737982537352820602419010813469895524695146778615916167345396858857514990978551370275321934155013839183689813229341110928466871114226279828176232324102577455983596317677290518900599304700841862225213635133857431519434071576736546457557167370178365701905730689600081829150167194396986029029749135345341964622264888751701466442892804322180060002635597247218873400403835765419326282541376166863970279537603299089656073782508106667098455641083378842474348289755603763419813895975031535727414205589228232600117826282938723728267202959367227405970679470911623549853909694443979550055450359969543687333132231955832739854085630227196107734970511501804125407670861945266463152816952475331971194700798938833616064974741329012461608849719075714825945896040037263848220504064454733777610617365117614391138027731495274449878621548880324796191592212224405906846202335579616027957291783967222258571489922919130967127231707799133927483580319955185749590089433232838158039787109349267493101427193756205887457701309438844825274290840806159429337931234867399221232483406977678666205142880559300603242356296982085879809837737862979193843263356547134680352887245766712698636635126378842077081074707786426489259645928032127159537708408097339571457707841268697994116754796378310047127072636448162413235455844916889023112304400112581257193514046272106859836589839737679839534442308632506393091208753270989061378615359977342195290345270795520248016482730245681736597745435581543317610288593748591801614104660968805407954795630028077052537584227516881824842998357240287973465790083302298792989454087725205325410124873366839705199921610424088019976357019488690651918538550411673495289844482777835088045190974024877428034846062084071552086822155821219489427526632856231112570097273278920602027901461073303519933904533772783635895825060313715616404128871701823668889328063390552214374611061088396165685967246786850008088602942685039983994367713162722206133117141776501093664355193223041473241527139121791308520831211260141863958271961672219454392781009750377046241330256609818256893856606270114221250645563790583740060152767544595227419401384620103116167416785392805413537164874921101380448443145316388872835156619953872417947900698942910671464957143085381633714748406642348491546858884206437945316420830878504992126592508146980434349007040303528748457238940371969744856022469737564090233152618445985331298788302633041294585309076012297773197646041088743028427960618814067201553816038905329130552841539643874712319576311932692076470962919768387532241198888196046009302888258708724170067587323533567554758437335042673453521542828537918108996123615117319802344198556122617277163373589350245339908157919630256468264931008635949735676295305999939401098334003006923728236044128776946300127226062963077453538196827261383037258412537239251739035005846679579936839622956021799347127579781784848114511870824241069247214661034531629225025398969398411708642868448268868111334723476845179816237412759243647242372158609334743603965368323721729438726572447722360069350112518121187346325118758375743141950233356588105554654574599904124863858337744867992625911799948919147710846990102596216075801606323907645672027054891809231994937965463223559849159810898228520433243382153538352781155482375124076092605938650257061263602942696616724483109594567992246952858181605009625614450455573406718857574749204549719648665359557804987564272917638887839330008023761716092244685165871821427100317915931930569288008960801847564466405920900664984680353975005772791093546866020519150926085178360105689587401672407114090222571760847087563303071926094965301395191549637142429930952018542361107339994498644880264891125474238030443293310187201989594825980229439507127859628867369698789531176873266608550738881627079263365206885473617716277974063082351286672798224214005181342690831813460965241750993279766810946914021131625651983379227273975312571325956120157454120135045331098271366860163758428935265138329409266257863275439188977657653068743099789977654035947036078950621835641265751773885248642740996125339773092959826012295510878361231001472819506035095509495900128333574442359847705910322243875229102486373490246251301927238178627940239149092413145725035406249880030070195561821831267211965441160620402259247526783582091650614820169625761024552311955941718258349137521426110632138518799863718022838434273785421131412504168708651912079046426412915524078609196584065427624881147424974742004982759136016530827085671270949653818526730073496219705766564296400292244355486152641202719723407971247320322124720515287376377600178837648893421484944985955658575391534819297049646506316109504558830358122375027987061469693257037167575166851907284469825740874407988834160936204652791827545612131149970584120964475408814358961496162430185718396023025647324679005851740790950674770513367907169279599193180118464029303390924707079922449217650158848251152296948429474392636260250502254046632069787511716186363391525005084110115149253074952652117304204002682700521222665658397748239326767394183665396251620907617085496674969553767792358322671688779940871972348325317058751171639991824387972060351404972986423082107851670892978614338509876987824742178770996333329521282305528829252324402611875981562299683768364416234537924748259394167054310898123329088321873586617760098733632682193180464934773294100757902596368570194790256679825790622567686693584285785935711235374604997050183176062921096276853582655225953077461751295563186383107329603172925380429692789844508626482257416835317123639283177499964456985558251656710427068362900946553998456711183876365441135095283097250538492301543003353359032133915062404686742193062522878420125309339051378924808198063507494315956285334146855724462916083391265587016132851716829137220618681669504826650327974826986152881892670601876390144295314170628579365269888380843436621099418164063978046636386950397640700089254700863850432723043914482721476372154781370517932287734084454845277936561732629763189076605259446729791914907855000405470725385678037514610692402448915545203667892271169956808926864794512187148114157636604274157746760640805331379831899167360998777016373588109163523998000513417201037765237068019235258552106694075005294712295856009432641464596565211556873103670933001827797342630873643982921346744140551088398838491652809445957031199497694996438039292005289208739658606136027180216936778591623596583874747102691304407644004369789375184014013602296028074992736101740155271962734523902686328933414002214248441432851287748893987019014548311562413272830110529851401958109282857748956581141842475816542188449337948305620326870171178184234082428400799128862601123586097285173915619513632543949242480094359557481295414832391532096684413196706790407427411623937572159070997761022233481565347300136364756418195313826099701985438026717115012211268400358982270535665004225588872973410764394745907737823099872021635136791634167562698093604625432244297519434212172489523148643054726539517003554511585553338667485386325011381762992309907636994174354173383769630716060012070298825294763882085829138070753306139312454772950436709651504449378997193433463448751243378177870651536531341938163388470109389869235903653728487083200741617566409699600913683899440044319316111998278901248687488651382820908381593614509270440594776549353996035386061471597179946926885432426965059211445152016676212211390634216588203351699700731377045997162848727448352940654104415019517226718183395020422594200286860125090031310169339754002641004311549539639609023837606942260869463979125242759786565217784696315872041238686647156641239877125902549104154272286422305392952394357508495942451645663558291151434900084154231828776532841231564149897044006027636900370810726419091845593459580051674971091125089399364067730646533550230372973972264372660575552954151256794012259459466650562688402405661063013339489092648560006691815880249403632053746580004073576625503668244165521306829103496019912499830044719296998450049091851851790893173511563792972241202128476925036178245191458078060571493441322414128693725315442979931272334025875294469571611831973670702543648907404708725054589596568158919317338415956048239196529097177204969994528472231316478202662699170680617862359483036601384291544342834589989307611283990286146225263237344352078202109162136877070459863210220104611445637123730665474159776298062970376305241292792191382674866598589924515788853057107617227247419328424944581868413106247817717460421494836443895320940445511518620062399703460285770303743471842381475569180335022978950486953941893028866459947535495893534142063770104670082856033055190865021702212611668973753797538341911589032120372929012662264455679385427046381120083202353569117679590702517580595582112292260488125357887594411644305483649752559074479649715288919951795714146346082604088054317254353963181201924520525862563639561767979476652926477827622404703342844384802239085170137462050616431305871064175544716445505231626792604932094148383048219385855933264277968809318349115916576583786517977832344448926898546797279419243098472150229652247917743204042818180438625653802861741074297514181590651429671179543614923295286117823496202146707299037428296231956311802254014627749131546753190365273954304423761673780776611760017631782270065041118104643878639698890944927417434612746455093509513801898532618661814382347849793339663872261477732854173306513135206436786260181471608688652039199192292946984106503439889928294408262803171911257302993635173468964122219741268219231257086700730163043454960541926086666798464857902270007620655682873480162386138927965167586049631785340220848459944778441383708380227260769312462091642801806883678018371925746915449499150584842532232111992471951333146086888029336758730660834317185638525104707047819682771203128371618413781981224343814057029287346529384099517303395209545251030952990276754792475384592807331942162828995486220697762748310456229495274470991789246134881931362153301457619139428476557611779312486865912525875846363805185934381700695035536001384925069780039755380851033432652522821791107895073456293125449459423535760994040540417995937868188854456576255348641004905269839968919184487914901621513056656459049658432209582873823983458735114292997597716748047851755397086715386763291429110689585465811016820534696056533520888187044961523475906430105700317483706592726769631827020356044887323397559697727944265784249226219965942099749889097728867045325512138359914920414270621751446261793537398081797771732256950253713593949202527809316731890796375694692151648112396377201150814964743376463666591986941990976249387101441976568808325743823029575760308914485939691919930584032120931203228468626885894753335462908747929684360506123735525351556901127049711247829254256487354093861590267253345387272354106695740906584131333886839259588532812653375786083542068666021426812821012694568410163274735637741770586301066666918698156246470756901541465478030864572750278409751683942214412211994790023203471029577192630404746393345412436501741331123889437806584247630438609930604398111935730375244257407185135076667345789037919244598212622305080354445740185260313808488006222808453623856713195886934464955725729021898754898498214562778614146941237825639985777770954820923762868528499351487961006839004407458818081356959174541887397259539656925651336639669071462175175375767437037620124368137749147645321615258204607579767190744116434635166217078369338827882106063553128919198282285318031470308748238019186521094322019370028268779933092920629921522778029458661600517181100678976150653990565050888814656561464274632541983904068377301319948528822705301437675112169229328428116473752312576267711452547790335753936947155738640808431177280916440837993135974017335430818157482896737243811592717716895466586217667334709287594314919459625958076485989172079166648149053196844360412796154067532200300193024844423310204030372937107499831462656817793083146927857275033305541172222249282846254856306844237971380475287868079039368333585902005820410066212600789830567844413789324117299447580879281089651845708451618281020878406984806060548987591131104360500241252487739500605051175268707310787696256173049106448335829942109807015030205451968915626809620738056882929507842698690757400435842171768901815433371133739747052913512012564138575986581308159064186501364321426702028265190708556815782043726670252193602640503158327680171343119737485932267188085624514929158833257688832861759671323054484881476008185903860411765752464105456089854554813070068797993202467859577587669100462390430714238439938948703213819775449508309643073508036378317984315571587576287337226926876353815128466030970902586888253980447471148324593602212395496048603715724974500050295668500557642584549555068885360957597661205187228520945454237307545007133722579516747678301831715337964154142441667348216117453101921293591942427369546918014044994294100336399093498957493958648938569688967517298027920440004761364562642353848650890220019949488085928016417120566562527156913672630154421873165329775271480060583548460929981836568593739429558750183205832237358330081156335922382851351199432422184119471556492317210803131358279296883008528202570967412276675175178812045161977454203647829908254868350070146337745775998900134517111443520996341405988191292614345598405569269716880944590204079627207404957618930794603444301373904314257395831841067472867003014054128789771192430870299768483459016246303568890970015462331851346250597048216671373989567373568358245166032042754651825278346161996616114658278050121542076774596115268702177451001976438107919288446513619025733746644699206570036033587778618774092192702760311700196331362659426161410461366426717441524366158582403465287616134302788230094685492699218488656806167013080947161487740912873183472655449384067758117137280285325069495828467596041270613148912135324693608814807146001766217102136319347747325323958207242373719033421863010413878197200096919684764447455004734297039011075606696322030028132791154573413335385916669580182701816530048694466025342298095967028421397343009657520563363976659811142674596244257260561571265755200395610308323939016932451472247300594993133588439508853471166632495996829902613138852480640340077329921937422470974143653184524178276552692667824464777930209676920047774920111351913659119943444157207119339905787060613943094827984813010484445298556410865075920195093050962076775645854280970859628575927544270222144453943660292520740154732933522969119874976216386321769657368383569788207179666558303355785869913294703015039228295458546994834263691083039808733143722033689925091316180386831279792069599464461279011440239192363433999630128500481046803633401593947768418074498547641471881383571442134116724098128757252964852602143122949852979863379887880419040960067158400559453561346299182303390034294476664580126255633360000418666726933135258192297351322813048979746224708117397926672251379147685151532205868165647705745682636661196638957676549126239969123182348833346623052710220060239955676962713486368915136399211636683443152840036762028447000615073861889022863505949724450098522425261231409396458006268865567742402863463013086768872230789761807886693214052132410783919550431075783121440967529220388741529811196064237500250708647711525291484535117369188483360892234858652937792434302411920843579262180781833784229500997553705522306070129409710330817391899488243293759774488437654919788748100398266048049188017189703388649107321355470576279001066362176275589156370443977310273261340791586785659682225949390206364060938499345889195375151094785522766430864569701086402312670454508291518540271321417196824897639965807346335328597320372038637814621568178048451106829590168025885405491051133523793640621683888215910402760172368808582376272780601842235365771559134115568919383079691325487085451216528706242431680791079155969667319723243219133579964249753993656855406478085822468425809513049091356720694417264353700057156101812576653767426053943025655555096541611573981617844180087642145872461089530564791919550505984010904480560183789952941210403304387815913468820078247292639954095648214078793121081268605538160645039616337611080054996263569201637751536275943360186978869420879763356281537139709655281569876655093096473363046327687814330188663525473602764989353984910245933349831399564138663845938308133657332940765037272333270160595273986234739339171692222333119941977877308967666306107079238157151210712699226298288107668287622716403539434271663035092689182522915749094860267400095883727423998432970000721510722210383865179403022887122599797119898106761002325910679574259720277876243146482212541428247080300273293834594644131033886957041415443895099527375585752631561650743117911321241884146756611096744981438113404186036554467017532477145419816489126573896209474564149791136932420561279199492206791332559902798874252203316791553710820994218955096841758908190392609791606736528460059196000596399229134172861709336213575303831583673799732661349521596140517443766900210898405875125538140985270297327244259831075583987955576243266865588878593098362872987640552369315046437017572792218881230774375245744213170793544216454168301188081102492630928073776310625133855633626838197606342972821004825971214467414474405837933022160622639754507195445293177874371574524851475458950572438298990847123532942524050516811826988806801002590009238853417332515087560662009787026190081578856346042110708703413047823338753598717436709762526038893082282054462073626886621184412815243577622017355119582338322787553064096490981103106067525154448483309349014800159298379164363322979974833237529486246071907684235106187292459862089128225121878838208648382069281449247989023660362065043010531384847486614307557538656972086345620106733892742640669079879024165004177609115406122681159745184803831529937590972473452438039177136980450129700809583686546512701791730144462242096496655349554794770353950386094640848838581240726548365421221534902774527543881460246578401323497805499163825686103117059152052251431768193754300953556519083424980440609669125456219162913569029470795357624498932876365968285361632061516684478811784767999973289103117794338263755768464085217036574573068969693121397547660952777430388803212875816903891891338280932830331348811269168431234258022037254405935730549207014249164639008343627060115991255020219966770598358792017336672349839515154347352342574114718498522607270692504267976453855190864912065772619526188372645062990787620619152009361785517750858668556271232501426707432460273278861826079382468145532731861670003523893135893708892731222504730717160383124218994564394401519265374380319535813031162859835828396093380192107752565043196732945681849606225523775073272377140958439694936624092090023702728704806216759493757135956366116445095297366537286931024160206055171704104224712884410645720570089465280956241049991985843594369837372986450950726279338887976755305034568163351126801483444347381187328208583328104546743913713598439487084174541743556005846811504277148642514010715810844272521229005832254037987603841222737005207260276306911587546032167809686667521507978820519024131309538069378455898028549237760875942013957106975619229501172097385776949930367405361472195716989386228358069759937316867755787674756895824320353072393724279480541303312496867733806518856647666186436397554610793543584296706415676497966246732861522012335495091133534857466399203973316012215561994908302215930252929250820661091833662388061133025041224490850247922479173874749470775325711114887469906461344581509240360572729965041359842327399016085375233647911007199016139082510204676899803928544767638512774076171087420208571815719298011837226509358287843824594416599729398327930834734065145871995258623088793876123933934888016983512977917783124414951976659674955578137344811177300384794501852096254355671195538914942996883439004854183167203939803034195868793934219693164021443256326199876535333110241499434130961051996629611736735765761192400107144373805704480238295843922836822324211697124655520860292006736536067370149664229270055172650202491421425198960684898457063941845127093658100293482754878122314449855045851016323330757892748012149084540862510510019205590879885217851125496369959445260366223458085398768628272212170185366542995292788412781887405885063955533998547656540195852622653764043373121083400324061871084205253227796016673329086491872621474602406988855151654697772124089912163672965943114192291817240624698225798331469135672421699018353751755281339061110847465558785093317628503196685247621473410118202853965742717581773070035103310989762661605250751147555616172427984153933133081193409492943557849558938972030128265917263925807079884146041867267876588073792397855312537128273891055698275465755329253839344304473895792701197511039551521794671648887915641329221458112175265065764621887275212421866580638280583571677083646019933498276699197870876639528859674086919405115222946072491063425757292123047486105488997269255443541104191474731861129247760976486270047660337694137948495213523526147251152129985881640681978802996123023156696864948471679974629182717211390748534865650736623837714645618816333465251105596314794477267342007745328864104825477620063141624741235360809404161715790844203742732188549923787427041944463369817572838159461809173596201426084444182640262496791197874456628238869380067572502767062422502578422877824045737954587422788006355112937664695501175576522904448133176315238395477569575946895939144607814008442200137483777462226350823272577580145580082458618740322229074138108783847160640362609957966013961093073608175387925983270017107959673288499230971359868751174217956462662426184515795185333514287090240497534945353152141518684865098979143572440657396173281635459652584987104675437719435568850176681092126829800361154463270182305880943133029046045080870652912472528962152650050173058555007046765913698658944222367868394120445274774036957298916357886455514766499796497493341236190668919567225181245861282373353781488119855323011222138713761167160954547586411761272274182893359488241363248500727528199046976968428581697658404491957807402571323590049144840180856338525744233574531848752728631246698287103069578075062281519618753535070247437409373512688449330153985237426241684451690363791111410150863205842526457076313915241807180514484947030934699013576809285882967185622208029819587339176947332558106199665166814934334412704575937253295384682535838122784395388084640794014041428300666919948833815867299574887340773222849274024960830592623898840144294006150365807484567067646523026010119956727885544436269080518163334103338111503691391936213410248483716853801701410310985422542823348348080776451846569084901843043741776550922581597086502020909812656468814563317139279971957744785214232908689648638420063684646480604032135870534588066013609732373765684561912244888926574426714277879428510470552544783703064998599386151699837430967437720064900924619134460437822486295133984233564359919875731013113519919445144621782329004468206415197146259346491588704230974635341674845223652292374895566377284490725447306149395356779881503584544489423859712738143146317502691206901363570243124485127251882552518208194739533129666231353205118363210558716002789857475208003023827009119546420951168675964425874920830299330490586087349973677126040520764335963577268321610663257760437025066443829733405438758401385660316149827215983115309868206444978663391677008728808479650815600673812245013517445485510274224505605057984686727413533155523301937086712706248896806423112838445282231155094196503901966290317347387515685674690757546090145691881043662675096986427811920117687611649171650347570992911051363659982252090557691505019527897308366233293034557107443590074195076166867848686767205445869260833580673189732718245933694632027261312841047411266860230992214837279792502378191154824242592067883785989864312043344774658137164574439645761139442413884517195989808672279502427098795020455671561482671514048062706018429962988454926791774311285152214447999906942762738540580827156551211024716738533614387818086378579791844429574732667177388299761526102079711408395598920052320548002749837378276622782909115447596860110021026119397616204480579847744774662699607003465737177917582910290988612959677265435488976454878466490095925028859696350066134564393799537819908632006526266924507857949395093429082371937614229786515402627116651157150674909480843115001107081531322378849750152696510979673597448598799115353401898616879886225864263658971213033885325224262029438760831332618050004704275119425938275279432079164046860705148169431045242949488964777851480478984495224143631216913365765426018007712006330508846329589457793816408655906019263931841526580011197857466714039184882214113666617659099354080187660160134869427489928508650781707144634333165552982579405333518195620813732596391172779782275255640295289985850845883697115242349668584283174745738619685894222462820128555110576379322508319466499432676492320250793732785791499841702255826257495395491562640812332818204118626622630576577382618172695543856831564141765709273278946977506753123757972325723380229692328317636723449691419330284179265109394311049785823144554553045392960525628940961703743624816805845702752126534151139800848861270354608212994196531120616364003212953506684715213981847651770792337687802284862239591529293013879915734625285617749575200490209438169662959915736504664310170789919020922217050445121689684786146850343619179074618052295599709187594890581962187411630671176308787219263683662892221684746874115329280792367350786005792919048931942613692936832813180858094617286908784761251149803149466910132910261429362010938556420001542568614232652676359576831253713856003892283969169442265973379940359009040786653595698715883976768257694553780676159063525403059601858163724808627850137730704865514060626596639321210928530214286595115630201028189125136986865009308121806793193558771540119528098708911263831557984749911162807776781574442543784355721840821305512721767242875833410642081393236274129060814586306792955015236107111076612579881217408100092331796969811303708336745266718684398650909648546509989352943958591014290260123906059338063106408280000233714535499108875672090676637533422732543848163370206291143080260366925190285249136608371624829944483059724927804910311422560405197258268910459111199185794378353564773461541271984963212488902155435092485778863828511573067684793928332408766929343116079125334519895237871533423849673842069571042269024309839789214346838543885638149647066517660820174797251579052600752672140545752085014232249178335016966348528104808198226381965757046005613066451322248660525791148074896516124253919351596025347295087084292095020056444285924373801365129184514375405832494376121839541579337944668246789570638480840086895288100078632124531307266185877313602318994047761059262916338259287613344934604391722454366075510374166584098202680866820743966191150653718786715622202634738967309702544690798441111644402112216935173405855220407051278194884230074452771424792605751923969457879553552436843705107105522129528215562580070607634629624698906449727220313195507449186334444835119957259929892807813617582564314231840750127746437055110689921731369207675049390107288505896455302591503438242170530707255347381699679893549873987915422206536609090301336394624114856628814562885051951744281247451121840126497662818725757817190426622900698254505902446716615423090096757998586419273795858098451307929325068533413159727528036871433081649128158774426015508648373930331984077633164404071406370114671323841075750229403328031523032075668332861758208177858490630925873707322604412892665489940467497033375091750062859386287626668620325057754727370752793501233747616132818946602633248232624973320127073206632517903248090356867529089894952769527643295670661958495034988358604539461267204993969821136694372631390871156719656235122933189424449802765812184084249015153346605401638468047180582803122429644943328780915837099904130910254087489602116501182545120480923849907475298672989767019562930083980454251203111481078922881000919756963855968138956515869129213073468703497672091294008021734222683414940111649619020089742540112084406308375418193377776936817483852570499310240041197919999587667616559154155387693078146163946048405684158575367019225589109020739540700592753444090878408140496355595928410396694052418790534982515804457269193012898979792451315786026874205052993222211795318647018906122555858932329388468239275714599875119656828319450663798614242806045948390515829645461785251434212244807507430778829212863871860281560849900812882410544737771525846680615884277582021246243429343567645575169371707195006285460903347766951576130203170281723532459914976637050104742197457573762891151596509655630827160973098346484573765462297748179886904654289714318011417308585760511175692064887585697709001452168110443876003101108897711921809206234420887227971212647947215806010514983229226084471966238385904428265931169222057665244468205306186261378509635449392550829331696957001237867668965695862948246470832740443701136188280171264756652600347533841596246603857707190043231860523695500981543579848160196497360472041668939162933368865195044282957866457128473329240526013833464708536930783968668681290196201442359737450441315122990879880376765591726106049823396945028033999225411024498246424387759792581996308061720867618226020597782416291336370409898199034030553179489675940210768299894718050819980059832224108636786770048057318906975405848002476356259826595442466463317970719555197509015667551056734179657203486158004060774771972915226181945479181030197520036403383596576581997755625982414750427760163872090708598012145036178309090656896206218326862717190957516758481572731144495165602143705864612411952769026283641501095985304853805765485391482574235233249749407585854090609433220395468191501242129082019699410577292043873623376720729458383548796117901211573554362419728777241354740860071743961600572728799764545921355800569307910344742692999478410106836548203279867535893188186938918912394015794312299989212425003444266707636967642176544146912967839246763996498387086150815388512390489298372575680284233119698689634036993343292025125230829439106741314002993109524509766791916201377688779903951771466785076913496800912062134129526730221819438175122208285388786870015773288586352243678938483216662677864515270168943660290208284230956739602288443003913151825854193985157380218468869113861701060665212994546172900384986420252627613876412514189270183696180167621677601334023585417516679310738500464698250423320066539106879147538339661335572688943711920632531116646777397941129975382353654214489648747886232415373529386085714837593704745634685218366545898459976297462371418675906673145923576015283588277028489782423065725013360324223901593730414026056869131745233401229810773695359365990778165795618436201081381263610880753041833399855760496570575544782412275675970303529004240025967862395357301397564634933462270985450320482859732353394416216156632170488591859922380733157860240278081747631549122215271660185199957953903011095562255385149455687356946899272783390631497005561651546728621635471298256963290846094463028903224133536311161825553022856767243869637398019055697345273389530596162383216241649339660016498957390182507880764216372069516462846414112325492045836641454052958068370087215393224372214320920874966358281914277440785937797766585730602886894059386811637638633415352505022476782587367062030289776339203307795611085643579476996087868230936094947319952422153970290099465885313041423413627557290318702726790819399806174367904185783247468362627786822352895910920938493046101688276207980920197484618807376908916598978031982577844637693129248761244946054301698424518450461287483990879216197002007363068804385497805322953023064571789645912727770998138965750865812881212239256536021216128167100612371632457027905016395424130228225010034804247616037173106107226982000443904374142054520839417425991043626650128502453049520765445209459824510610751627078407578095522386508257997615924705428617362887052277701598225331896067300802661295437204797454426940222777894164104073833828429087921824921990237711818920875888891317875659028116491393699471812073820694196099278784756406937227690883603674061611179582554874068857883463978367606978522564223004286563935336263942143685777706181939027093320641871770277387808156925137256839243676767553892582092034081841959511451055833988066321812584858663378436858631852372424287453920514708280366828034896611286618956890058931737851319239824316892802300631874380589618985846655701223234621001934077630670453520026454340691271441551636003602190816880944383350179436110836044792157062085000861313862419977672940830246805754324924778753453848175412014917036035913032631515651172401274476290876734010849180431367780182988284127165769125383533517376347213266983651691446171530670211155172649034350889833070180304885772438213847401029014529529489509395179606053217759731582358593674157107689495612580320148467528841108802098603069576479393791443566096458128663843612796560809780036701193338123159801131928453430512277966804542568304547536598421759149241630953867304613310010624712861183575314718099814953554070836225636596179709526782931381207712358484469175417497700309758748652706721526810424037241090398115059511172385590530091037398910963861656859477720108542790895599640839630984672352554903006011048323543971594861593263379591386804332091263039298221313093225250123254157762641787837766731830967019212712034946313207337848660929036003413532247055869090514233677098374740369484445291883791154276855086985147938829994029173819469494879495166128578906369895285563966873180910125133576980718337443172246087121369270976816082891847240378119883149441500057476285229793740850937766491495600844991432294393650483685703030731180363023080611629829018901601992751643026969399194614155379488738219791531504482073884588061258653690158104337919343302525420943279146865650179794837923588856302854884002524806326328794807346836995737360702179694428219492279821520874606243634895358409777307056655926545965530530189401475320001152461955333686729390299714656962625642980451276173713231811818857896358322799093680075650564891031187685523057922165472446791040288935988778591295290941744399041289175792870275645852131087100480128739560609133611006924836541686845333443643380958706912319816079218791586242326438805837908198279677180266899626455822116389822776026397515735784412877380087910195762910488245012746615539555564717998451558078372549639062363454495432767092060005505805345300607420532759060185470943505955074649092845371004923052551738226631910662766677065578578225937102480673023556278856489313332174631552802455275930161857472452039596076440321416561455123120362124456968066339204703854556870158530496418808234554587669149301711238933701369510370900386977291898525561080911149623823876297109077158138963462132874031937220099181293879257889905560709069568099277489957088566143400320465546037962437796560186013669442562145477537777025301921974107732404228281410929878128851775560574862914068379818940698223382201268895572540169424428360476171892834642599897032067846681214627262083392475154336623444534836606033793634382666398559689826052167421169548556845554364688980429114605416500826611851451048151982306265265792583793487658254378067111133026652450100086215500397393714719035190848880914954882891365588173956840881844433211568159313562963510772256329750353593437550933099864343954726025657450397871776915415383543128179565669586374147961956374019639721033903882200240300020424583235746243916214211926170271388004478988512696545035052757908278638544442668167546134498898916165693514504762653289184258226391212374901881685903300550554166093582696739196086230275250749090475651209859440803666511403058860139460558383231633733544790022513931822387095939668187923174624475201721356530072509301350903909956659878310492224289362182279589637515746752888555719392442252354739742856290274671753363455238758564551277009122480617575417186475397388967858466976650716752966594026556036552091813388222603597410445211220302695559690872694899605675222762343992363597783443216110377434384803266643966284034621904011197792460859642586396492536498389282879279151109004317077886674483635773248290352965225564647339543861687849316949967856274196187047032859246374750213584715380316246332371819177547302675815517339927718269141106830294256204568507901544483667424346494156391224659725824241941301485111476165526225358736796625185579180228425915846747638960056163819361898939707564522921977166586125171539494145431007325743731406509169591664104145081942338139206872763312780843709212112817955416690025626995672469376510517017871806926318918069711814572910706349006161014915677405193785876884620455648128707881853329606934764513601230947974107047740615196602505484674424357365561231595116402864072668037954140808852130713394027143271209042986121796905696033537656403290876706826788947232227149277927704321307503077467615556681685449092643861632017446704787684674837634926273475653773395743710451612933808473732123285179612184947325744383042130089968970041403512573181784585973632265397840303181937517529927045686849170374563033913488268004302373607507165644478329800823812847365227285068623022133898833809688085885139167629848031556317897064772531925499409261959415808126218075430225444501521806532136177122514462004420504777254815649867771160586396023032807399634901280460202680994264179990193879852687237113494291472615579986141817813450500808093235683988282889738491457876822613568519645036719336395981416621483063868376431411495793479165783269474331613792232274518578507570613684905376683237363405669487605290338519099939666468997896710043772311678590813315114812041057610575390239085034908697298183315555878522242539962460404472670247677562066011792109517391009520151864138929577641807222832064630145883566279335596328265054093503625189305800911368500901343822760312882629661754392942842190298535457290863877729748184739975839404510585153461754643571580772988539861683433503935069447196738549903797190568386959252666444412412911784658953174861087538206045539365084806332838645531491024952258057009856123050426186760357935314131104143661419240709418049519220647534087240222930952783948392990741599039259996957106203650855654458238422676449714694422697259275279722988105063018256364069291896166347402468273565282996561541432543069692086117527187643922331067835137546988251177500194909471583372814542141837696914467954710559973742805840306524066401254069938947177943604655266538980250147023902500666395072201481636897033944174527625517782606129059175653855596420461470244772090648226956199212093191546511708878375633020439910795176007185919425005265520184089005108377288820337466460256497965404732451490320268613992187590517456273842684779092688908243901374445781802294539199184294445992107123912566957810497767767258940707201272057029219259502421573054279877835962619696630383746518744982979940160325154448553986912672203935072278302569869347950275234668943073435467602816027193205250777950293066208723925493681786018177706374485303523160815452355462424020461523249047536607560552145075864982563555734306209902276920884928782078795264743135800877904012691887700752522866422586835673866506800465266723824000952372589666292597561627251317718936684090687069491757494208854180036105476133479456232544360809727239326845353886226644352071880610661634578497980804473850219730525760757529414564282878874621817601829035760999568538432964492114702350173512251751496481129800916242189814759978741795367274064269099442173908654745546914634348109065810483951325769587918397474214160677163079043721487255072962662672793825947941241864008036665587766322662744237309595634817618064861840458926086099104102196686091103984175733691066079591152646581230098222700842923617201601445090098169550147937354638810598654832392169267283218502292615885135322377795413101070843459871808674007758775986215019846319440126078668196923239590468920512383134617859382214496852877229981501941764089440810190024412088583055191228049453342238465069404689984536068413353924280382450383504561103736276047687256436732617803829448944016944282347163192650446085334619673799067774029160991424139070421135961564394238144399016850641611365912170753784120056092331939631135017558333409584389978344341290477266236790029471621767595303757856908794199290719761390395427054949767795293188990426869684744906525926600878383747575472088775702718428421862879357308220608727416872763713090051875719052399823884788279986519231450130533532616706227812127896826484375300941111262189448131738091402179965493101905545486417284954351812864974132695022370364075865986360662163826624416135071161315532176184333155380870510831817694757333341759448821558937524575319906544235208689204221009328810989335964692739652463690432678802650165755901242565240680113115814102022168582388622488778025826535618806280463261667166839898795135763276156879661539403984967554600071364976259290851990061941402953411580548827910220359740628649404096599189350681153220809750190288483326009631555488191257366663104068818440132694204574214697205424612970270084106972341875328091805741828619398329923885470948224606891823188177635486348928369518151166240191434720757292160612135600931047668924801305328674439568260113989921381697269507328834549357199720528513985319909782838697928344246397936523237261631826799565214131504833581404557652715104588854247620454912712135048996408581504642349482097691499383458252024590441053290757415642588492380863859645656454741240575872750581295713415903127659311429261739874631593934048776578650602466309801600423478574949437097627324626870171633463377294617076524176546005311815463550254235059048749842780753984533193672723225000362166992340054100573351131303388619067426670043061666678926251347196688303353635415034289583852446908570028185004605384152154470231399618283301746783364110026141579912064415694916595978145746905115923315265905236200627247648552960610769875433326978903162927638427574766740548352337828568344149907217266054146426208224440516604034065708085641885015420543343023025404531242403670133996785591843423917635188158180844324180866085994485026218836571764867617804851627673540783333109855364491796520188716001956074825479115820659639187734724845753873692019792384712945154899701157825893828486186544085576581263851016063706693843814409964799152503473539414510622112028889617925361138675544229670459303635511579560614368829861934564107915193156038845125702250206482713914259543157744686455057737916229218677922143271605557576885161004886701944383695109928078056040423012865743503764405405421376000733975251337364837404025438132152861563708746746002993854698318649566183161347910835428920550157445924595328921391368427398214107590446697970247308844584112675613219404252341517382736756972230016015865262980683117473093688741474660037165243147585147370718403862069643557890262832919855599652070766922320646423510643346952357894973508626140378333218942075130688426763328650934025159560614861884172983734802302903946241851991185262391813946232778969954498824554489655543221387062347918777218403608018940142586419378499557870421620168993928290891118111621023812920325598853745369118540616659981414281412396959432169542684438340763660875577652661225209755259273627878811556547754768452855130253039769733019232228869254300944514407452958252781398227056919829490883694035226750011408704819508995670267331980433145929793619522825988566782697271787549628878372189145892097295750590838459951057619751123613836755591643806426943694675569354990111809558513100163780755738315689150492697202958793542737735353535885088438647761468180224839818723178165189609188706605768192510671316814446676653596870207651673837555871350327484360587408261558588420643976048512644916156857710921687010485378950640819594964072565576246912127460621044018211171548808210389149456232708369793376916049112976270656295096755732219967894459127140049563719497557290063201064532039381460262702375933417254407524840089335466417289744095019139063805162519802167515418771696873897890059562327268647246540812987327956268046605692478618326849250397020409182663923674185491366976496472392697844985220021231992123086095551045466035710194762980342194660814638016911112049543110135645446449931515961823837412402436480417112842009620839501431625137893518153473106821745063164575984106982443104082433047025720141609959660425005289266410400493575905824427271210257192780295546065065639473953975034575465077411057876684548345717522480153031247577720724114924673230501887925340840767022835907705798623262293150010960733207676037627518674374158920454791465637467189923900414101796421321055475093757387596230036675675781278969301341130738998200800802955476969971146413273054605921041193548113048779763802097653215259504941632334941480158173195846745257957397314812923580704762467379779578782801838921328962475110967763588166070262047319576689604798953612072070653782034385326862136778265294154939620393249166793395553014739971670664135887398526078724996038700131331135183946001012352098158103772526203359482285819860452996067133142295517954060041950018139093302380803778683570289230149496362516918411929854244481445687036716407518775268531153762715352065587777457284788725100146765713511887190617096817145894465433589227525519538034825054828096175239268817882697193821944405320120338859795387800381343064674752447095684378856397924886280694747902266209117151429858288504553809889281183089333481326603256195146651204575358138979793249506833019722349237647645193812275325970125458816710823256580847837317648337036604374492707931645871932175916473153951569502569575582490959489258352923741423651390145020863080564199057573772058546980567174144408662380406870578877830425025066867997394045384791065392086568155711816101766106081825728218449290727297445524758162912676780414026167406181900653030966588760209202118185827365643846155358364277529812540599895280082165693830542471626822693196428026220884805510066411291735479254276288348340953667893809938972125000002603772798983904220307764722050544877524550854061455860606105534869828538741682287090862853710945899127411845144488328839353109461463765212554386806644918415682597632701572994543494539670331715562742193721270433865221566320156787534503924856507569334535807946296461972069217820700035881932083232882668190938424473963557676854705685161683497268890321831250205767656076413975528492362503589379568836243719662125587594693687192872189611056871957788830525703963620080998896273307639124444463863362368318902003086432390264811495387163852260237255731732309568000038749922852016950548844910586442928013292217066545869964925264076170854789652048922827181901293848610207296022389675624905846806574808934743542976191859730117406034071682019383508489807500991437904187158321296972098805838980036864292299255286810744549525670369116454608893885435543680163316792658451901983343571115993271837327083964723072866574827375275407458111581556803050798079751805507509746634722588619236433972354986530529471416536628194560106723904315500347300243645014359077255998945441879175142168637168356877410987734233193039781212686590735455393265197183695831328319305569812509853633642030375421103945161778881001338827614251825790199158743628910716045544540617403712430852220001998595552173753609375229670417767537491485104919837342224979843052623403629318751801030907641146641375985491582090329034037612689778186050811852911305753102948504573174981719139344318741358215782968516106164028539689127191660888095182920916482771761858941112521962255029557618754228696359130087770080789957446040314090865463604209625340724844049283913396427731292434680653756414399677841365483724783013855617031842585529453565721359280966069446768998470848281673489876190670008734647941458772056560549731456111355977205962792896151200880319155692816127253190200454427047821056094721516371656164694975934865369317043940732086822045965299867649636384283230422764585648444542336754658927944118177947985078278101131165124225659522829673297762905969893855071344198269868919106680669526332778000172168600883631004476933286882329629260427599877282287875816476281604277919934210203975955075547222697333783975745595079861318493595537079469595495524515692788073077813217071289082550272805844008554907387189750802163162716282528234625778638968165082126143903030761479723620091763588734557064040083171207432351501937637806059241514412170401167674164811844720774587275445071148729232831928862701521896366394452535494267640487816322149965469490371563382488772708974248494206409421791542675357421694011052808202493166528588831612046738601251430910285073555605273154540409872555194970507333377127233786664660613395053044112090373182166272181629195721684457380857863889185611927996692889034361198638107763311776266766189942653501363849276074233635741026914013666496325731101909668231185011181738078920425159345250835149093288424246509783143082445985304851582158566209354666837490749036607120156568145397432976001788406808058419561301117209249393133906971519946991941616155143038968584555647788051049099952850306252187101463070320165994993841615087318685041157683211691372089188634189687767412746843374044017479681015662595074608732769368136525982883672949090105115224749531696367257980301395795126556847573209840274184232271625335501810734054276163957400273322682301328300640789512332759754384224432268374676521475734910397446530554987617137175431084934804725752656359362705778941269548433963294095202095614478906730433151261967242509993139771357635492687520067182608777767065798460368809863062050270876932122974054312199000989698968441934350842158237589171614223166721637562049041353271727460339695886321371304187018720530513012963554987911276062359853834342980745147445412457827059830447316011888499929479043740974704607741072200020009403100277309857940757378497870529907983483196628017166308364972046117917081313688154243358006974891771540047416699962337140302099616731791100914799926278872099061314324874996609821566875257521501119907880218915604279841303861851547536653471033378314543426671963994301780913501844622494951166008902401098506935856232450886228208392670539897176324605159842580554705623044899841065718819744989440619136395683933270700492850906066083896509643795138437156240584703099451691054619696609627782030969823040345709749748127513353439956598723613699963719254269686652302283750379832881205127583535467361305930241688021546471181090245299601817835373565011250759886636262175523349957244595187462944849973475474045461204044844364330948170588013082700723201574038889726675639550741096938167991340046758324827618993766080287459985294605127294858286545071620743303917049106586197108691852950625166879543392925975775980379470693540311718041597545488954865615756221981115868588774981430916033766607404991171699886549354099916037583751845356250870173380033421876408907164938682584215567703782628932389275279869095781725023666866672528842486046966779924155156667931386793561476622615906233196914222667535969628065341676812798373326297289210271125125210748762315748294758956360968032754478693633122786156074842255829454817893502713709635899594287165942094648446389096501751102295485619733502052633361035292072588978010808185166735867615292298459036103629443683171587691098628487575006567338229437727227570126809809943196963824865518541036343444299099909429869213649627061282161794516766304776065395972900192514450354283723552328233470121281200506298652079720083977694379113876771336290877354390641340407170633889627327478041925562050094425889879463443719292852394087244011077139375357512150067748447538169135108701705863863761839753541572599919979078535902641834826516201556309952643133513999303679354282923372190935756067825971947539126721479454624450820899445608229059373546887818214403006049128204376881163456655022712021181775689373737021418290164433540909256903604013116157629555872362030368121506145341789385658723601486364686038514991474999947761762165736660229531666110750987415879812113416428341851371667469196249104727115779208601361487782290724872036618560869950249374841863974268049901519592918225842085731074003525423694230588323096105132801580279204429498974897234606891726240513619944379579791584374198305242607624363350183869521134654129359372607640554408898159698322286680872400312083752356064273883565239569698636944352050090147072577266432218033594890046517257746648251423582149170446854623478698010239464853044531095237333975831174310637518015953573185450500050793615660464847167681102259166322925353252182548454094132346620159772116174170157471453603054213214165160326750664470224604283876808963789095506358504233167929011339109109967572510132448686503939463435135710452907765476921587930702959552165689535438512417085285356798343148095096444195353208775325557381460406673184212636369722071210066951318208844093366849197229825388427517335266719125280726714261347846399931884887044322004637366786942578083482639239774245046874844298724064979272013279908071140177561292265214321150474558744917888949283181507462950079336591666102468028173990778335547492389114034213709822942146876176905523038232136565781271194864049440487658918441705898596302135128646086688183896054956154083218175081633069086758620135323375840387108527814660902470992517538026682546834304818600070004609466502204355804394989040909284654142606115100588501791844877164583573199703720180317686169946859953908256899913673031873459154492064810450965543533773161369642430202047646352368632581468512632680736162311233210755402968472698296846660086687700835452510293659516191190240926664352126007254752928380554359706073020395713598235970461673996756346041964769855701161245878666873320631725337874472485517581372231705569365104158522035311064709613793926796116444133047438447493876147391447226527856689827529444395912156190517843939730203866524372645287517687004862798462939240168655998028864159564250522113188063000350038203971830426435379830780107809443733033366831000438507343065689785962826794657801699584138539468622998469656466751957400532832386750395136825846681936726864368097060418049915216878428376130424777463324685782416229396481668064405572121245840878052885023414293233383513847729392275829507984402189499601274477078446130416583212365010331397340299876368615521892439526965567582378877595685242941065446230612668046331154826583774822680838948434957236373979619546541903296546942407041624542396864100357716501765324933297638169168829734655795007290544875920664976116381263312277362313518679303400921084196203552728079362016746546730797704792171463129790694561116073704171426307343106734195782963014726810880614043095346660497979055585909907686283436204026188628756789525643068727889968038610978385110019024298843419577144079273938105216421262521107201842372358531198683720807986941005717008419793349348547835995438928005993640021328150936206210789132082072660219707594359237599295709846033881752408554465037058632384885895710740062448855721082720225751087293482026376258578485114807621029948659604106355083799032504436930983067998332678540770293049138650106411491177962662530939900459281988952498410560697477038721099075275473025412288949474436556937005446401082268433198420741379825710656991591009437250811244629652291260139247095616274734506393048257841378131218225937465687708711395470999135294517851454904957667470162162573389564608867691090426345724277930694699506950895464348125130526187724070115834965906784453224690594132323268401953303268570350915885601904742752284003246622224488021496341102533699001191536232670076719094375521709213863202805908215681964043460983734049590495654980884424043914198690582835809332310505304741555459057626475307193695105589846910496026607278904677376842220507170154480585817310444470899614658309839197168994595603085133167612300039231441524039180205283450371460124756391701842996573523290346723254939015148053145098363986873397203364730835376343073298985396006285078811104321841735077998202317306891641429270136092629402211552529784310559066882002916613072249303753569058040627129442555191088772426037128840883286784090774520366545741413103652745463270046655850927300941643296821823717914085125398192034717612448258882342377275685022331494056511059263109105401138209453245986981122565994615456881789799707693159897056841593023803679127187376897660920681431382055328811779877344610978807873429689349706629362953731318751038460792106434593398222007893401092679332590386787434423272778570813264541536283924113191410350902599540524219621116771655394717984578744379547244197635939624327512958376228681446396286853678655028255882183833706622940795077928984191331964637517995323042107968392414286818787505652413079676223173936708215772048154504406689417550529771405871162114610670661010739617533100973179857172438931048038781013034660789278476608863601883875550520964504090018775466002122058494046336801127272587273211362849060063825769379936216931789799929630971657109651168716578895630782034958771233531474016783998588033769881752825015685700701363474759019566678690295667382409302910228357065328183019411415611313812154269906916819994466609856872994588580914227943005047112512326725338872376424556829849643559676675398746351865723780637892423647012306316782518297044019200587226416960553247134068704140445754145274614174141091577911059540942013232414506798356536554399917890475837039580762052057894908959313176308630883164379341760754475771893807855468187020616937179254720448493076501115234542558386184982320062579798168120308310036024524205099810931983252949019968577194203493812050969822290583193902724452869864569523732019181420735707994158858727445122815108232399214531312057048557044490721941242753867056299062918486081005287177204811313462998557091516884109932021701700743432725721440239109019945225935294977393572881448907313716040513128424025808166866724823018101331872719797715487544612125282201538338244356648353113349870002979306489360118515987799958865207441061674469852722869124056905917807763096816607676417382868149472208983946437590147841819374985722971897514273223346853777778957867529326235691647742548762553585615661112432705678127731212772054081823781238596463428123979915982200253048108006943635516212710967185672735157145440155827021038369427392044945488938792233591461168681595718679439349802868246952873831495074101291390460373528688988107005925034534884330824650446546379495160846207080531695235166725655800231259190343603765941990751349531800222427443794821872131129170489798938090697371484989603404258262113815219084135089748869728438281065748580747970895682028117418048073440841766300785157268808370810485524243900934586098054154368463336069432672700572282724905193056880183276920622437209966570257516324773090872207708109660981907680578165800535853613385272541098712746703134622278167327555267829694052805985820394391297687661761558997150831305289326829654018164615573250866167523671561814860172552415427990071479079357493332877847806994237991786996984684907541148285111106524963257759053646534226330071584426871163343228937831996382212929009642103173655018579110808874879442676104500555035318202743822092102282272997807134873125745748730952122846969852607362617446248070734731270971176626262951716033571663604366612170430918565012708700778405720355051823219158264552398251451474646720939490418822760750951799066112220837964809759316428608576491932708793149341551635879016098656560342733781274419742466650817873135660454264919835692623683130576841547965301932112687866428705307486936655523874239815117519747411855051820074449404669994332692297285671049963828022649471641901896562832207127010682581536840223548410304197616223190828378693185348506381178715805250077159784850552721260911621713247053627870533529887427700131039506234980863307443436154612818578157661558401692999718504848775749426825813751648560932316530606419766129061397705678201770038356392543605435691892988962143511347622773789478773291049563048564525160234911275243323327206361444412971878128065562066068487493870389016250656603859727885022624222567673842274699209535896574391717923016748603524520301013697492070123169752681386796746549205866824347365725646140507381668710233708054702032952160061574592973108984855813098755258839111237082349232313768423712081069211592461646062506379643048234662484090048258728502936340089662720031918614348036296698448887215346858501319631583104946131973336101765621189364553058393840094674510198616938079975246897689378440258783020787318512006241845633420507033883059445500634234161239778278691067581635357530411578527180985283444928345090648343964440494448843532358373219135054914859256475827624034107334388018341758380379660828553365809776787137017678173664839719102404355080806856273543684613163879479715290918299007965683524116865516795584511667378479739139561540819661636615386712200588154174451458590934403366329755858447925377700769562430771276567701883222961455329622421264288358965547538914725802793789206391143876448290508819181609391806431805935358305664011795979597970978569788578511967586042194840772941755002331387389046814403874851517518738969530507152978663583899975900901806218174940265759729358160797398985484533668781055760352563238485262084259491917950590029079362446418824670950450572323302026479407137003433707752754133348135114564557664857434347126678822456508762244185920277830183837819267268147676273911716461941761389799516204071651518121173817678266412859837299433336993727350992759187832374045165539862455709718505987571006176695202779523961667460062164793576156420836207106971791592388200526955846018104451026809987409956676998565718044152274810598071225273863794585234497381509360100799433985612369453607362155022035177385654407683323442114020311807092043384040132760005068096494577411574992928537823671840572653760154277277173197347421514297001242443334902883812283254402585718326831675943865857644089332189374635733344571105541755694899085956361991752799776668383334067499677979436920609924877058995664798465548444902059126167582718773728070606761666452358931023055397193772413728988585478202763899154163488092401667027733528375500036432119455217071063464402773510465801464034771986347940001180250292166544411561876361387141272064953967442461534553537543984128359368169560092536636960741414611812577317915438201534609043050246641058706636772013037693431956741205632510586269959172535702262238474856621135973491680379887427845013371343665157588678078785416767483469208307889047484469567730217910462836606612828458265774609530949926047029701586632368520880874438830494838582985358858734177202611919261063907527248842412373426115095824655955736700894127962803316365118987865156468125616984058563119611618504102322411924622462826705916188922319689901612639088056870742807629430652713671080655634342844888993890104081818633672291041375192325859235536698553106731781316414833589806469476844038836809773295822182441509600490133730843241214134619936643146277698839395192567918097641368196780227222151848414773074223720279285691100284156726373659775453368362296326666945514009633568289942587353992860048178083496069007462787139962422319883126819920690566922384448749708312443921990478649403646841032076495756452003364008528266579043917999449462131266421537231331761016919375801460979080301190698577019953938672882863519245393400519013578505490248784851742848662451644033691627293965536527326294260528089628615690613711671593405344158101706146712694200389825603761717811602995655213113428256943041177018291449408159556841410131661081070104931304791262051336610052905699148937067569033264365070847620687067857100050463339640489931614702014981105179845267886845312274071236046728105326097040247429920055294323100789519902905827314513242644988253653686710660578710053908275752958630680165466938671486384695769859081265393477920986384315312476755237040492269311137474097179070324614403518175955882560266583528220788447896707913561948405158338532828728759569661476643118161844471103468928273708290416447814809596424925144904247684935009081534943544420336700844631684095252257560778194132612746037840744760845904600989647069660313740172520028889573772792028232502925763399773044619966883361650975035683688479921471296837983608850284756313543527055660844091437790066017116783109990051710056770691317643042768910809471555375877620869344872853310067483667021698713140140427854589219022233100236472288357180737924593585504637147303560224797957146635747625679192570216025333117867627323121626907385899473992620671895939829473523773132746494661044761149784655337609181350156965691199089584048051797349313725066472458131958784145576984273017148778346928352755060019663741290190306254905341480110457337245327971120822543010724324570383860957415572945611667144252295816244161816987025320571475696135665497690766089912299132102676749333542636485494398338399868722477697947153029653571185122062653364217062716340365386713924976610881524105855658497954556202063964097876581507672034596166736920785089178326591292620693258598948111952522014318764308391748079795484632931076783802924242615415344724094947137153280916700225681501637568409931708384927677931397556306847318869982873997295387054664689370315247040643347079593652245744680772632532913715837633620631898523639951753012090532449720542679171622887779959288110121550508153548056498389212077354895347227446528052777086716142591572505952895694520523261487152906142901698075703827045793351158385007314630508594034341658082294137015796890610373761398890564898998896272839690288574570584701602450806937623880694635234489828006286898296633501028437780977236082965474547579602324117700662570306354458491411452091564115886774383220208215893571172919309094534266309237335017585543396328318131192567829352088996875041971417572674114382032529102346431190825932247774788030486684824481550316796355887854521235778136170833523341627743114501422817059221473289999114943040541939694772501949219227387614773646084283666537630485316541202368211308385433053020334950922808501871438360115261127115203121174326055223499019678247450755332189116281937648838229600101019928300220930408640814031926821455163085614468023835239671147848947715323121725903663690890444904704275982645759245589475263205579720287966600755194525603367319350196011039144437833618818193958098971460081772296729495451534714452295120641214000337944141850931848929069177315456269000904970334087100768141174226709998297605459552147291632647708312190547090940479860502199096867035298316835006724905701038776088817216161945614996079063977606936698352618166873193751336790047921557923507879921716722488403494638574127683428592517901852638677619372981800454564131566487459421207070010032144400325900418536083625333775624668006621012041119420017320096620464628914682687855925737911072138796130973709861973388402107906782089438704449698386631620145048040049892752143012248461202512739160494370255728257604807963679808772160936842874618215149142882039899749353728710549754225349974609423996039467389320586523825296751862872420098856761089176833356704800134525513608546441733451475384965879926410970527490572631918752384173695168763585478403519701131347091769159594689845306580073661553035227242621457272292020654827297926006939663525183241793202526099163936005189040755453749190873975498409157301968768534817683701663658310339153642250275101169737541040999683004320857900101986464627825369204315271752315691286076598972375603706392331221263645930753554774036762693022371969537043773332946774312853543537081037122319171281417568842156691545784680740754062810876799867895618602260188801810822623738030723875813903866173057722946200318727592852015542839880041448023727889010275574601681616915595945266263874640127668413264378991773795233564511108420127161607534315670291839310163440371452932938247630184085371169397186040158078751892582003215581611540852351053656888226570868618920912124184292284393966047726772670991824454983867693658946230367548302881139173747581386525529777379441073924802632432283795848792150618679106353185840737158133301278352081090558329905328367177873604392819226740896436671646140040445857079233062441900461015877210083376137845765923785092913852200940205211191623404036621965952224367278723177351863440793090093526541120405904805824881181579104985656518292240251384452914077438009782818526604695874023583323862388234573946310878816048160624226089043049355161110122915963385672726701314729947372050572887479595300692716895671800196483649705575219648348591335891703343215437281170212291633464932918156281834816642337230101722936581079008123613845813032424585390702721284386051522909887879473183230112625244819342595774635044240992282014558381840302761674066780253021467828348728872886268887173869265354902117033600869285404850567402252467503300363926137994719013642290080678922731799853796670977087017706502370641725880555178651184957214030686568337175198282901897659870117029195197236022197323076322253457679278414458988747482754252163050129563844006249754933642583876967315921661394192597807973019749201692745045503922460094524960195501493991582594459181256827237338078868740715772313466004651471174571447851969312220713134534220396933124028283415270446613372380860761217619771045646182159836048030275172439110182468295814436913473412213086879376132662018872136094801772660688516989713769439246493277779895657590588617520322225899350296302075232233210684550202243866637674431535182374598511294019092256513234178925137262535002139378284788392733263593951392302070584851479705135012135241416017903854156824355918956690379830405581309827020447400615168987730771653063355839398790831962242931061706353822099104031368923163914123488431038917951030741012356885798764695708425698016603547857463815695109180203456651030571702912080270305955031952141757517399165738863002197960430492779246704316535968044794089956070668280425696969148672652004539314237364785652929347787682410809257933356444861864560417349639887182240673914398701490757529842865536710854907122855298359766137509872292649088189123132547344097902434938669494126954112968966031481704147727012426460268868435873493762625080380687719007315865366793727574580795687158400656958761393093064278108314987783582981336823949416377349526076299595780877195968311743889441646497820889129004235131578306653247521291315630752792477375492749263477496180106633370448529330705385105753248345089524336174431801963196956462421360208505540633003798144155526473242255863416421614703728953211519136902286253390016273774603660649833717367294842115580250100143518802073063150077162047101247630326180490616103776225616471710621241776184095611897502754057471463451064338526045975989047444329355789752052115002570573311990839282629756853465229990535064512279797401473910090273855125405677069441626818685991533567375826075873978527230898861509046644690001828662121238498881618799503264067410592357057929448059347049621852212523589153546896564363449010574958832083388283172807018920009867003566788387757047984465513551884749552931157584097228312472592886896733576321151027241463989780107246655666979835361563560716862571951704655911651336014503589101968576211213187374507510914854011857410757183836217118549467635515897465821358700953867296015588217125285165600212730059284606480292141454429663820553669935171259467815008067873314407367680930827908974470131579383007242718904200556792004916666097269985671928088389700057509995409845502185666337184225102718749106883233797994976473698412602998751001656825187642866478388544633552270068283176607135580152164134732698629413420768816652277805316000076649145590424583022427203422075501456867591555045157221466943072076035003981083924574621080484591587885885271384134925769647715666120566527036108209288279405858669778016413444148132882502086003609764724442295287141318239691997499355433421972657797609297309604289546911025191853055204270607007343358667036376085898084255837444950097882385345611529928165906979265051417503033861716598709862050873847413184597937982977424123064679450581839288517996209958186873636150782606266665979171846762261136325408556045266657857833043797526211626201545624218389372486996291413918162170860825436998629784386920242768689432832510032452962723026776463913278002151268528474604958441690105821166692600945526598451266366443866179727210650445169341214630749272674771209993142372886502198072410655423896877950941748345717549603871003713945728530866675610966522738090026348673703680960428422237573986267595175713012005542190607909863268465449050920435260893090664007292118351648039106246132167430646710661974129012327448711305341734170647905696042330043741689723522548122295173016436710681559600656243818016618848025614933029294195529091777203496016756163134936128228507211375157054648290999754275967839563694591925119012710976858465522774523664029249966337870281853133157586520537933586250925759755048416362543221401038668142679039763561545074067097172191945114209897454895807568155241346635600617068902540950338953299605697052757079995543035811574346737803400714534570304800116313035931130269384586925156607517020098375446755326520643018330273677040016384294825632906319242172181558425867455130738393821824245500499579459778774946772141763778168522214173933927739677077624535742041197702464744819163797701764534952150903805227012046663502292044743589163894251972795549360520082972666019700131420420774672883233671773934107283866327333767037052198037996544256635300115837365703743064093816165062042619549366921913202735578502498555006545568340664656563898725978030857645128249498337428401987526620369705856224406376090232447160822870692561985162303238015387399042190599036622548811372586912505454893857027951484876885782484615638571812174336270276974803641652525666506463047817480510509726054215125313768390574729563406683330630130956231810647367450572782526093303788969874899371168493319067471090978236714353051807909555829477807700462538594450750188451569294457076355794856397724980559048050195971493599231929697613758735661942079094882007658225538237033537165091956523224018287190316155967940750608913969652524798504075282924292151079559098203270689053120059140314343578716273619966113284577581564218845581951055956105676592282388097365773690420271910777632703626330969213335830930824988112830646243307013135680473930611093312589476539263501350855648234911129926837355288573947175003113164321694712114979984572675342354491882440798264855618798174471420325824358691973619700615974572089285048926852449098133838669487637713968776149037773252746278577656582355024027239816912258874551731928092153528521800608450382051844884348830142668908538701027088289439196820394997951315020069442325863523368726016387153017252646281835747102530977678839361553514341989728166267867108087950327929158641877620788936263940782353970399649997970299842209457733906053671105544456887160112063345075462756863269353122689007894194277716991224130266600823796656230706041187770110076339164146061832650619719542335502880206291098385613351988266537181873209331683748438776760465089043068055592237363711669550158833264293583100162717665322559008043719560475688134540975706529768159638393646697363816840647650325311076656502401962078380911710077777278706782929516155205880710418327719552571144933945345985389876232678954563879210822283349465720986818700203049454996305498165091885291297150376391234626490939225404009891213172973985424075340183328877272639199941785141756951443839152140792218517757593552797942785258208160787542080279628098940164770512074040290115389612701956218182843299587096393915106634196938735716932670631838280809335619588030517866607804126073727082680911791820501901667799896810924819168878314110904901984139562378940717981951032094003444844719236840265561035307225399750158252923754949051839488943936604365247731388985500609471019051838845729393324907011635761299895569525434268990787706340958844580007021822595700605695812179129843743404840302900219350869335519745473877756356646841702795034582242973682954819273808177418684213402300347861523558811640126347052416645211360624935561884595585298599597814612174943030779102047005136645033143637840461577739303750590704905244502815371415370349235856917087799970702845082084498285383337646520620911563929126486967134284684266229548981511555288533679178681071894389549436213319144632280035967672832507321197732040607501040389271998797868214055570765060043072829389956589903763532541889921883038505349135776978471951152323677021167364793229559341127002775201702824015409510972097583680313648700296498705136306258380423104409936391944000160733218491066449265911908170539699820844933969556378295628559960624102185667946227754477820626978472676325210645226327209183511122520494550640823913141485665854745385494410523572645731756219438944798521905737365004896694387678458195233549629590782255538823570600142642615285505740183619879635902920490176928319714703611488956759562231152377245016808296190897524707880784242988450058952198816933822873491798072080533676361879535903075552528527887618181235304799777508614278492044373796779224079984909884385737403996627539261981797342038428234182664521064294831538087383880694347920336767072744834250242052114693847617875866892002368714496277039971194091797708904992975947362763252429078467011243286379091064879650105810087083844467453574588479443381946777036344155025008801362823126308392338031336443357000490907986869941603396844537713048160721140310498072634472394612614701897636452920139637434852780412099250955966821469166643168815685645599970298929414738364992805701489935008286662993868686850788207616453337825747441824180144384798514500518466678614600912811904874393656387204711856266987864673846661390941272860495499844030880297686469133407562544521710800400226729677660072845947593570770268570241867817566872864784614239674915872837219825166995249705964190521401162231401990032833356536005845217775105912281355800098256721785936739124742817394204007124600982768700290020039360622746557996514154909265142453307199754599119549832708130849064354881065418790257334129590510807859019704129032350590550227397463247906913577112309334533972502959416912038069356964238798542110508876620874664531706105690949162135883619876645557722219520895417881481255755821914665162061395545900472937416036150082255779330773502540359094753117140520229865638572531771827288982180247664632884404521607242409751562718067394552534409170158793408226542210990842308874362330457311012320945343887577768272212623840533351125831281359680426062613923887490890765956829157490170316059319489613477498042670560086580031647925926618121026513727811920148381411745054523363636725791725768024725528811215647910126330582172962016140957469655243324610176249528988731890550743646079290396258417550754444629421812621598172741345044687787754567246366708902475882754256941381656442032017042397007906409636487370133067205664687188387132759197045802752274197645100360266107417664104166722161162593618274762076326865758197017330065148888453953602351741289130800359842013378837954799271856673173105719389839806198134136083447673354066448029760950915174332870008845171725626321896706550140199142957830715637855382133606041069112669482031455793110052012920969649602645771436602265745415161681553256169870743953161131168278320255113385082296637407130180820910409692390075643289420350272064459930054460428418744586670305414385374408950292352165372242453779863022236161089404293823564764933725038710455551084223901042220013489499020824882831405918638253583104710027657542681449985804644354904548807340528793146838499181451240846880534539586376661259131726214027700455734316347503143688245120549698401969248740341622192149633757857189382056534932761605786512261372682793019607815238857316047845826376747883567445738635007493754906935135039511629512164514554748887812710636846361184488133968663199805166491320871776704019861752875981961201490312049009149548491800824331769423213204175752580493932722341970055898935634137301809133208301655820349798436212187396681977705021786909029564306039074443809466860080165188817922281905898607551416229594901133334704409169144109591642591400598857548960175468147293573845907444144537853781537685858614336755349225592061016503849985415329358832851819589432448342644518513491542831642820140061614200985197730176333008655928422700421593798445309187847077031236370767772327197173464539391711807261688828490896732119707999654223397153200792666094355556509850170123461746479816386877728317736332381372844158685126937194290574680336735626371817443580477880140980203702957954534812240568778340375245222654770226717749471004238419546413957978612109612671254804233723814729873574567188590873157825034073422162006294774830007775662152325822584128199525143081478767040287281465031250536273465684496576767496686121043736647214221225854808108937005039605228939174177688375503106628550984993062185212536140268089113679995629338358029338406201021451925777575613146840823051963636692033272568837661073321120820191758787339005272697928633311875799340494471519457333283130860073694950617288540083520613286846238076095992487441700414637740678668888131999972288416335349099397872215406617528419717063845128413081566203761402589891153922230713166181489365901235978924818333281479213585890932430602379287221529217695942834813760134277817673220726096717076624466377689408911603545321291531901508759041730279091912174666845507342171958165764514385674662758125169903351595557292232463177670919798503763372866444205384219325757312596262164292537739061536079671639138272712665741452097545813180951188048070111630902682570436230246862142241213500226363994739581378881822017349153789555491315987256817138473987033036795339434285321838910272811492566572663473042618032118061110345419588056051364301256736342414682344468189951328639811769643468242742309083670239760983032161342742098568114636948131843111401297088328518000749652432846425711792619600975524048891809974577233880685597745554987000446225439156845590113086585194760570152227301893682174574616161765591235704104103056042555604052774740719912930710662559691725105489736825594019388050788008020791984842650243239270430705408356249053871259845215754643955877557866558977706163900510998258622382742048296369402917151233138321904977041744025871299201422719285314736987260345566665955384463608827122689072333963434706256956097343478622397017017284665775396060302239431639919476290601634459472200252311385273283106941687140097042672260597901709699545621403685198319861312242511020414216658232973776085033271806680443591292555325081010657088299542393711636698560928450897063545227542371282942488744531420159563497891350495416091016894244457761675587689981719764062078197888633575939225549217740189965422309313844160578320608471138070050759803927458008062149216703427248497516283522953934774729766450575325621004120561733815250007426878073459683253669348459791454217316581455326485475972241071414816461213909096795926545913980434108673785618776868484455154055920612378468464367721593874245418922873458462742129665313556152993639695527185496195700215810534181528561960899926373755675393263721693702422724879012893474897017218540621536358591566513348009813449703929390932804481877211195161702634292790330617569585458575879571321929119348020678377996738149056682858843950192561850183366922582702930912640050640602545708530611641534417719130036498152137277169445483223668391045370355062163668252299630521391274263212921672010145791827393875620645727066972231545009112416731194019219242605858708198142028766234299984688887863824566704311335032123217595496659168512772574606366442542152007279915470644717926828344192291674031646312017489494181248492963287102364006585229238385399115938140120608125428529454547053288645780037830593258439491786761584473980231388779873908916456260909986477356611095161572809187638350827254932919860205913690151781750015179228863687750102239182080819281514356207420889514896010449771863361561418390258883671903787377475449723418262328497869759668048690951168760789425340406417606712841684719624570205328837062236634992450439674615269107825682325937936668953052426374999136305369523332395098874683801196091346886752895688156459352624358276960294096198725385255585483177687629299705893541081487037398318453238145024849396018804947231759747992213396363990303130818749830103045552349535219592949918463242418167622942983420820732188645368794644999067016289539693165566501352147114271428905817045713752882363528122496833965630132311495433738486334319052325453740742998125162765242158568874561536284877643229263860820555138398242275666749656571612239767444006606742173279877128506180464049892880170064715354954242962945794317424338495168489685133473935861271688303421498016762390336329238770727655159614749752606556276021096924023552544370224487904710832909118581683040811520848511311781806625343838636785778546352259685632545265480583483663128524064430656769939889399906280127051698101120297518303802023413324411562416080907384506727990006587764837871107105261013663375933515564548074751417888931411456191397531836005085619530344859072028325988479821153228825771793176331760118263712427922566120048175741961627121903831185605942133816990193153546889493065526738264666932431855089240709280282182473790071407387449198080244872669693935761545043687821819160364754019439498563404259765425503760404329366033053682035369556893513351499485685965373893607673899218306053207480923368691229406883057469354450305163589275165033342836704764827006451830862551240469349638863795595630726426407307538075388765154233844387857025492657356020829196697949811471317605800203800155238947427898220904323381268635820529724712168666340750492662797654123224816728064052605249494021363816366512988094131731103348011828777951957886254265798783344723806201222663315614770558636685278460757515452682025366388604187721724540451768140754142780472222620388292311849073272425821821394488230567385015623133271764415037287086756637573392365433904729090155023127780690915365407924484637393616381098622461266438488305734220051301457730026931409089108237351130125410195835286004690909700512025981189487175517955857380613309985148073854444138642975407809056184900340571774678753808832834728865571848386319664660595331289806549973205449386393500136306695995767105381542859486007365013919149499041221910501490101536003939761158281468575648188377104381627921237647185351032735092968098998073746040509190222187729326451484865028656335790724293786095068896772111892902887248615904210456885779810651241151958102797360752357873131657207142186734823148228831210384133600630833723678233926871925857610760066563405961140052877557938545395420244464207043362613170615115501646723516680177165706937895604711311883802037490573089948219838854176483079990669246433121016678926767736896622628876054931900560461063764703108417324341019453847367761387412908454987741359048832130809844815160398794512627176217337250445037171139286534149806017186855087330579592363381406179404274274653440548096611649444392417880969394090839059286209749704083223179344231664827463509756470611167279193420605875644276952472042585530034886806823042373752883111838924227575520898343014844795757967715891407724815386245457953609786072740085051089904238421445933454280900854464289588696950295366204643529822163661965530370241250924345468932907282836653566943874426384487516579124312344752132333841551116023766105673241752040226190361047976749027942626396734603192805218372972569616005023817160971150410594241752853226990157743940382031837709657555302542591869328945574146403470532211311829300167926550151594831685947489827024223691794398251200302790770092496989667257217931469355114208054986440469881555426609799996545447065999807303393746669837373691892955551568564246348507719353957858450133829190630739901399349465888127586858362756375035314807767569618803995191602219677899538482807617137245408082814189956965699754216984907300845574274431813714687047244289448341331977010148102178188200987484973131378318615323800465014256607053320252372170878317282513770721814988962518903190851593863434326627881724660851872772160632418713927621513600738626606890955273182486430045328318517979704868610721246457600983069282845488129754735753144693570934907523998892202669572015303368555804396605570576706807679256379831218034848037157888722017847869481278748702657939142112727828819720816118861705934043454544673612307351537210614175420821652812276668170197413704306530365809564995093598593261528572978587298566060381720522618406425522819301887884596239214613662599095940690371170254692909714307332951964404344571102158257109655822507010848793651937724698530371132722451184262069163253367666697940091579910515336710245088402855178002519246543064598719234334320720637424650241786492017535026998130576218067145063154537888655787613530894965402272665415587149244786995651818397029525804381184854198477465287973019092181683305670541843318901505335099545527025576637028144730809475940551167626093909382172055059100907324325101185996520261630810699456571934360492860836893540222210126042123609863140532204909963163659867728004436393627294455574122964881622779275128803909556706706989103218791308000050880158360913765131805204245554227660192717174615568090384681661098929170626281915975076755546470237437598864465872367072111966212542502616763205236330454791825657808498392305960531646772682269069541846246891277869272585056762883603655536697363261487284852610110003571831777010776192153485213175290697424950161598232773207011596801011742816322519231660823204717622578891156434130781395085234618415494351070315846331051439101515610648188376649080494193250468935987362447039519896670135961503221009979561217762365452450666076262953309503000682149998308304677154334568964422773040132813313519129166063441800253949405104437070484360538841137855374042271618447731686313222279032947330999151258064806642935969747616311308306293436177968079512848176981611101820113727747793424302462098131582200513243094780762238105401205774538173928094764922932072114470920821903114157902912471116690703250502639657833679027700136690549058948675628609954968670128337946020282403707804920972906446292496905228741411320363234494819137592334453916042791911157411699814993750276073070921767103726453232085740484725011219964518034741193996067292899355301829257731610810845809259826140179298993113996327026505265565116430412647897597400598276723415176577457609544764461186091387070882342533980130594706743400654997045745172692162362444563330421267951845780584417788813513206906644026117697735414297664808911821648925449237578258231418012103504475447030787044937950000840878668174607152403300086732556257397068787960863357137816874958239207504890857097312919475416409142706428373135137696844392713911691699760322259684283023614812589402193449737658831282985672261671949211118869123678274588800117571475222032573190896798806335433275418524375122745036043117582612787652730195294559495793897565223925212220606000775945539612825750930123425599435245608984012041373011982442074981703781048039072803955693173535996574043314076056283299314208895559362334682446009796980466042673209099828171819221143129604691061357636966230534963685602781358721238128575475976422586844550097416362680893460663923997634705400505106932991923517366645306630889291823381384429776828766921788344498284453252073579760887501884268020319689102087295571320627764157567333245029408000130695499471711688779650953683463985587017937008925842817778042409993918110904537297080041953480694465321482164776326567580343268984427652901496728796346091572143417654856256080483757077100842392454914138918272510237521576396486176532048948063790583956327658141566729683364487839369968644313848450590137950270735649518199476562071028030771224682027002769829237327178434918554739393619723332495854112452684047735383598315252551877476143678327290992852814674833570192850302666951181202913501117924454935884321900747190286245471739089033374013758954580548947009785918794690250257663503754764923433379551868026220581711295994863456125758248288366229162745607542188892131381726374418262343956152770432703534135610507957292153979823946854888330413665060435776020795732128292584137514548103307261230413435825145942064845910361491528869572603347395674898386709237520659933820083274016158749791787449049094520669158272886648376488349296906474916997518857504080742638463708653225496161277866942934743652688315563453305975407802501835248863488752337407640535239965532916407198364035538094865328059221512098055417359480062442548729729104727716845448539566219244844120963981536262253526303076351123541661439734944905469770405501521836479073946890411999964977326263912323995652450485573538582815251952105584850003953650254641578115388444000957894886177962828369819307085748029002670759714031175203132234459288960193257408734846796356963669833099257622326191192395941526101687846750850207500757233712722466650621279977726024409887040647165747934604414539666305468315147825698052947760462462376938994963606181190670582874370246708248298167209377240606481968575398843020147384297378430675240699526233952516387057868997097856425030027853037475589075850163252358018145175327837073524780548040864161197772197899893610080082612606712875942418647001844747548259049237341157947069106312606140791397487842578514664387062093066522851256293159297728592964512988223003396516883572167237813405008808082968492676531677555943959700061005944541361177681870916528788312882116847515645498301088803138383102491530533009512349262751658502039893578745155137897876038214599637172360962849383363176254649032335755984218190522617688696406448299941817804372337344538381496201430246732843960673058530589462782380947526017351055595633763008793119018761179041634760479906147505809703580603450595699604727307118168376401289261298784646267372390770554810122285110825310393658585489243794003926258182285714793445993990545060506459306353019017423100316291454125044730916873412343068038114200155009530245379980132503979744167406763553616089219502104501765209679932934391408875102500130150826568105776082339994449257346252089673321202873187699793294010098095924069171939020374819974287975541812877527244272662158874775073290087305228842105710791365754483558645095378233928236231937558650531460224371558188601127490438888821174246926421460904832120665311467750568009365577765681130379634013880994863356286038658355978150513966068175107048480237996374124932141380848814010487751146674502622745154052779329901557208021097436598632238266555170947141062711441642088185773151410252085815059811926308664513598163742559688106505201826435338680507878109816901711272774343262735744491683425123041527148085027783267647974901241511553141330032015190974261841501925373554507231355150672561134613802591529036126492673049967723921625819549538820341501540207056126315417854893234629929121416332189410260855638262930747072213159431692292626450653941696018294892531388148462813838998241513936680729854857144601764601111868858041746899569958265514296471911857200235651759667420580290985901395708564706256361619187556952807086045889379919565033283876546006455254176066245574306271443785331152450551111679627013551601332469998461514375564634232016004219262885858182885802461455320411205494628106768084815609296653404712548252062556627714445784279991199704204472711869646116959677861536279635967078569971764643217904090649064843361080602899017171870793231975292836534797877662743388999960007192622223311864338687175460699417947785483408007994002121562351576376203853099007842666867587916040077973919436660307590424874361907676207791009075102100559664444444726726251814888850622698888389628762583298022798443212566677150534750347801621359168512794626204912359710738036614690562540501117531653471817257212358611769062352810981635167774860566752429756905258058171655821527395325403529680933296338544770992718938826470909134199992032238279876524674255367853663211300010635511395581963773347383567722250912099214800220460861426714772564110159152009944792076359762202884698546721258890927599213495642965054467881167439413454400499282098862966828560135021138634595716175320066997041380314049242944223248774532196253329332484948524269546043760463715191031840553991245903100801210696103914764916241704704188204629128596741526046076104589391553108344645126139786640374504032529660475465763067328632943310287541918816037679480267512414426385413066512396690907928045269774996926984813955512401056510168467682446711215665922296923442505432947008828137810387818509181811556862120744318578676542742224375806064213030184890336835044175436008750937267290418312617453749688123379166516101196135958172378102499315943870361660373035573534344225316020653956732572855508147132763932511975112862562421558331300828801812068466322546030834098702963661229922860074761944223528442481558883925503816380416881239001306798703996026968960702511610538113177488154960146617640171300010514071630881323846264036408581135984863998922482590073570431724118793703245257662137673542269866969751418672564723387888225190709883457470089548820252027994614883959618672431662605152254663671147015692679893880049660613665631197062990300843435971976218965468450338610992572534559624924674583417204757419376500132640978746049767342037490182766815897886821511210665363095206342132079957064068364765376971540397629480697201057669730788589756869418206402305135943543340173650433640020363944310831596441030442214822153564811750893127315041464287417394817019089341998388801862048803496520750291071130936039174443349218226639190645704970109724005998038240984467667856707340324024861364582406393128681978533602976564961451330240625795190117568195786611055517091759403191506423494879438365975337769374445360088887830979115388445161376931756626711914319447068326050732519629070765090279107031221773643040008669075266440056412985423775406000242848459492719939384001125171579882695723625407512473371549369999466085352597648432004241265834697671108100389201707770351891526527653289656155509642822847840962620222617830944336862382035389112947716320345776646254814838192056562173774295250049104078386023575495482444584587496868559476509177790270682394513141614246620944666121600899242866020462415260942514448126142230634303863610603054211116844033406232359558486601091880180586473079818055362278154431068074350496496396813897889519104528542474383031581004098984079494571045994476455653257806927401120050863572759664424499840614208839815398684114708676314527652782053733504281436148597975479940343007770009439257455590471651744702353372747309691220698325792604829928448232948898065661281880903652182229102773839790765343076761627665023380701411883923412978162464922639349685056842045704711291665344342393799797474837631527291818220890162073013025784501383186367944676044631329232620646688613202010528516692256455563588159252833052668196537304332085780392835691125498754035925176638639783830728779301153410070772117529049385728113049381522869302058783780800059941019877656541735628297749475454964872293523023474228014045823011859581085050729785565718789772778751743886811237859367601754718220080503205257568025530479408509005039182700330687234771390583880814133767117358524900093329174833506538451484884179639257629635633715366122874002621410049956364085925951773610194006891381255024032568378431076430599122594640765124168583796942267459588325230387782066617065090794836212961578709172449836886406806489542431658779111553042608472606312083245828193818854796973579249745420898459553378662090001679416921290640825440501824180663706166514103069059119262988751911431630094999138980594309426887715662856786142876837962386702065994832224664915906278621337894768125468307037906317178357267153459001944013171814685683677096739423299648523578506488647763281341435049085889182024217414253215311294708954970412706638532939212063766206357068111478128504691499133450331028029826091761203717891394375761819397539949292664262647798364509034218796666725845484932797758641412005250736951885256866087369071229449703216307442395804625321183804046321077019008668115016079237425701468399366032403538130937372610577770764084977084103182606038241656523722489362002697819518018327811240104787575879248911410373231969735272902127389004613749846692196019861878214443239021849263632324661083165604020231702271369306055551956227092045035534384970736760701021176652571144153075084748200926528770163952749863636149071062521921339134189925163928961043940702502590732859406495464756829377866528505493375948230018399561391796141217405929126142161851121757855176778616176686341564176779972806429248373449141287697265126080249675040968493980206896524822309141329809958679362904840182338521290374845558624991060937322249596258711916414362984070677508906094275914516710862204771496839073264142326185954793546905324227559914852398203390182711933195847702911035992350822410610411460632769130346557746523951327317141913831717767931107400461458794201712675766484195857872626109298091065535256686701128732752233918045005809968009577241489250403553126948650649172695235332964027261505095085445173956588714039151681749574120494754638085510242505591803062751230518190948111806422746555297802635619521704005973925652597318757618873909261701643438279606173874397000236655112124444701374715549405395882378379538738652290280069190069722604175950299682562855103333447850029324352122302712076267555312139030837521006156294062085336692675098425084465589494219152502079617245793066891501789419078369726399174960598453720633420265603575852438975956939417929032765613315064782862278645858242111348821133740910473322320132700340236855642643079854514455123901104978279397452816322657832520105875368092362434208441394379924443151791820309045191089519797795334570831109377118732718294108122130564980269168522190949101066175976373114644322868631177935341720086560491998509776829249881487697430518956470410782977758124499628846022443811761753719509581567135103026328813674120187058449963774679702438908582992870769850346306555259497345756109586305123471814376634071622107704293302326815871126777691108266833387615275966013831035231615041302909291885338808566123792940333307714200621352354735791813566506035651484147671447204477886796277368989700157786072060431801837390610151343914779815757126911607071085387367179041470219348894834001900189862630823623878647115159354025669473895151640931751690352626961282315879066671131175855383996134569338627045885140658351303500633680709588644939585265593202764332477770969170862398080609728252260361209261000415082308031137631432260858864367587812285542571765724842626599283812426054257159456915887380302260687424512931424392271305300771260601388406745914593810463506591269537604520792298795634565556794562033687571046041750175664288846357098110456070823433837170407653468665891211660128011998671823605177117478752183205241895685297830730046845890661635313937059336615558314438262625896978311177731625897405608801380764037764467843903427828078220353016261988685571032581487219041612102640163066283313629535223365411341652896307880474000282384126784643002929568728734560585132188214822760364792327506843212333378771532930064076463510350903244659110374227124734821550228616232630022602025047996366051402683970235532575945519602314363238649715453661750554854556516864489869824131947860081176796284441167545947444939826577692579522064082996549483114669910268176799723984184053047679031543418030415633110290470661747232102248164121826124512294017240034735740561582735475021407328935839475460520834968594242081036132531691036445340630481093441774481172579305428230330579250111756091079730268322595761157332657506920284575052491065811808266851081295301977307089414314838347861375886472976228916610264121260885881261880456585480790485549457707886431765906246369719350130068932263398082889859027662868614974630841020591367815412945861326622180364221304527352523888256624275821503449757253887992315027733831408576562335597794808557608171195717761546855911676157273670627077904081138318588934694671613363411591805867861069624465723026771966253283223653959547525084662661031031829803342745360814304203546400653305760807520880476391296143928349882159292699614406145581513054326043568642498752860300851762895460270100330610382919204838135077326707154383248369941175725336152625265807085398631477384896269794183577835181198160607210649951624015220980464739045873856578521246452500091407370953619633027910315204163044463651826484611415027882193956847920359404826621722316783605813063042967694864487364122227635960447590045476368653418422029019049333568760995830155963639264702922583323082173264635425333683519465415697343224217283799263166025946829593659427859249876471159622069727497977395632068987422210335045297386108804195517840033271690136801574982014252672570050162715680728092122523103138833105891976112974114065485559409554383997419172785744019885498841746836521346613279598038166792625520623683847787035957327549845236360130518383065302414916924604386505808249444826335978944116342227982757856360537281746820740509467614136579378626731073834810913419720226883767630161600987563359258446592328527994142938752879076888894133352705804273810327993166957388254501792152655462181042359507726247984283493171705399159195893870815972383205648799045894492434093368127557572731750389577169480136314294678664215447529562679882990920632840570767265597580911865499553826788294286489273693333270031440879906723646396482598349824110863768701821070163749546574835047331460456514200925807561125397564176849660586114217849106081131028424865893023385804984570896061907927036667800184492789691650180561652480037520611739654743376843197718256063553217969370784608056808414133106784966431258368842786505248219525343951697832534125229215771011917594127597471943569897217895677760137510885339348744982982543966042569745949596093443709214579560807450503247131757232366599680735534107613185551201447006147517936438816946869193353284973251222733968772215278121117239327939073671198686265455655154752607687671715231491108332544572490149155174497902971358573853087511364722658611151667396484165575358424910844789575523403277145452720645452793163992287170711245957487717563996507465566696269328621795407478700100933952180908171250545633938015932633005274567482862348486138129969348429016778843493279483915264553532586599767232074993920938620609359999761872206857296619777575243878371676199303737590176850754950027810892012239138042013066134092357909025827243213003369480582014869345153448614440924393577685571726583294568774193661490786225035389569071147001953759544830037342147923996588089940562206204604656877206094174937162998450481655980316898273178551085757132175733944972177775134960627131324782329331119915903703253748729520833714104657835654524926655022527473926226193226120626934398177637251284094338239886348110221744520393659042450776303876628647802691852707206987495350798930039846432541757558943443831927671869381328260336959258276904892255195311159678587588794184459665629448214104194515816693709422660786150578353054986584456820159354360446949857310722198857918599467641291513504350857780300685453731324105419077510969738060080300867546576909776735414070775122702548726000004362882841976522556858158441080783670076534025432160480350037522795600435887613597588256365918275299781577909849848133331110487028397566970394626325132815283036278254835338245015679533476457070630324463566684992584167744127224485002287386461033038253958735109770609809096632445294817502902176930574907971241596106525958491540532095225033047025963118875016815951077969484692550815862369466926120288755937991770969810810912803224261248614727070260517667595465129185753288488096696675804004014995724943498193479737734554900940718178137219930299295104517022574479070184214186194556271639872095959364424132065596301436104947504787416044142365295275080214890205962307409914496371174388438018950307336388779362056698987212854571887471492197243072165970259572630824904205066532033986935214357761472602391364114054393324794253191051316314448567933778318959244001066736160679042302727845441132509386521680468042193821283731894520428652581409180121392722778774511258852151379814592663166328694710098243425569590335442089698006047676720868605406914215946063561984718311810599811130464264703191604322023681508035505067183979578126905642149760813160866477681072125450138318832145178586273060430376886949638804733406877940862273726789010925196558044350700510508051072479913172132950423968146113278154491753876820884583250452236555155592000384331036076174973793886483149685554652560342358850982853324217902896496101879362964987840109217875785622618960872869244627503642584057706037550172341283256877334408545456064269575901086338971580543103265128206425604213757891714165506074163379036907053504586852364672822780965322024827806034787243475430554640475205507935122530005641605679050044108037602686755829633913938456173432945665500038449875790968846825459115027430732792339095440065433015475411312913218145289886122643059675080428631186722110104937079999498368577710743691211820932587005627666072297260666023217850426582036565142895349379826378545564557845988665280075252696455493774895758888066009838520891682334632361946901553651767133025164667601325073971360809177015958489506237297974959523858796662011654956317214251624473524547012478029370794066588142315413026898599708932580368786450319344331961704176091319074528209608030532751571026799849279193143719949751101177395832437310645772986918750174878652354494084995045588481879196717154368758685789419125877638263164013761862084813408987289714614195569774730084119580590498843902286426939396490414426575697062635232864036345567052971662947644567452871926348356473312856182251893400443597877135724768321546934376180808786993895748342141991780090589701065903911657073567461939250469473464318867836521702406374736242569781001438042786889034142772841713192053677138647393239895724671395428038967079823205081902704636100137830345132443140392667460985570380598857077771474342362993330376360781868503861524916616677621093944832133393173877330233205638477960670734197893874512760898151969692914559247247380640289691581847509536425024562098993369814796360293832326243821530851643194519499098285216405071967244081287081243359688062777730267962755377719212471948977389507869131969121835716230873620212473488739283706460406054134372526125361620257808016212952966433299300773206300544723557676529248021482434917214540174572477350716845533576141129850634265731401605105475657739800002021444537303040610018142677017414147286996830154772200679453812039783304203272097855798595300678346602248059684241427138796020724082726869336830728948765159115970406912103420005707782346379105188603104003792538442137267265659533504047857475225271478675836173213503839341842361868243061687327139828132809932916021953485115550765088083777196436573507750504403776028889749794484838757675106622200552947865465888705409789992880857355243551683023319020356264372779503689356075664824803325867890838507973127663935610081854411940287286525680909146557684380139230181446452415379561905235563932859550102120012205060452092061853630245231014651963022640108368741853087189437565634116671482610814665175426742492788748577620849211610790280044942894314419794173980222174605480069337762065197887847682097851989332014378933149315624534912789558672326782972131860648220292251174314774151953137365315215915398608690245730594960049571429181942565367441103750209555428581541728554755242204244449182816804284747441150958013229386280720911454340166972773767252554619421445640763957913020263418867496124188174101761280797594706551065568256426165246295039529763553488296008378629885724004190609775425842704955929008871153925945441566802520356925915178275786762047262726964024963106899455595561301595624239015886384415688549192600588542542257309956234336358948513114736043764973728850972054808183330445652722002179398553780292321894161108678156511170597040454283591358512387240978214010937703234513812364965483560005164459190120523344324943293715788633868633259097231968027961056842716621537417223113995234392390119086335335512196397145808946030851495134527109068048010247646566603053275352451130185587234343431172334311518483150934632233349753691356472628428496254327370415458922898690710139711445649680613848799571038958109409963743635180029284985571707690800340702796730223427725087739997079780331895391269335554735850708772083742806795915662221117270844402941643903451572300291650666536224698727408794271362416593865814941131635021402395071170428907353495438048539707851035231690665239119954672184266798172906698403743475652521850112500316291042796667830699387894435173054453929957587727694335129976832677701291374116028743331232330150432993660888084818922139989528972820905366343772067225873204048599849137876073639686030525226213291937514686068451783757988736049466160527759893887739294435606249410224853931655604451106310764541860315502235378404048075268494775584214011667468729145655767217030845372917185492457777699788683169008235960423064499443348086171753076572799614328822351375778459923279709669457604660056057025265164880083909708745945618776144307428132963107230730284422001275694290164227439735445118685666275702274541990837783527371018079823918781580675691324742150333000436678555670804903535538464477675372438761315494216064527219892316976608340040372850271817447309866571735522329226851734609196159783705902174956749526577064467712787411096441240928294676108841336116700742745427020882275468048916562344444295268462374884910535496281327949052963812610924202430930696200481574120113037593293122477374664186630698012634502605492200293988254114998678858575026333268806791199476264974211003100321440074211413415381989729059336796884520594775842445777463905232600157883760401658293429094716888934331643020890718200069968215264259024583917687069055775883741617068321945312972987495831386521885548022424954321865248791307427985509499668446821865903627257923572835877903787230243487314373104310860029873452332418326614003240537430907259802270675967171070254181982869466068242562424739189440809123212633567363740011775412553805550819051056176673644110193971201997669985309828190801215707403852447160519627648044249110906452988521924982589318637245211536154876944700216974557294590215077907023931694387898579285470547478233492777223153125818740920802732654791455046389272809559353887465572882186512452608929533640335147935204645932871948201866109893148074685071730678557972838152972793491910205976092978374172298795175024945958585582944043592714885461996447998596023421215144416968356482718874608377247592930676906800298536053788897237652556451782894211894976183127611727438732613008216596128742537459080044761851216161923515175337099733897146384094011141599823553185910617699649125841793780125985967262873037897181772725448015486955577305597595693631075947700368343128105016530557370716033929936052162573544914553768057120462463883193269795487280482101782063404274641895481815575170885027367070634884676818125576984783917332105597259885808047184073882100276756611075719133280766516779576868173009687261300821607097573882273827741883623815066612952119427941661148847297540595763726505707933047936982751630426068184870346542499668403453870472344266972454634959549018647562130853140534712294649646035817708463530171058633158110649968136374457305520479680260370537253984731073367629394387592365619718937798753145867227886139614165076956380949180778077371222557716313578252405564872721110065287248803951167023807428985787994770010599229199936462616390242720533846868070090355765417982714326869410862196702125572790702916393539784720434974083234133112807983998518377247032359668863318601487205217848228046836198865843725116268054141106423582638031702568551712585764434020083856888558286098763647056386536577703616108609296740155647594036097606884735156563863690845853734593775806379931364111632895593644826989131834740524427436947455984298548943998583829061308871084142984248399719078897686238828640435880514402067477856523240439521690195676232714494070186598058407438485229496887090453955586503081285238597652525025795966435929112898533776290342082268822354143348162874515288976966722173160653516692628963804706894802080271774552018645326971785531836929114947622376685946598646989746785493718595112911181519190378259720801048236847640748431958540212148063070064369846873273588533771123091047848649437902543749105914943885303267323884214929372387071144161605447798817291421140047404910462956248756407029155842112093585539706575880352146920870685148453221552221525711882048546924189428952131235502737801351564237654554694025749344839204994866714376031778515734474697994839807170061021828832245159667843800287045552577973146132919747884669701368794422587772113877178426048932267940044210300187997633406775744239946649219951669509412621275681266646081756434466564637204516778841581165759916721123328434919194838663249192374123891607895054183347624392431900319516494523715732203908492791855545191600361785852522787525978649070360176606796883714152181013098456103759212709712062624399765280506611603308609576680029887645842806308237372689503792904945439736576791399362999297485597203909205741607070789708752327937164155257736892392072162578841029676075185824809886203084249894317954681948376938419859205795513234529944207489455511749032162531448378077101805377369460583933670802197718841182021215234231369199121195385282244564843089286536449755601256045658898563266824446694140131594768305152897400715507998434086779383665775481252778048313793561326913202597484325880814190129449596505365961204839363923225473132431583360173436219684437174447859218099387178297439732834376321314129278882926144893686075548225817509659294445512199514440008866418600113527889772313723018608223806651737167617872073129555339944278288591097676244218800051104843172444226116511012973695121894092305763413892133835781946097028507663174173540962055620389717890915849450253670843602770906784372845921995694187362462956538298218448026116253647867283685171662373081169616821189652624025713225906572463985173724361936586540616939881542522430494243191619405669607587307611428371714066660819929700243524503319796629140473400307195917392046377158112689634890824291469764328304906816422773709307648718934695110993858532895656796086635792971169932770601143346233963673494483906286281047638334150370037839273720184373214411161972494626557050828357453257190092573248293796447895039830736047603420637467028133482382228337621930221745060742130933230603439126384905808709894236310864242855391519980757234000059413701873091079890491707033453015512083563819854902457742147920543055569755726723020573236652688259891493847776150956067138578287693134357552831746570144069530519614811906027907332626170253537983400771193348655225272841656306550082817531274851164082798042630420467690825599131883691926671791435093120761700398073116354372785371919936635999197019084906481087116144423718101503404328492818129301637052438605290897906585959009092123206820111359235333060723370289042764362832011507837408752161947865616804138527316594627912393837398395615438784201538508292330365072175205311650520010485956338708412190393837937516932543659915721785498755282930994103420388668819688383328673856065106653425399168892341176115604353960099467351572700749602356472271374440505320536930546985138119693872206685440606314462862223510249888100324825082871107127543242441570128647068859234303906493609354408072747452737607898344008784055766063209760726585968708217011792229132246653871279962351155914185881695236589166329199880186417283206448299011288621478951868489111802327200593256071463523629411885680804977050295130280962150043218695976635484137886285380471517113744184374838409670862229439887263898804719169840228431898598428778735278805773176088283836811455715417217797514691149683866581514955381187698184898351868750285373968485915130155610504253997603230259660804499456987852784566679084126567939267426341721911945182551382456047134743943932106393046927034158255425724934234499690882733331031547499814884724893116954744441911296793305791537200448565324151832949709245467457814071355583271231611844806749210445079498261535725643627650598775054285665889008105276065891486897794463650890077985933034384100576971419646160287542507794244389263447758018251228609893363954748312434975719412057400532899728045252670974246790157824045500651443348578508907824548131202492181177377876570232675570495710771959919579151975439787929975285447654141744530616554200566807584464843550206498480039198398821412766804964048253300483889423290149425303043450366448183302288516221069187927412572445300681215521241205487839067178220127156331804057789596829362101046510213104545452309710501731556917237487673599941435533908260702730469588282171807116797293883380765629495503129411191313410530083736503048149627212608745221700190442353160465372621015438676997845521356560608966659136172567491323470400114217122408918423730164344126839160597734502953198701562404709162521751479234938109725666218349115791253796475539210069709115760694125105057275117778766484399307599092531572865614650398293132509027322606672027326909860147671337257695568536897550029063414435059999701481660786815195319988519240312928469046268577199131299025463102034329883906481505756376742795638118126209292245300959370250372196870381139604713548110703632562266944027393122777967371159538376362394011958639701045279503638978423658412664301062010686029011919509029753377318998667899213891419060890911706083913507258017530614669228940306577707916519635719427319302691786753855188109890104572831681078848639808266194906859588614204848889478183116147449663979673864665650498178026450396341701638440697807591122450157206660858345564033331928531124108448334995425012254301375977081348253025433846588347068234773290909064438866918542718784035880828422058470093121159281826692578844187959234109466938041574775584048963090012026074099570882378798997836089417036568893493680348272888682489279968076659764508031366287007111969088376786750296080302142847499023505443547513477187707654125850788600953022949216750447762040197260161854044990448726120219220379489199431772095823238741079213182882385736422993412104982114461261046033276971166961537576647042432002589826409144359684668923740054144467549699384171998181564421939567628101806879013294945738324466822548687304267005055392679528264296442108804584220929350286889421530973032384841727189587549478606258122516937280029297069250432948219709692760972353146274860651457363192921553918856981660655029079198610966881072689598802606486118627816977277684960533182325125664744907559501782229697111351000601363604287141703268027232250516245290522085176400214518411904228886340227030232804826253462102385729737354998759166786307883189058432215425608326459097450846179816861562141324926098077869463369980286286792621351808885659592661051571508067881101453961459910939828743814138211007876464867279204864494329284018329925755258868150173399670399281593558913618190446204771235839215542400442770573211085599859303465799944674563205417898116893319353337605233121870754519167669398129629308522827113163018522292131617004251305913113276003539110500338656804326248744916187434772315650981539734525739054026264288008306717415060062826093770411699116171237200241723371933466565492443576269351434507052948665898440532217662669943465572709536111449551488144298197951781862451320880925658828494857323396239510009746759674218977831972706043355522001296985978356591125573483751585962040933272803377025863101240252863324132026870901806167342397287266055986124522689737992550043530394023064860146636429115489297319380555978534009010229861981033501920252326866640598562751375354640602064361522256798198916587478112907218864101052754224162912052367073193586458972665863706252307390100364466119519314692130107229883536731752065057111021056004123568998145229861622963106619658789365300631973346070345424203952093931638071541563864484334376804983109479793819406326242102935064908571322474669447405721066672356341366772974868277668371797215788378681530195275955670095046772715941143559783969674661862661558918138890166975015184662352773469876057324437032149109519447868181723811720375292986405224340958021011195245333144381012547620032805610444716432038576566980356358021128673286621914551706369384805341568760417422453106335481964783746459352461312986320526287649417960956584744792102291416241176018607123728638946508780096392312290864206751168496306353421753172682224774712522204092791259570978605471720712678612823330459790782138059646397610117855602293516681550408783527112140583496791930531088248384194794340168700153577542705673594282938854408902497340410125165639646093758127081700695567233042927861241231299037586072870967174044822512978630075615662676883014063228711691111059921307208492748148452368186182080201281843332312526250023756080866248497863152001268548508670087834897977946675838498740921605992735225139142487635277053324392672611101935899299274430320638039775565427503391424055178355896277586747159729175468378709605210473483065235291975477112387208672626081842588832712279387211236783647265982387337491927011041530425501472040078800746330779040414377120870826546983692362328968888818972655932937924151669419875993708768489377544747926214454607567879222599674189474609180031537934942362293704354416718218186819912248457125703830254953280381988059740215010150745438439586261697905635973450147331166629434412939479406280757640043475545560248366198378791028483391297100894399121834462105800240623084102549527860795274287317394459388333644038398458166931165704113914626397707604592795443406852296438381521499332671793056618518221953748348178918769979411542227874345848614749322646862511072099454223750262539743902915673777356586800309861666437453195212448357811195749035853763959450573832746747668890083892100423629992213419482407170925947272422481160396735647205771208538630125992131758130346228664140233861297948011797799958671206254379896169398992040402642712451287388895641525043461435852218527268631284264996476800299041668873266941985447174473420287935441496051441097867704810070193652543132703307740657815552960028432584885003350552022824187651590501841866547105285304827680837412083294317877316490167095518671045777966665934736215248235854162105207453643250954386105159005031164719255961178283960350175523266593925911066476943029816859118936396694492639555979511501270865493941781157473371583221917484700161433118870673832073559632730830117137126730225942889863101557569384205357413894708699995518777127543091890346156667981088394185622304946026629498566029739360760827205004471366232348767074626446007693835203689059847345507196522345626540396464120592882591080634027819020972561355707086251780295686903490756794555958686397495967787162854363157790427942793578621025335577565548809607855279410002708128109585946187365160407847365002313206236340507928629390378277074138843884316896667898295223763288764116789238309614530514537036980194394496405825031756337198271395442616031308001164391528988170918145956016012150046898454557455973382141667023234603265913091752259714125891385410202003750515647884724198467903817898456679827878421891500017115860277016930895688317286549512951115901520357186101223265532370471034279556421059225733416385907284413800780503400155964010784720681282438316673781132399993361027511556816410603304232624366279556576225760985370018505670733539633101159657670657622992885632725238794457766190421293333352226682773898887081581365312856623971523418774800157644706806816045626130545238037459375211226364528974896152054600006941888422649117559797831550284053053889400472483622859499738820418600537190446244789425002902209009890325033919052109735820811298689224581735887356860621274127708723464666414298342498630573924319353790454971140808415506704157679730130906840870422981302079438592487263823125113958354936414162904246404129825458366388582610732599931454680656771535668716148610495804789705943632785227304052842647121846236633822334631725336929474048189269073759477076417741895697587022502883402630042689625001212331134536966646135618644404735011799057218848375363756236809075930551974794956999081657256879155264380901765584752939857834953239440972788595223971810599272570043936064689206075144613450562549801540351036281765421147498945017855882726012791370512861693835205367063628266042341995993425744125507812373593508096699891248413597369980039680716249190197083341320070157955286282793147989782873803166632777314137853271976903460504902882845535968567509264302135731549282285076437246859648992942415476878176198724335382553220566719388546763248596214035181447222384841769250553855008246168016354276159875453432694274962654464311988049609804671983405278541940044457961739062995791950688086592742067236013898832924130983485370811841877212566934407596272233871642245449669234224210549297081209285898164176687828538213047836501435462778715560368226045276205620708969754491743345496424266401688087481692818800116532198022172262893442775910521392937755614355893988105935541331769529811123906059460431576748817739439408510578104391122475790175328507366516080479825806034227083039695223649906312744273835117908834992591157534318746253149805586734872714953439493265044384349412111121186032645410138579501941303428238026700413501535173004521336376976549158529141878440675238963618969507020405645619812908768580753393661230678951382094288032006001048534302266840929816535559176359052665915581083552222109624842126494023270993604386462472364545734102900204080400983987832358532122254235145273796771920239079276708596903075117239278399153308493574541474277146778724983971717751140863298188555658316405434418017068124396242563225812329598916743392695467738315004854941492812478504400211570832495156619289480597267335316800459534499080596066518969664661541776421643060174358318427574705321071154831529846564506418190637078988844236807444919828452883628792366623524067347666538944190179116225071895377341608997165052956570506059650355481994549945088018309178878742341722689885615726121721899173371844974557497564403653688360555615635238676073300342349450833986206432629254875844883379955935492536570168189325732011995071658894779488646973557867452950220967591289193834951537925577083625355130695134084668051482031680109341448278830127510073424609881351157725132902686990594709719602392062745073238781452151281418755087834632627596636240514412561012667632447959536111171067786744527692450799705182981140502539655521353535060384583560868774202522753143071570645252255618381346831298242449007821997207670206686234749866381074593988224221298161822541124775532150720535290896256061225114784661445964449004450719908289905782869891320132329112762976452674484828887481927426652354932520853235534959936775922904787720751424371454637389840870231954857607405344841247400031899778303823596667285106608998629038983113195707615813436485101090868063711018618071128323911246784316173903612341664258801716575367508053437689989505115770254814597578800132531387943884685346836416117844429603087810369892385305845745820291054622024292607840277745681017820517010002929762732968614506597243124129985526330156650403501792665505878637874884228805130123365353343252961506611417394240818510873155535639016959745156208130435581038079747587777833019903761818263940273034926523708202899305348539716539733090443928953351597131835764058751382636472585019166333661795821465736570875134853117362957574503476102359078172063334434353757080631782726733688484404148519138156534961480043659321534971358019776919321116163772512579534653537967766036430035311774069350926751950896231591979944204303537581447945623829623592932605496170531424856322765547284689363051574705527678276605566168823776849883660505586836935719180225616636035996281784552784551151383854174094000092942637839262906690950738015193737799355077736093274382388728284765104245392208711622238164854243116976252213712856374599632815250972575929347427353424278774661409653388175071744519419053892164291561787807974760267930483173630333710321378565410300323122318398696745481020704450020672165508660397939058942006421684880062321144126586554090864624236019729271527120005089383786181888036662790623909416731993137146236270790577631691394958572409445514064961220790615165441899908922668835458989983310956658261482528279870697792855533078206635335169842222188332087257726502760540900610995397237056205147154356184635755339312178992505834583303947157003486672064044736624442817729860187780272985244259628832815615512078409952455416184148604058419053820723135763666900446211752352569142895411960868263017518844623788022294249080518956917157934689245712178214365157966568507936037580029730409983072892181104884544913091079049684000059631470079166293133524085718523725173783521522570600402472684300517709198849919956877722131147156821911877751752449092379885979875459017004095040335681429547588434980459289239689699633518899002309745425143991451608804467918948177127800024208956487928802529000595201432380008014241753644574620453102786144597520460747833583573173890001578705854173326086642864849429021472158869661349405811638036529930890746760303902587994763181830333876286268583958811080186619279034156757118613585524346112330442946151881355378285578382245760660119302457761520978968874158662917550996984638453865365537475613427625245334275061872743312498463365498707355553057955347094779980973544777723081215453861253985190612080275010188615196740354132654143462917667771337531073031575678062661451491421475712673533178282758745382388623913394205029852719587184427699404243615330273822084514166181477097332789349556634473127811132697021657923043485279835382766054968202156263027600635041090900333886505943878937006033957916115406146963572199956254864625222952958166072935992619084783981607093164581348206978560037697242897750450132536681830602193659219916344201127240927540461149678851097640568034542262410940710951799901315721239945759084596830898566610085018615047206179130417349335051912131266839680175653014156690875121232113627798128863214863192623424208540862132878352164991489108330191488984144386712804759769756600258487430633933587352569307516393851993603526003181935958043934390053938011461408149152423464777758345007864959174519052532647358308893113161865584215542932629597595220264608233547232555978062140031014030987625442529543132160319361088447866708165039115760778636624829424661026345858013579868061614539897474717633385345004880248027819375980684986739004259439831165293908161654246640193710194621179195653569933513768498939763785462998788857023506569240032603936760881937825531223439451326619209486790414576991092051401064601571301168801174165198051834370378228033276292923266698082296894321300113881671835319234240925734118523082364006502519533959490864241114279814024821872533272941262640232606823771401146916705300469532296371689305981589615294215417126610855990626334246884369000822725502950950037079083620878210548811084161031543527262427331147481528064551856932693283762937589860338359247358291871934280396831254874011118643326997578208244015446664626556757005576068102705988991518899741222904863052387679461038277287620723811375838415951673929926369903679517507341668698623490652973906986610873264776507302909056905415155570729933537443831154012095453471604298445630412707995130525922682912540901303447586549684481954250793063397422331023910842112486820446846408370782460204018044836909685340726804614839778850759130248993929465084208035787127298172326753247262503919248242513567157308127966737273518733501248259471345940308596638426071844136479205852266847968705399141110055388402723653631185270023877863585890784541127052364043715652245488730828544529045862202285489877235267198232673288340770707762977603622757521272817478419354988980105788985376570601127611821332021935649917339935553550392358352195022003335702656012862053512506727137812539659704814152111589650056875963140407494472603927432302078481995382603756334864183020355582422697757948462547556062306474716740047088006848943354134618709982531349822631395073999768601383156359009224794287571042594494998723148586365691119025972168072038735571503752828038784198988391848083081626437509650223243601797578972554141479873667698889100458336301334095435384851346406830332091738568206889465689934556293849483668271863226442160179297673341296537127514590934546634525940985866822422386248466666388543151408912142414348212341833603234343172361191815932727414357146983964636765240850569280191609124145417582788097344551836636599104151507487674248614472368326348220523540917142081108228915562949661579656277206265312783655760006418112773134237623720987009879717311104061232502234047301221189224062361040446301298606419338328357805154404132849210158178592921458422625498215893667539213773248653996450547151944176186175735014440020668946506175460854806927470757199653952236181488510808746464329736834298294247286991573085144065321358226948310329241985356886460662902244578695064140141101709789776216475974409941151857143260896673567251103473607970669264802675644412820661737237007434651848238257109278176395938369041892462070896796725495765369139875300920370977166476680740450922051389038609177584192355480853935259660012972479667350291666936198441136196740685806096793260519930584812266699068530574384671144145442760538262043657703705145507168260588012828687173435826601975126642331055172932847134596595209833630803366930051603783517179692939004490523522963977249276775660854461990366398573891854755508228686925162136104078760597680015533852523441196762131524597005058261198834139327878302463565234470452142786451229170885921114256031466731433675756687687844352717923076826153138019421099948854942556776353999808562166700673829019700623300889754865642989805950958980689175739296959309544098842406352691812933895083255797723488618044284477636736857607488229169055665152130618582724129583214762731804886149574375740022337348147484959001525696517895019080309157263951362148019729031868604442973867407378430304926739971149018606384527488688773241719207798421440224318769541565608006134330309472983601067639469902723991281712220702395445249760986578999239748672090516727617743303058196858217611019184091679486763017076474283319452810752766058083375886634399421110828329830303254009095067981396432349635060567516925439954225060590310715264972731978206998869250260306147288585404384887560300035074932632806225734342621495494342264671424984828555067423664902411352978643654432308513895084485007005512976276621333497855522901061389127777330299276845872306660142544184087034915573566757347716568361597803210245189597079878361796193996833699313549165807319006195721937555631770902605621804705055660314368791552442947804343847892172345388576555823095458567096233428575858079103753457705302727965635401532139308402177449773616359082304807915398807393820106660773035442708224056914004245680497625207018777456784273688782400107833041011193102992835540434862929498784707030076804735693531862734248673680170529857694936544178381497039225582036737864178683366528561298210176778248117320655853418887047836308947049247228676506474009144583431884885922076934956594633607154897599378545709344022497428794973151114515857884187183365474048029361096574949332373875593014835790276062324451430468196938062567070675220687942035915849843186915826852370362424118663693706307450207800249952597542658505374402160651706131411186448570367778662609677004655670068088195725272692901206556462618642886947823848020101755381631488527636259485425276145885743840340928002912552559992279500418726384594409848508944577427299389898107211639645517733039725643417967057418513220546134643556410149051025775669737855763676376857786064577753370979055526023659748224650587173630836646118717685925532761004252796412703622747838418298207789027228508353975932273155001447712782993266319292227504309741250603315369068610589732153657762030239065069925255580923048202482922769134630867901580453249279071381132496735760874806657159412634129592125688706059048261176678588965904400982398474402072313866866362407595663424100055147957519405937719755190659664603202953379001409437639790516844047783051221063915233291865803709046888159526499758224988857746613023354207464460989313185798576922589090350275761112268204129473796349733731767085961787904048745385919902608358553889123259476898570141150007093134890374073397179245792436488352742140767400845890871374214210971497542553407102231718191937473084972516993262744817071522467417700551561779965719828700987410069747184687480272464110655749828815706983739374147201220587172971566404173999408772551226828970699926672242942392582245997499144871515297223234364579984551179175642927746263955211347156217420895187963707633004263469700767204257156880415222324662296079023532155285847819975604597811226419079608600635535180603916775835213737288635389056352899106224952906721519709022148199491340550605867305112035123275044061558899359126665729051840275133795098631700477910553870601819638011532040376508671805879347560232515232523319533264749500143854129702928523025237499411724991451235942042801666739395925105361215855693287896927035929181363214893100362418788450893533320067530893583899123894035925592084586909720899791515778740483484802564680937800264962205585114059826082104333774702045809933353868533450098107717678253388463790312231511736426345873237539591992160703040005594301028217471010310094515084471941795419957051664529318253401938776481030572443582790911219643789267494668980519471489951401555884292694200060868057184916104593778598138716348207614311240917381670115388490210555272850922750699867060428018661329412322833756051468174700829584053553487451189123810643727597710909817493909903123299824665430362302052979724297143421751416544362839879247502073612113174090415326110576151643392691543655752266858859334196174136796402589710559246805612080519189452274222575088237610474277499139118019620710913122626766478857504640382151177760704630731568105456860392641672896863249866041429943968659112951431574826735280244998974319812520017213474965947595101844594999227630090584130623848698908933762170142766911380561802015605103579241159090926604045111780679654115196391644028092358205986835532365356402134111669908005184316026741077677801069444062034374423592439790727864717363132461193120517928380374830089945632973678789551985152985436768426161289028178316738534079815373229782525164007046267796612496910725359622029821901983401404422504923373961911714984928705105569001469555684721646795215605985723610574579222599708664948124578952361719219272199680391299531069218255482036476906560342252250472845443594293105133396900164487517189682625391863630000213054967730976318152929340012940912639191882399314369818915495990623071877196470818628230243154417025069984214845678618323559307931011218453865143440418101639706031710483796508064068513900032217551978806992301594703335348573256447287169336392744759931403832760764326360160910059936088469111720244531076836562235390612322692724623617346324912122574278964071706920499181570424489053488689187793718625973919221831303795091444949768027102568673534321380131159795172959747409048143483991118487053355296784106631598371104673357036535974584968149478751562541707307488023911214671370519020593552304790063250093019807313906412273419475091616645390666461565993862806627132026560838565376960120385530594284112580122545322265568313420320570566752766723982800598779531983382845078404434808476820767775288680940588921020867604124896034151111265833632427235017168599866680564751184188488421873976370921524569890150095011690461158335943397430996771008597457135886530226217534361470166486715561853412285589053258134182678127687694933950735901904154965504343131423391664448231114745697578445765709168444282294046638434360532682370050550867475987183717773651362449457836234571175549051316355747440833142478792533746872253687113797401227209099666431543572704207239505666942184779534796945643698620745197309409932058568160183992203167302125511926392782309124541715071295363511411517993771081786812082040532052455638974926783974216964571982014423680711189945570181786926544004084563503581904299886258470992857673357885346964631891040010010108366424665213620089227543212093471330464793098291331603896534511025467163292767811792630277251745716523404528117938083698311740020582842674374136560711091275186804500706537791360528920810173984861751448068215963270493888017279825451402337993344629444587046272288521039708553096318745442605504245181038683153050473765008115594058141719281635747262380043417427168991045175136097478992815075722723053435233808718490690635712458166953470929062429272168945736677915441501790790685745099275148734778751663659216278885708240958723798165069612588815479701543818724557982839801567080798580774486370044382365897432509963046452481356843210257229171689106060544055922499664413607658728740449378247851792851161093138172951591581020368567023261534413591907138971707309532662674504085443902675978698115099031011966188136984062041684057660032750069850864134249775573339708057740336987041049867565990180570348502402873133077250339962301893951441949394072782195695103664049695899569584081991152911751144195542264224952680122212627487030419090036372726184577714535883214925545011563851799865897830242991444146465932668846411976993727103266726217757353409237759137806911864640839061532584131369642270976554879262193714646115579718583298758815031275738413300736836323465358080386572562129119921253187268259720834854670529798458440746269697620760925974853998975941526164891627636222826305923193102870337545412222358271058367855495669066585318389576009565072028334278755929661557938033607138305090044166591509055355065997211338147123491384945103713215826395188268880984385672573967398708295894133584402834581167638980668494165261738988924470972042097774707123434092615439094278918559181073317537442642776593780432722539680467508081302011160908025071273102490245167955955167049776403292034496105935915368898562565870016233591292159545581586866145575319792214175512661694360821200645754671770085700215467378867998521642374520822154760207757681974327277943984461343943485388436436956498136819077063959236979301468828459732666460222396052550049552142973485089309231838442035583675022887097555665468535951468362381562770733801055391188729101117595135797478756090340543016100316592595109117892100667063529481227385836121718105872027911162390690471113547154337576549102264514713256635770174646935495970652040024341041046552276629087007965578760877645408140214935043193515498909982344383036929927642009494679531418906526708157525710668159410655051843567220758805437398847119166580222978254585010140227940438071527296720488304882351139141361806075948258623612305414998254093511395885211617687075558747029337485916329615972091765975074631475252492835298340074534641892144635706865120844343433765988620092409203184123326682633711341551672011917785687516433608197531677814948665171032177476557667079938094590769049918422545473785353389247961086009000269865085802503627672996664761894979555765261378907626416528780814982626969568688623296638061552043229234288864539830624400084404113913055110426728933051241833809854368442655012423126152650103018831944362604750439287950895059991780070170250667066217144345010670042083387069388186557662260246778467098031177413020904087085806729291973154071541796711765026494764532232184631070420212800907737345096919657597034992446776724306832871454234613063174934306283586976319472726780558009270265715285393541634328578335173240463408469480632548932863925511289355426810113143581980992246390631723329718764506312645315300993225940588344602762410065488163539603349256902029288698085987512356665445763178769882266685595463668936212055284572380153092911921548264516054274175282242206444277224951505896841099663898109446367475534244650924763360585467361533707332992604637437854329776146779268395691983639205695773361762985565256257373764699968560669782712614744494377424248465035821935808050557733998437041546499363650719488936099689877732706925775595775476156634788996286169073077657529120348654786968723658114430525294622117876838458644292559554497944300809814253684062531784316567870635607513970921740043344173927654272869372781407651763795566546554093244534094113112416254275233888605773802092356689251596765654299992310078958304102940976230472499190069798134708047001916876771087973865038151825959019664083017636887471496402171585215522496393875176477551593164965338889870872139037385057400668601166986812886876214405279208869018411054700498670923469919825802638847164322206124989832661590856512260635038488868918828147907457778511985135828989342260959765520740279316590876721070395748287782124310131188333377345975397435664488223913066098399914951130348332960124263122061101171791165204407810110160993555760130776598400128578876942626435924362052526862672385977459431636967009302683070977024671457988522205038653137500875141744793395232239963917019527236408263484079091117839827674163424621828500351176086705198452039761389684042340089311344915023005515165346121660825214944391158124098974451901198201673851482425244140124370970443620924694299579325646284141118525268393261420002454912220318860073166447387643834595403191857500636097818595231721917497664676253752520161637486487354073285585037312639745558464175401599921207310820792136257380104738117541738647382456429034235951450253782825640511987497037880590694358711677460498026352933903019743491170046101741821030228626587333521957915776130915485009030868322161530206344785463130239768861154524945793467384966481729946815895265403638469663440862468323220816122427463458952742099450860333542558538153630306121290042152575703102667865893389397505863480706496286731718593906001517122128619543207083469360341732547712939975929058756687332897360095892639011545270254292106774713598016741612504455830134627898000682797956372677971256632257521422114975816682509938519191103265252216629685922029235836561940723522843777249024657637923339321087186081660188505351248418187883865329973580677518093627644191031772145481228202166359721253037221070869825782608863874354424560920217116450082207791074903814769527781583771070400303732594207650163255607328282225728881670726700719490616375350159720426903987902531063455428109768760593199694840632295642259640912094931901622194530323823541596843330199636052157300847544670861763444418824340982525974392099154647699652547433977834992200674583237588786629936228311712839434061866889515088242649052712278310493829794180454171159456556515901996239627475802724753577468302436251214888277694114289751784303621054336078465131863246208143058799695882346626600543760525875583571149697211466688180604674619973085558148099519703354318683851214966905480358920460686832401246441894999900532378431983196205651965114329728183241285028741091897148672975388498674980618912423510274580578592798998063265458359187515672169888888786734006731248543288066770660796427448140679630910604359898726864334663587334466408058291269516824844578309099794591101024767635181406717724999664832267346592655345752649250998686936045460851564424242242200466657029819210886705705900762032613623036426885467730379904776026475406941914635259946209311705409429817029643104114918948168106656826186166466056122722802823099158923226432257966477396744671322310388199436050897344089373523648473125264496027257864230670745005471671311361491754081523269504908786986914156241199413891208838183351958199288352811437773998470828256644790501480368676440464172408721906736118139177117134680857782121480988220754789969576854091049222791110356283100013734442445225114117580528038742878072025263990951856384553315969065952136838666384076516815399002863676713554750869975723022490457599105496998842717288597334141625113287211259864669371079871492157197589257369812923756565461357984188567668023445999107755710311793962328126015363722468007613780150176475146626432092260704668461069403713114604454635489821051220927898982664193945126826011502854850933252034969375588417725120878408520143821639154258122093969086257698937452158394929409475910321215209790418441532452293097532074539215601927189149307786430021880512082201831712098472519734893739759877137726452289747519616886110258353606208005383068789328101664453584495634629685347877459284276288899423731366950572734010854612112761176348268211627618032947890680381581126360842032584367330571387291830148805229384268193475221736807249885387112094900935991457319720192598903908842374063927855473629206744255923986396598908962954001441625176185464099808948260935102767890867290939052018475212381162060439428788973360009903061056177918766408151511746631293258318970140545774804517091496488081024097260044928483719357453628379207713232460262599065981567618252657990352016166789101203392608131353186080835876576436109125300898966754843984656684585729768362266713812591987167347684131790225310150664184025861357600662001403252143742043164674213110788215132578060089100550660152791469331960436893474628226863577606878634273421657582305347616246874775601618231906295487431103666541689238971914045448885139556859980529937507486100171079554923173686142681850312627828782856083092402059001202878247039001045414601136465356727281425250245797814416166118422391361185186916332447618201000006851113883831322473436270417450227610261401378195982466427229811095635643497062881893642805281718735096013467326913153749581532183214058218453446285956475174307584379109389624945052070818264233080478392398453649003181007807645379730693027687031152303171493576112252781505894912551012524958787000329563541397738169032970318460197041863389800184459252579467530570744798756289872259853129143196302819516881546204940274695418264429585440291647463446160064069470547369078851423167079202583139500584015669515336110977899914606520993852295754090372329004386008367993673724773864701039359454714818218191763290390321534773787805898010895621462687197786221122532301516510612422356127268000312977638771964030243661288398332138829752298087305124060753416632400661223158324799538665117190682438369405486386824014470674967505539588864923097893757697128206091496919411834083053354017310662616970097473012050900375457588355933088519004415621786141130746887885824092616369757160351022236854176417071391114688830324747920391985085153355280379836496437278598984023872904078160257364858862098044051983168165860494158931878021113728694500404626015089554696562738454463679363309332137897077056321930950946766350060284399386500509829854265378355904929840093833937129496541448829296375959353046129749249427156523182018986085179464308263704477821397881359697147685886771335741088139423854788794656833639918935898263152244827640003060475075368571552848950317305604412218861466286220200076263158732591419951269698266450557520921092439038527420573567892521606125273207768648306764794224177624202970294443958363942698138426177723243730894932826682846463314978322510280721467195323249386089480281485698941706202132967733313004005480255808754943736283102928358338255810766237313900862929385268330073052022349148328252752284985978758854478328966093103277493521615629798479225658116384555850679920575904729180737320047665177035805705188605589215891091607983524705315108685941284814080272364053649268408880552027613692197332451813793630721345506937069678805524316523787614265095088345001358700297943616559241097271159156804924584790927828316491431610582254678907001221433195341625612923862104911471720658183506864683254756355313090981861535809233568163743705628474537175730980844918485291779559293249522470806450334960618955470643930913608556612325682173759993915963069324293721854759038917083547170275977060360676967994494626906258691440236773701640124009746303271953907795803662653399422933580475284165190738684352167226059245089386917110704290333404996275907633277363887768061093340830457005670210201536984517504823696618484023017602292881637729789012754262979469697946628322483485925128715734353170010544987395082436188650769611601342670664838754228233029225364424477967880827664743351063417922496583611578551534423822355857195409233354341073446416473383980938897081083391592246399185731311957273045360420115122518319226994415103859820481152338108512350691379026438092109685070487988281560451604057757100257950830799696609221912258672698149383439707325708555112541977431158032856464302381066177118397102127908041638139539669933941113544250106250050138224450651198074003175738338627473692256260844581325934795031562926445280664684888255433960895433795983878280634510648583513743814063280764844421693767085556748257383364424881590259142997860420065702129295330626872538610611105685129433163046676301619021982950970045814630709070220861118424470224689407640674975673665023896493611703218274211557466511481966158620753921399104042974542956304432881270164809510941071134453057281001213392617850379252955524829184155475557012965645062231998200485584794882943625550947671558687702278286703379797720937547059360938683613561349934295872477845050688544272665091226620435924617059316407112104302837201478285860842326213172120279400072770185700531197284767198798276529483196524612909522358511105670158470958664722818410488523467962462817712212271280643125024336383725432619252883277541266210288691808019284394683545111403412114394767755126625071450290670696082532377760748032464047880605788970248844752567708729159155141335475741898106435129916830187396180756650291613163030269870282186261547168372455911670303806596430634774788125183153345198119104966176137671582032941184111774381180156596164403232628299388641239024251958325624584445268836341038766325661740476950452267926073454569103288336681056479578638626167060098286397473082610153694377418964597970534433237644599217215024666585347427035677593247070835019358125585493465568287051329982642961599850554812645418752938537929664787619584318056975726621968069804137144164866791826065811184076451391780309999069381036940080937123634523472251540684020961875525499895814821032573862537173544547217871537362574496612766113335529104191373995863608095900726441062697946759053706383655570251235786192706072682176283365429831867733308612393400606252783017203411909960941713987094735207486461423645441088145979910453251804916767114436963479651381128639848832149443991264200054287417182460147090741312501904641230849713361175959022768898660196685552995563805767844784815626116643294900612147594730157865279476312496530405009607674543422120110553784485010574480295793844593656256373816513051684312838730656175368211206472309537389915407691241071775178568179872804308388390653810672917013262836300294539580393614285412691855276759127766133980096439544319870213706445924179463677037236800685044649188386961174294338608631576207333443390623458979176461030582801299933893786393011003315606705255336780249604021445221967790434175158692209596509333769725160251802442894941366430714920199657462801766044723948103148748690837232996727256489934559091230062105126504762376217403460075259374660612365995992696569167258237393925110771342685582953963467466281139777769926634977843815936542072268726150147906900892963252541581779430951339240531815729936358076645857271083436688227602458499883791180020106307916359437225923058699782520854144252863961167032512304331686265270320603847912568527981705920364667954999879980516006585376445786732576788917706531921351095220248574358747503033721817404358302318539586222668477290764197592284325003732758962418561402493286341738826546457261524571437668080864933698479481916950766300233778769482693755314555701176771486658680305256339356016548549617512554031488143504065060334972846316988285407543252147382112047320401371996127428017057774604959262315691327374485342465610183948345641209414746665933174263893579567762054132514594825756252104819831778139044430143637278391165454056771005293979481799243638302850341331695694554758460371497443364147908775380342149182524188155548409298012099732639697394101729472033729414236472773857759102875958053100268084032358371509730982691807732120434127435833979166043563987836568424786757649730877125871666184183891278678057759287005176577190964682135406172230470789133300421661215018622827261498497875995355225272928945717540423859396189258594803827399444309554999646185421821386358697209122103422266625622983117964058618518816233141993747698002040486481570697031233553906424916441516369049738571048962187459904079539583458491738311612298971468656126625943904840444346365217357275339030897403813596511975379885562263152565958421397672214611185409606068225730290651226621252355293030777516602127697226090707995362734481756203625956049393287876238270896269317670360917949970236793077948269578399731792757502173129237307634980924039774056022122252548459385804168800091483901026621731329966515144446713417505682948535258192685967875119451829657780603194066481706409838812960414126165474664589484185452558914106285012182636208784681066566576034289162102909599072369641236713917145895942219695564629447698250665512753867343859047457695493333248391205145127563982958506884243949376374474428106365129293031121579387405501929904907961710349158782849946991489480711054008196572499306698653583169443582915651829436355792503495363850232186418914922386764215448585640442067520178762389342391335682125222047013460852320456280653740025917859110818805404369548453133911815317887629002419551302542224331624926857894406507058373517596880681888492856556942494257747346027218052524509842517303915028959416364577491848678872382904768871269354417310038613630638506268678241940050907456098630641307213569550022594309001764128662246726025152117365627127275730915625195354534470522534309818298176405552423975635546899012602335549044734457481641356517109492887334843719650491460973320336064042236722426441785294534869819281743538411750729029848515935713363987189629915474036562344894881686275005903506185460287758963719255247914303861189748000892644078546981490119115005177111826647363066268325372717714193258667446323875199672915809879573001495634431951580991314308768267450263276924968689517003396904063554879990161432570948281802882091745537334044141620343595662817812799145944907372435893811847233106936684058848315506332745577956009649514264239176029073610425866349179000777609817140498330115529052919633292688452556071650103702923721453789893028297064456542844438954516758592753584882938802334961894959934851993579417445303442631258771971481096751318980897683479879009167755470498354329792194968480501272402503073834715903099495090618913881509995112164122589897389404309589096095265507678338595450679091724836640693260734000290737567631953393234132561569416356756690469745814789843762844358798594385161661740954572442127788969635924399888835657681371300829594388522593763166644590945171303047006777467149457530130889455267192253740824635285666814927454651607226007756814114924809858786762878107249246514499239536825689255142647632133489618588760390646030417048436135629086296064108760486247774445584791083121009117594605041813252411583171111766095074492248983790714047584890844178468811680230542869608254512563452585616063359769101260982216244096828718920445808581222443968630841389407502029822739218032199170907671588807539282119195076901521904476614812853305800319473965840025677068490314292731320974761927426301205892318994160436354742876878120678243294329404754584752372284912882978716203263244805947054498444074847344352588711167486125639225382899431755928799085880890671161094825231944021436116914637175343369283093822762921063033740096921728115441413442128408894392267739506262498797591780712546295308537403662977659299599871378546661139273701692332669411088676374371782089661927424861734405679523537365531015200814643854689089391816582767032711163670022763469701231786606383536985668071595237743104965644751381207827540609581193605754634929765774992003915851016773240961890398018043606856496444158944432838855461947168488782837941905336595410558948955143801786356305716592821198568647901509176677099479323342941763158177696916666290023001044782417510317385457727578221679376047328067532752421964278035686013839340972710273843444450723790567306621474743622694322426519773534687732855591117501854896352802968938346161281310203556773181070236862777771735026036286451301006882708765242432368002609975536038754839225705761141907543275297296052398041272315035245563933704739121980209585824180160518480985431472333713211141703355161576969181563432693199617419215745330711130705087628790597984845299941810554921694116293826419283136707288907339869608531055139362143961121681453779583653383563190184884071121298464227560152642979667150397036865979227333071702145079314886729271760969825828583576919371216035758860507469175803746546041209106252879324440409314198326275185571328984422000888645123035109002728865207335661975800778178849192408130342466417639239068281661066877962529431905274910014964427732192757210279513430506623888417918023996505012471428657539285171423771144003077291800914935632450234872047209176905437540954224068231469880989387336542634132566814591569730971848939421044367267862026751474384230089430248851564712079552686700410231547571608001041746044972079963528884816179844062145417410595952504953176609307186509513447952640728839682411473624933228799450473589643411894469756788309919038416601005256172055550430360702162612074964144291622319394184174579266664046308827234634717922788320369120157196574361095655415508823732643658508313487217034333029077525164515868291079720818821093255781575865622630866899747074551007704427253059676369239656345909740294480059032520307996023548032212293331347806854391148987239070516447904085899484437470134163835800127983038165290038192348558909123003328678393954795222676659521185209898836185411339588374927671780872091690054396703923823681716654140209450086982867284509980349281874214081038085244384590762285457230074454652046896762458087196028974761899978285320475850333980170864154190032365276913792451637620479340475363426112859615094549697417002559060460371487559492770142695302431858122426219357421327998602859613620578047629123573102561048289325228128759492382919168607403963683538882310010176207087384981743205246469680363841043150951157799457066553241813536700077505687651420458839139627379233561303540591382545847198426003065788927051231751172796032184104966406250502957600999955117477160000708596294728121410367005997724240900446474461106221024717685360919611253299210329981960981482211597108043820433473636193565369724040159698245288629390854631393884389971128631485464850962108751750938192200160791607261777927335279951899060539640585248836329385184294584141143571338384883526691630218784133898332426395899971408443222153476367356028108519202911738694014277921366408218226687356220025555996541634531724947311027880613718822231752053924021387033469572041625923320974887932673787484516534137901193956291282644158860137697797145885285366152562916949366155071089736987206098193596804257972979550019889382128526017845252790806574778187485257745919471312900460520582527568767964125034597195962163761873898586350944753642776868745067452721164040864669207378206767848804152293802423876197248420927873423743315180603470449378961057505776564009798106523797774513723244611012477021519388503051833377066410681348233391956251483261630982844141539384890279496833280397468917373124358850313276586792749389619554526104268697153466909603841202275730897717099520932157493243617716098099060749901957043784941278415455697595229323869980919319755385310247511988459847921171336931762443731777635018302000198107425090256190942987729305320205614630498877846104430504809284541383646015093868951143921365743878648927283094611887335490841524945837208159298738222111878087909931074725121319308988453722579105207409512017711067471478287778268448270937780137521045797253263385315403314291083362888282806704752992635459755067515540275999779670521657937250823327299889414785050508425330370052038904850692332084191472291364375207640419439019117442090182651111137645020902027190058744841553353540031907300657812764457088787287732079580353556337996548572111929241842497110717054719017868339156537018482725897048626821582654035729683850377016518386041308983811902861525575208366015319226661737056557615070277300047329365741335470424321152416086520951171846943479395529387283074876251495151184452590425022321501817866698390455907081425904793307589749684502841119515562958718069238062668426500359491896105846534612515599206010260113194796292724390040524938898819924132192236236425472241565766812539147344872191819410188353959544362376741367381527902594220240954130860574262291338325271346681682468033437050278210246304673805724488927774795382922883960492929967358285946696689817818665537422496151355280639007151119625010079400031408280182249060325567542958470930517041975673110844392525073223088052857174967153540913544310576881628537074756176532424951005489459634074915047527369239809048092940964142880123262589149024133907039121937861155796022490674910634484429950088688319219470798168307847169706288790164644541964721329493627870205557709278399809141691097485743419597124372180692071653334362108173700269316909016555021744915918338557830464732618436248791466235421361867740547584139615338880535598571104455822033490547778053791447134727047255084196650183143598998900587055823593993181710439548634705748894434158663746119958672493748541973429321243078062518085049713572175308065948114160622545846570804514136333847857011622429216938141070398153986711359306730601809567587501584900157741549491000880462407736254370216988974655724476275584274461692664292785037699092931741015789358709326666268227228627203923994012148485597902963338840019777233992960628986432350824882749085073011017454545867758544662832566127159119512528025632284003281402002706984249103485334342945366257279519517347957004485643778161871143696589393806148147282854581313745729252572148754730589239207530855605707594840441503822444906724926044908233521634342661675508192146732164817524755408085121036412285366362090030111803542951583239749337576814991922124762100639607861595205977879991838809140384527960635505826893085139013492649094781125138971578499661606000239311183856921841639315512260178357346309321428006052339601339092170964489854882277022911785233965425527147261270417628167819354554361065447885558779420417916488605586862481045621902170726949281905544236124650334718125157347103414813111926276041223611499413324814123658650728942044622343872008428287648562258741617096063278442669623114957744548062957039897926934001434450824581377452070197638295327102143885364588994083733927651326883941454146407372978797321459287018557557596863852254197851530145410606951512543333651954614251668382825748341655182620900295033630462072289464257870819117028820451261722623521167861355656952008561063511908144180018736510332791955062665595913603468730353956689571913758203179365356075095412709808072813113203445168848420618623302656102562382901473167538154259091997379687162815255072340637919296909463399988112066740660670750295732655024820242000541354229334928022538399968195963983401537607033098557388386115539661828626864727329942301600003368563609370895650566197999044429921201789441927522057863686299001454145207710533930830530372502333788463983941856072503569242281749633368318658329542721354424718916993155474313923566576722270435207118595683634826931911669754627133058131084301640859321945078815433448539916543004237196094985791585109951789632109408689383646562121667207551258002461589607699376154375249238046175875601436700556428760872013753145894217058801636058746037151517915025727276732090681935028630200691275868710908199656699649246783459462687990154670584546871265292709191649361572864019218450336568291816832045786354728652446238542996126339660155649628721003038228220306207862563016566692286808425004933509602040851507807728932062756582912884535556399583082048604218652374230929432416124711749944198129378017074016047560729900851517271589040478404499849061179561111780834315267510335032920859545347847135188789435949406183262088791644343490870525876148728719514332804149032328033161023620391629932175769026116101807398261902884055813500998135208817402663229391222249502671328754112986648057999131007440471793919995088169787898170387560357430179090209541383107238398690769491115619708603633976953643721426958492023034356467572055586168495907095066546109611884560501899904287449467842780959214341201179898252239503532513414647705171124336380744169951779242407699822092099182260519072757856405226834570846975756824926743100515289027440109417403363489963412894913869233624674516368674498071001800826494452393243082993846812004135416524573026449963127297819019880108637138934987472365656792758301237288753266111695007716440830303428736904058026478400083455905686658359431296910093715154495039092547622194483796732049431930611453064943541660271972265470958920917135099892367722821263890832217654660344462354888294530461625874629433998874099036864729112881551143589247819925120510849897309816516021618050545274045544502160179547046249134703407393453270394083214807259951812410761544137251700941328358947708195133246451076469457058939125490033788797382684113614676722346592935763656689013342230280100630096770382882987665021269875712239983170275253884223231743792845960079543138859023933075374234507469260345911740412974131699001095463274219478562261802309884576631164104265760937096240375738470721965285991913812636126873303087761924024500111275166174372709200957416636360953758569694047468193177925209617628341208670765495901195135915029169960711271110663614037069860843992280457770892521399608616205761207481063833723028456872886014094996993644961441884418183818318958153133932340526632280246255656860609528669830302509230683373388113161116882617070050339984506267886473825322594129002606250983474795007699624357386656595109628458733660804683703515975751541673750251527880705740267325826572508065861282900940502629069999224778775457114185477810345103037386649285939439765534894837957721717928351525824372190301691885053421994092703287846063180906601316341472647343784255091140606273027558386736190268615542444923239758800341610729672416909820357187056280418590639914400516622069601746789813925849230027574784212574897629282499096812352512758371952564870057859363620856743080612869410115593753802773217744905385522972193562866853370738515212003207154045273738435080110637107190699256077373400736922018114717858520731745902516315520453381940697947854014620845676928027237039090776791543904876337555910208529895846216952154988745895840260078594611551964973615557503380688727752199410391352073044450750020150178660058311336740848835363482668223066310881231120613487940774218227754583221395917996852624259647427440076119641789885084900090518144850068968029875829737758914566742941502100970369792865274042470218866606934532063013360088308003972261501547564561603465158236921336534828229758368819363732560562368186385007992728545928542989089973884757655522471871273994238813048004900402141758881267172461125622353615738332519995735409530944869680522941592184161675603514913826334305592257448734148337992105786967398565995789504931500596044659580462689331107857358971606772379214752065404528528177016482868509237396848884558499616275458641124778132770989229940549030825856435372236818609440199112954238935725517602192738780578097643030397179766641323493947046614610826222753812359707750950503364467990215554033796197043814787105443394515162453306044858077715692212597751196077996149833779959220828362558819066290269975854155775676756821533549699746706412479964856148241711902409582463320190113162821371153495307643500015931637738058891524868047276391396075066891217311278086519949607542809384590662912422289084225993847351628186830625789911858016981997366165242499121243767782711132178715470081949533419550451222469819435590996490901974158027860717254270290514380291869380701922929462715759562999715184427945501659969099993756913954693964724837477300438195197515243424975440039908865080962005332582900417946778631540060676378473534174689619769828505387685845251950909087846961773116778969162045568268730102465097681512657333888826278551050807085166779299769794475565271163324582507630847512553732313858083344124457431603820255943621065743467672988551156942116767218350186606230988094082459975365923810506710823447919542699727361092090154419305668632090379875858219466990256638588393867193783920695956178347059773346005196693499875606562648309613181073741638055289897587739470249505715313226570767088747534830581551428048553047645796145836614087096586857904266611683275634071940425466880789646475309734341562441259266494076184951713912805568017345249599006444437276045941926622063614539324841798955024617725755363701287829906569658601143250740683599843274433589959081422023815967655310356470824002853071126068974320874995264215846178889785318052537120718286756405653887043396459537270236144576551898732952949342717836094393154613030004714794047271799760524794344764495389682180773367289338976532604888402771072238906481606904784759397879410581387947336747800062222443312156878509392617385104546151221986221218072896176298372944483041278564524930458503816587840886252837216393852309443273031259324219589622714169902739285509990170685129764579695848246027372603612087619584081325601245007329784657827984167250240031801861909754875542160178728268671431804719280083935824961661469805484644428173579321853175337026968529646676164815857164982487264661905445941532254968784778104193659125318294669363009127093848920055612160035599615343039982083395272291984611363832888315917645856068278816933266400146894455540264102057331398963106788956544622429455746540596270736999418877417133715238556200827967793128015307510965562496600164378275486453251837241308373354892676092640575807213655378434932656143956932885370935849055346158745811055408040117140891447307511427512035679066711351413072613613739440046970742428473160155613926332658631003999056024946541568404174730895390692353569033336195655028341172543208633343031390583617540272949519432731047235552991809518279054357606902099995074245316775406930383005131529078524809114656506126242112096161328596723646727756323322083683526675432835209699989887125332940791562216127840189832798103182692096722152045254189508935087697151111689156636828548155768818798696516595395781978820023301339443262705263301589170002832370379906471897010992877512841887842478845290268111231140423858797275554152363363005635221170762514727941246756587251410800313375853686499418380923854647282266294025975144584896744107431115102049336816561104778525978788559838571484521380891450897566800105811512077171755959468039828372878611822146970687283154485872042534388165912411006588738832050427413779403414897574757341664823875771768348203308542534808950888709262759067830697839458945105020212855290487184756553000136908812531755144708791970839124292859191441422179050658934401901436661500435203108320759255537783852822806529741805888249706587474914959979054532406558066689688442320066112444873376961228661168730339940284784759730446708078253778511531587420535060529018011325163755343608696901775795354011600136369162309684025033601547959644812846171577210321766783690364965082110778582323286862290023534912251052068081760262704526562043335643498650444195819527231994086304875416252184339457328153779788888897856627564518020466300160957531952798307728474220794828826024655063367119715793433129312572975658951586648183262795610886002806982685255201202266934919848577449029502364109500772396083036649426413260371344356408007960491619344996590670558159406654871078228079307443165526864354683154534499689481668599307230845223423547348653276866638478839629132816885797597021355060917950303465830625690043958194460785243857737770080424975128587724569798097173024330212455213588590227821044299503764556686367763680187368259545699648580655035725455268719923142775650127368140216126745940645910283563858084589086634639067636762594852566645941506773687592905350143230741512231008295096319852710310075177048469424170104964429672385444120163682972569727829408801713254968554294758762145539502772360001665596314588648986143957110497441461049248566173003985510994348745396937456307617884855607347351979810066832216055453803639843370067015376317816392616295880847081475953588651736706363281601820464444694964436904899440548698906156575326122213765169438642355517748045430979023836682903715879986454507383763676207291767507178179184520538237189188601663398492001489913891080980987514482684831909629798416392923336995340290520406436069488959486030678441222850452693633473078473726800361124810746248006754650009340289308438455202212251515920210798224935491073144894686130194586505500024770384502935912281418507979771060199865735483912607187791511797839852043939140262597538363852546710006801107812842974740900608483900596071977248822540861264549151568658374859309001070703006302324883512083047547083155311568746024401544103874332330291721128095925435309985704915841557160225573235060493398387192849403332641194286288956192384626003721926258081624408701213333010682508554670291246208787355311126986916818165111621551838617186376348934190994466842790244411396428231909192919978546415764858926970430194207285804683401698527221361837243229962337574216352517803845406395732662839146459465514074059284597446526973448231762247642844339140790254079280354985862121671285996430757122564041586360183814978133548912442664970247211111780982495173565759873592739801015519252654809474508445668220369309300363516652892156429489809472471712923099168329847039319248079485786750483629771808198690143721114664692579325076839897152889092146941891613460595463260381665957979907729418765467037503789146163938176189447370642872178412308265060694894820297361869967705586202273616177579774807729679406651662448808791513202859583812944788092000839742578184049434872081762777615233410852876632361443529652276236469122407892779897606793700592825239563022259797181777461277092021630487946962068642978182050198262689939393298437238847472663158771115427609887200873168818194972013083356085566482788057737927446904166521275055420914735095112835442123644922287610468286019442203368671253534928175712463339285215854977911369302739613100354151780517159564099345293471988491788090149827104987842352706108176430365262479117103432561702177405862177444437740561749966620050000504192376998779546696051024183071830164462961064549058180674473910729906689838602208168841691216540139987198709968791689357736163494775773996421221247084270863564782789166228149687726091986577798278364048173750610674620782596495223611835278916437860424829115729497035210674490267817164148056837022139454858638833535982974511239824356288438991482145086206688871122188306509225856953667703981654918335266976725371494091975520112657902875550148862608551090293445808003617682556505674011793345126550693755173328159496067772786050396412694182686182165744973896442335944448484718132793702800202551900246617811804564125490995454967912424250153316528366869765336516952065944877094408206120572920983538768978545419779698715466060208637861388386570949917128035015380213626253273389235215462830511338749418084630149988003190406600636625694520756984552712603699102666215838757534660619538791273164080003064063493208777892864408593677442906000123659167601444465339346037128308134768734571224904195367444568827209420891683034343554296370286402246603087397604483874761537222882703929183547766023185444288319346262444835639098489018919683387894447998346041299752916474239501380867362149791354231917229082659009251255349572177975149572664017925908980925387966040359980201910899411670954085878999859920575319008315351842416426272393005677676704423676594276131591514650900115016381167952867563373717703274729205494907622707429719965170155215664727202002003565450956924907609587685004971450663123808996500509263933571229343526070178214448132170256643549698213057930174827088593808886586061370101564328326084772273897158539950893320690875448624289798660000640235208319505778622711695968908707693065462124559677060779700821588695606536776102101173346720598246849790688569734853992634954378220571810592854769102333885745344367521664713639791822074946304368379948774413757426891715400963235048528108266369048639673072414751708320806414493989119197207112862669270373382406538465643646504520882101650504583074804905743651725694861197808369630123244355651881410984642563339715293763346831784570430711014376725463236173345793831218369361520065283856851833401334562304688876228100116827766743099896824638448620835466329500269285282589803185782792175452230141816951150037402598417694207762264401672025427627818560910544641390311240558537384110818846813817793455375142442620722827910369064355400571262452254196878049179835923348176816153791445381334821743151009865025304629109283097445566605963192074820966126141372467901507891130563505127691179065226471392928593373473261402105408317530307498055381002307270021454299287328217432854980726888628967456928172744378206259843738199336972760054863907679761436288153409619036380230605343236144608170457426107931703663250721112405275672499380866279549635586754932849755217408024156075459543851549249872167237753117067131543255452412802151943351428651973861729200696500528720436818792314144426537600534303547365122142781049890716277565802559808168770094512288781673062673588052353705375453886964031024801132615480789885843878579199958495847900888016826474944353156271030336208701546123400934973829565451605718668366103656959381986928897461013781379576187166884360915611024551913914747880284078091274674169272563456184050089413011991626777874798650066091186011362507895022821464976945271353090169750700936213905956969729746956049722597523909516949151905739546597532358072171209808519504032760578498833033868291804025080042776568000589195566430657875316742900455631951660848319332176399711118172095864275009657276122156125365361110714623474710515448826685596092057504012544141154047776846170121305857411922061850919364112510038446818454509762073589701467605762413256482409030494569735670324939708669809710891585523039457122734332544342805044151275971918015110637931598347499571282002338763567475570213560197929122107828315754985432508180987515015966819852140317217696531430977462376925881780427779831570526398164914631298770185562495246909399334681112374765215660875392051767796184143657590508414223953632116212304223132476789372384667565652000989668266345733135346008975008537190583071768697408441061999768574021769230644713400186336898452618707096257798710875664447018806006998988014681145968455282501910400027774623250826516930856943208506550939843243760928099946201404098199780726947539753256519416327651336050190558047647447007196715796658805832256637763512821692027270442714959889332369115797981392052265525466348033438706925703838660060303554580335903520848370691968802225302256610417546504830673920681906469671469775447303306911682137766324937372448067800753994413346414266711480195374481392024894260566768677076419840680152364256257377788434607165877249324563750477470964220714288469229738752519487163217812397002869507045856027784580090522835100904563729705374407027671607895413546524565457949976642610024137981714927340072922035479472950725968066109098816900124107330677296966111086802728942504197416931106574816328568212115140397047744482219632631150468425535101451937381904169668104011594744723800924716919538621202482226466332045855722052801742588811754474385287977661597124357924359555283334522531894650233271188905138649390075770051026457621055772395284111868936412990852918449631849427298846901905316410619653750943031053907720977761525125170006492511387309073447966325857731602140144429107695587057335100684705449820498930705630367984605564069056199446110181669311351110111392681659251222005277613603546773162941118174764225847947672978470900561612172075580029644322922873322233205623249672205015005508171539479617044239891671832489799350649097837738769050488368707509980403463750965543010035814682936336898125260398314308425475446372321783942143286012254941161996208576061613958352595241548671457716775207663217535069420738096708877594233757561943898955622465879250150883316558304765656403104338766426579627363015559581701358414588866945220219820713864806203531043245428262345688302214133381702209284074672918894193888470665386873161189387959941171114633058118675466912981443662122932085252934781345145432209855591330032117645896478487061542103225441712064635063388168948683141339851057771016775630511532954430052198191235808446633152726674270250423313182458028179637269964555791553801457592986287301340424330187127929157324036388169592571146610634794095203369906276766797505880240389525624251704398044080367907080259571741229323651938193187762536702479061391046659926621184894501972182898158170969490853631755191768312050891093069109207440843737539796129803400882944993449695119499613554322913796739456970895944570922531719512351103112385047778480118006906848250009492098013161858411833279290324435294127050962012987933062108379056454955725668978427067597951317766073932607677958854435762190954201326358921730163461470123020811120796089276531725408874687263414469844536671738963873078660615434362068278675742501695953166733888299471753780811805147231871957000455202368338442970368576459551931083371394636321680164360900428050924620064403863880498552963037053236279994765272498580477224557148729874017113186479726160917059234140500339776634978364603135532351317350519787122138549482260048483168743116562158596673971711614503955003264232342515203167595189992829800979875778993673207754731724670381022823968098987805579344128522000163623144919620691566181877306850336925042750188856606192431515244725866644706333724256705969992321954890260738042149294795356391157246889207970475049619138992474787259078967170915823200027712314201131705047762996649270267159192879010893562399136475290489473231209819548801107000965855022863131121530870337969687321688123881175999381766126616879463688421301570765201170986769455291269080860766387716723774393770829138848591847524979784991375134063205484953751140330398213646458924701836243011279170679276164231502255489751246805442469375563439090563116233880348823399578881758998497286837394202290353389253357135018534523515288105863310394712433938955033995808029954035741560419177741816230580253756229758604569237435082650697513237263617809800694993524753006121495346062244640922908244643408214581618725364501360957557922630480145482406985988621128895346225997005058758396267185984755813734791770560675395270977858362491323636640660846894866721875347872132968283455129109226864177513890330536478260248545789251447810448720136982921927308020823740390037946530854114982861449282004733410385114984122632807274565668292142924231873958057103524864530001154963538168550061235737504714189415597673709170818667344808372354437006421610807642829701308050138820188921338779407747005989160535172744811883388439782130553357108503998904584793660880925313425012266699576646663904995020937237066914727384902095752400580552351959987164258521197185164142577928414660071295624727533405855764775683447459019978516883962116988988376807965375079325140597204151703678773437369786260882066388732112098735024396205881183791174276431242953248723150305066472513296558011064431150069779737982185184116101031614649364434386607056236117970149005059457830458058896777599687798891339270495050444395499055527405593865927901065751254849961335782901180859271893119988091392767005876084719765217519879481713338819821771911589893570463264464022245676622122208679839773994070138944370941574063578170403097262838644522205408809730267749073656500927788469697984010025937616228222760834825559718733905610148558026590260171847202026095139154398290434952806150358921824894245580741992567011143912297482435008194344535987901742496646123187996056153264001872771688514093022195630261863789070382162698565682895344187236182171271441979570171474341451934603728347380859289265687021776565633668754894708926039918798993511411250509763856269801573641719732529211075749125577890499730426879122691864324521124836565235457077092192427904320940379495110723136529241026809165268313250030437400795062926662149494665710575684423237438449020956683502399655953073882718467158012194781627157279680467520974088618043744555981876440793121634184782676306159072754029603197369348943840797982296604977159511786965886684563052294198224378526798969246533653960665480422466353033378523486237508721030766026423913766647906762368032921931167945820227954767559725366017971116860627058738386769687673122277357679863285820982195895531908527929119103629995900009538759425260791614823777044255853528662224812124685468176922728177266495652412929192925720629182037128553180973583519771471724772933988532839883854188684772924858307412204948689121887501301875789368846815129730517315731869524314041449607046361671461430035657759273123033364503660398802206348701792557338073268207957380723665350107645397802190739921664516596763759504803476083387798237355972311046561973984918282209856830799534334460289137439657991987633516953504559392519339116502242000267545845392923343483647746601758685256653791615868151890292615958730275039122473461041714079355924949009118871392045176636392703734070687118028862847344856137065563940294937331907751812117675437434387213884917235489151135968627004589615779252851472607350350868711045657918711265208660639782291872356078848086566282474918096920746740757128752303838661718211518051903472645524352437351261495389407673570022042460267807549999377394660178216074049880989935851999657204838020353884054132740755789534955159956986358014622071497845698487511854639775836319783115931734300536862831416764200665217439871425891794653707847740243526688305701968160563904547810610644744021947006984033617555757761914148379372815044360750893634251598634780402347081372675134645342494936138980719673125197355736747885439544744186367088560344599808480363170425786353919430951803241038136274391092228608369292544051990139669813365834424238946573029998245843985160183971839598026744708403256132827163613396338219863490092048157319297308413290117166755639907716886488506075137170221413612221045455626625225337866672872013622514688085594687960236825042289928162642448603919996336379360576574998415325256465448036801213715099120041141738152145169635015391723783746514666219565382521900269624757253005511796621569780472203795513705660426934078444144120868914004348489681404475174583144514969718563185949682184125485545317339911473756965105085665896370155677467747636658516271422252435735763449981134426552376928491317150872878303626922377620530510925956852568243308645094322876318601721409525278629648729772528804050158727860935158679134476294792858632113887789742392017338363575088240677264149321232973085957434257290979485523712708351664170175863475951172813187838764945720455937477340386329816837217723447142460700404501106223871973692027630442607344457448854712306778639807232664223650260247307954258694450769400738551078709031462595707047262600566377147625751422138285187208375011597222626454964328586951174101227842657732735517450823555888102719979559726468765877980769459795328194271430244034548278397026735991072661910623846757910779679546826114016842490347028850027420426448932793909994006180787936145748498859576559853347448368483510964790705286652229697432102753583662142100499867018428388782323375524878734877621924529135380949254186112683351961947304685839692891437733196640397622009151571156790729995791194927553532687190251109437304981188814558128966417983103377065150647787888486219837291346876640037638292259855186040360617659321093107816937790380439790707722317064047060797102694445074201963063097004798503021952792406558737199441159982732360256911661825267541423478421428302063419989565970979698048211991053618986058151056167664922430294763485468065822965475142767136409467463406411589792174734542050056917518883216003980922965534037703381488874084884923390338052987906671151348443805939307512444990347917556596447654446586289535719561399081311031552720936001195162532739277602950464525305726665128145451567051140222595256744702930841148304406746923600865412066909398662683562730767275022893732164136149108811884692539791092877355557870468212098704647633784760162889551325645339570265735031296591826207382111615327558196728761494875643650530004036114998207384542072228767701549399555381712645053574744568796667105897477799020233983699972539188859634506100247524224805982839576172622846778024172340305642084468595497477266212942995984323256026689070385837759187846131705899645150965391986508406784167551856434403167365682060491720564622942632424671918764106194035727900120562911827845440653710242737911386803587828908609109185022298022726509692264456055078514801483369096260487560361880372030759305095850312970193349988976081961233454229272666273414209981379904682260088417872577823987112604241218229315966125399227295038701568