3.141592653589793238462643383279528841971693993751058209749445923078164062862089986280348253421170679821480865132823664709384469555822317253594081284811174502841270193852115559644622948954930381964428810975665933446128475648233786783165271201991456485669234634861045432664821339360726024914127372458706606315588174881520920962829254917153643678925903611330530548820466521384146951941511609433057273657595919530921861173819326117931051185480744623799627495673518857527248912279381830119491298336733624406566438602139494639522473719070217986943702770539217176293176752384674818467669451320005681271452635608277857713427577896091736371787214684409012249534301465495853710579227968925892354201995611212902196864344181598136297747713099605187072113499999983729780499510597317328160963185950244594553469083026425223082533446850352619311881710103137838752886587533208381420617177669147303598253490428755468731159562863882353787593751957781857780532171226866130019278766111959092164219893809525720165485863278865936153381827968233019520353018529689957736225994138912497217752834791315155748572424541569595082953311686172785588975098381754637464939319255060409277016711390098488240128583616356370766014711819429555961989467678374494482553797747268471040475346462080466842590694912933136770289891521047521620569660245803815193511253382430355876424749647326391419927260426992279678235478163600934172164121992458631503286182974555706749838505494588586926995690927217975093295532116534498720275596023648066549911988183479775356636987426542527862551818417574672890977772793800816470616145249192173217214772350141441973568548161361157352552133475741849468438523323907394143334547762416862518983569485562099219222184272550254256887671790494601653466804988627232791786857843838279679766814541009538837863609506864225125205117392984896084128488626945604241965285222106611863067442786223919494504712371378696095636437191728746776465757396241389086583264599581339047802759009946576478951269468398352595709825822625224894772671947826848260147699090264013639443745530506820349625245174939965143142980919065925937221696461515709858387410597885959772975498931617539284681382686838689427741559918559252459539594310499725246808459872736446958486538367362226269912460805124388439451244136549762780797715691435997701296160894416948685558484063534220722258284886481584560285060168427394522674676788952521385225499546667278239864565961163548862305774564980355936345681743241125150760694794510965960942522887971089314566913686722874894056011503308617928689208747609178249385890097149096759852613655497818931297848216829989487226588048575640142704775551323796414515237462343645428584447952658678210511413547357395231134271661021359695362314429524849371871101457654035902799344037420073105785390621983874478084784896833214457138687519435064302184531910484810053706146867491927819119793995206141966342875444064374512371819217999839115919561814675142691239748940907186494231961567945280951465502252316038819301420937621378559566389377870833906979207734672218256259966150142150306803844773454920260541466592520149744285732518666002132434088197104863317346496514539057962685610055081066587969981635747363845257145910289706414110971262843939759515677157742337869936007230558763176359421873125147120532928191826186125867321579198414848829164470609575276957220917567116722910981699152801735067127485832228718352935396572512108357915136988209144421006751033467110314126711136990865851639831519716515116851714376576183515565088490998985998238734552833163550764791853589322618548963213293308985764246752597091548141654985946163718027098199430992448895757128289592323326097299712084433573265489382391193259746366730583604142813883032038249037589852437441702913276561809377344430774692112019130233038019762110110044929321516084244485963766983895228684783123552658213144957685726243344189303968642624341773226978028073189154411010446823252716201052652272111660396665573092547110557853763466820653109896526918625647693125758635662018558172936065987648611791045334885034611365768675324944166839626579787718556084552965412665408530614344431858676975145661468070023787765913440171274947042056223538994561314071127040785473326993908145466464588079727082668363432858785698352358089330657574067954571637752542211495576158140250126228594130216471559792592309979654737612551765675135751782966645477917451129961489030463994713296217344375189573596145890193897131117904297828564750320319869151428780859904801941214722131794764777262241425485454033215718536142288137585043063321751829798662237172159160771669254748738986654949450114654628433663937900397692656721463853067360965712091807638327166416274888807869256290228472104031721186082041900042296617119637792133757511495950156649631862947265473642523817703675159067350235072835405670403867435136222247715891504953984448933309634878769325993978054193414473774418426312986809988868741326472156951623965864573021631598193195167353812974167729478672422924654366800980676928238280689964004824354037014163149658979409243237896907069779422362582216889573837986231593776471651228935786158816175578297352334464281512627237343146531977774163199066554187639792933441952154134189948544473456738316249934191318148092777710386387734317720754565453220777092120190516609628490926360197598828161332316663652861932668633606273567630354477628035045077723554715859548702790814356240145171806246436267945612753181340783333625423278394497538243720583531147711992606381334677687969597030983391307710987040859133746414428227726346594747458784778720192771528731767977071572134447360570073349243693113835493163128404251219256517980694113528013147013047816437885185290928545201165839341965621349143415956258658655705526949652098580338572242648293972858478316305777756068887644624824685792603953527734803048290587607582514747091643961362676449256274204208320856611906254543372131535958456877246290161876679524616342522577195429162991930645537799140373443287526288896399587947572917464263574552547909145135711136941911939325191076208252026187985318877058429725916778131496990091921169717372784768472686084900337724242916513505168323364350389517298939223345172201381286965011784487451961212285993716231301711444846409389644954440061986907548516026327552983491874786680881833851228334585048608250393021332197155184306354550076682829493041377655279397517546139539846833936383047461199665385815384256853386218672523342838711232827892125077126294632295639898989358211674562701218356462201349671518819097303811984973407239610368546643193950979019069963955245300545058068550195673022921913933918568344903982059551226353536192041994745538593810234395544959778377902374216172711172364343543947822181852862408514006660443325888569867054315470696574745855332323342107301545940516553790686627333799585115625784322988273723198987571415957811196358330059408730681216028764962867446477464915995054973742562690104937781986835938146574126804925648798556145372347867330394688383436346553794986419275638729317487233208376011232991136793862708943879936201629515413371424892830722012690147546684765357616477379467524975715552781965362132392640616013635815590742202203187277605277219055614842555187925303435139844253223415762336106425063904975865627109535919465897514131034822769306247435363256916781547818115284366795706110861533154452127473924544945423682886061340841486377670096127151249140430272538607648236341433462351897576645216413767969031495191857598442391986291642193994907236234646844117394032659184044378513338945257423995082965912285085558215725031071257126683024029295252211872676756220415425161841634847565169998116141010299607838699291603288400269104140792886215078424516709087699282120660418371806535567252532567532861291424877618258297651579598470356222629348600341587229805349896502262917487882273420922224533985626476691490556284250391275771028402799806636582548892648802545661017296726640765590429099456815652653053718294127033693137851786094078667114965583434347693385781711386455873678123014587687126634891399562009939361031029161615288138437999042317473363948045759314931405297634757481193567091101377517210083155902485390669203767192233229094334676851422144773793937517344366199104033751117354719185546449026365512816228824462575916333391722538374218214883508657391771509682887478265699599574490661758344137522397096834080053559849175417381883999446974867626551658276584835884531427756879299517028352971634456212964043523117666510124126597558512761785838292419748442368007193457618932349229279650198751872127267507981255479589045563579212210333466974992356325494782491141952123828153091140790738602515227429958180724716259166854513331239480494707911915326734302824418604142636395480448002670496248201792896476697583183271314251729692348896276684403232609275249603579964692565493681836093238092934595889706953653494063402166544375589004563288225054525564056448246515187547119621844396582533754388569094113031509526179378297412766514793942590298969594699556576121865619673378623625612521632862869222103274889218654364802296787057656151446324692790682120738837781423356282360896328068222468012248261177185896381409183903673672220888321513755603727983940041529700287830766709444745601345564172543709697939612257142989467154357846878861444581231459357198492252847160549221242470141214785734551500801986996033027634787081081754511930714122339086639383395294257869507643163835198343893415961318543475464955697810382939716465143840707073604112373599843452251615072705623526612764848308407611831305279320542746286540360367453286510576587488225698157936789766974220575059683440869735021412067235850272452256326513410559241902742162484391403599895353945909440704691209140938700126456001623742880219276457931065792295524988727584610126483699989225695968815920561016552563756785667227966198857827948488558343975187445455129656344348396642055798293680435222779842942325330225763418070394769941597915945300697521482933665556615678736405366656416547321704390352132954352916941459904160875320186837937023488868947915107163785290234529244077365949563051742108714261349745956151384987137570471017879573104229690666702144986374645952808243694457897723304876476524133907592434196340391147320233871595222016825634274716462433544515212669324934196739770415956837535551667302739007497297363549645332888698440611964961627734495182736955882207573551766515898551998666539354948168873206859907540792342402392590070173196362254756478940647548346647760411463233905651343306844953979070903023464614709616968868850140834704054607429586991382966824681857131887906528703665083243197440477185567893482308943168287027228973624893996276074726455399253994428081137369433887294063792615959954626246297076259484556934711972996409089418059534393251236235581349494364278527138315912568989295196427287573946914272534366941532361004537304881985517659412173524625895487301676298865925786628561249665523533829428785425340483083307165372285635591525347844598183134112900199920598135220511733658564078264849427644113763938669248031183644536985891754426473998822846218449087776977631279572267265556259628254276531831340709223343657791601280931794017185985999338492354956400570995585611349825249906698423317350358044811685526531170995789942732870925848789443646050410892266917835258707859512983441729535195378855345737426859290817651557803905946408735612322611209373108485485263572282576820341605484662775045003126280799804925485346941469775164932795049346393824322271885159740547021482897111777923761225788734771881968254629812686858170507402725526332904497627789442362167411918626943965067151577958675648239939176042601763387045499017614364120469218237764887834196896861181558158736062938603810171215855272668308238340465647588040513880163363887421637146435495561868964112282140753302655142410489678352858829024367904887118199094945331442182876618131073547705498159680772009474696134360928614849417850171807793681854690094458995279424398139213505586422196483491512639128383200197738686628779239718014613432445726400973742577359213154158936793816998536520276007277496745842836245346037263416554259276183484030681138185510597970566475942608788573579603732451414678670368809880697164258497595138069309449415154222219432913021739125383559150310033303251117491569691745027149433151558854039221640972291112903552181576282328318234254832611191280092825256190252630163911477247331485739177758744253876117465786711694147764214411112635835538713610110232679877564124682403226483464176636980663785768134920453022408197278564719839638781543221166912246415911776732253264335686146186545222681268872684459684424161785401676814208885280541436131462308210259417375623899427571362751674573189189456283525704413354375857534269869947254703165661399199968262824727064133622217892390317608542894373393561889165125042440489527198378738648058472689546243882343751788521439560571481194988423906613695734231559796703461491434478863604103182350736502778590897578272731305048893989009923913533732508559826558678924261242947367019390772713070686917092646254842324074855036608013604668951184936686954632521458529309500907151582362672932645373821049387249966993394246855164832611341461106802674466373343753407642940266829738652293570162638464852851490362932019919968828517183953669134522244470804592396628171565515656661113598231122506289585491450971575539024393153519902107119457300243880176615352708626025378817975194780610137154489917210222133501310601639154158957803711779277522597874289191791552241718958536168059474123419339842021874564925644346239253195313510331147639491199572858436583619353693296992898379149419394060857248639688369032655643642166442576079147108699843157337496488352927693282207629472823815374099615455987982598910937171262182830258481123890119682214294576675807186538065064870261338928229949725745303328389638184394477077940228435988341035838542389735424395647555684095224844554139239410016276936368467764130178196593799715574685419463348937484391297423914336593604135234377706588867781139498616478747140793263858738624732889645643598774667638479466504741118256583788784548581489629612739984134427268606187245545236064315371011274680977874464094758280348769758948328241239292965829486191966709189580898332012103184303401284951162035342814412761728583024355983324202451207287253558119584014918969253395075778400067465526314461670508276827722235341911026341631571474061238504258459884199076112872580591139356896014316682831763235673254170734208173322304629879928049085140947903688786878949305469557037261900950276433493359106024545086453628935456862958531315337183868265617862273637169757741830239860065914816164049449650117321313895747062088474823653713115089842799275442685327797431139514357417221975979935968525228574526379628961269157235798662057348375766873884266405990993505000813375432454635967504844235284874701443545419576258473564216198134073468541117668831186544893776979566517279662326714810338643913751865946732443455449953997423723287124948347064406347160632583064982979551010954183623503309453097335834462839476304775645015008507578949548931393944899216125525597701436858943585877526379625597081677643812543650237141278346792610199558522471722017772370417808419423948725468015563599839548985723546745642390585850216719031395262944554391316631345308939062046784387785054239390524731362129476918749751910114723152893267725339181466073000890277689631148190220972452759167297007850580717186381549679731001678708569420709223290870383263453452038027860990556901341371823683709919495164896007550493412678764367463849206396419766685592335654639138363185745698147196218418096188460545603903845534372914144651347494784884423772175154334263066988317683311133108690421939031080143784334151370924353013677631084913516156422698475074303297167469646665315270353254671126675224605511995818319637637076179919192035795820075956053234626775794393630746305690108011494271410093913691381072581378135789405599500183542517511144713426128081743227231974298922035396910059337049002359577989975912726980925727968658952626641235605515747352891376582390259128882549403472546047404184170030832915537862402510167919448016326054401605277977269347860346886315357282069108960897252089931098008353341625983519317035338068272139796434737155155905138268578551659591031642984950637775837470735375306317633153958243938771763776559221057258252801593809389649129468232415486214549521504971445965973137717542254129095800614086355748245599161316220877619832667939491030693252274031446053662039554366726524919309384247850118357688364547464677696256418982273105115225069621082707577131267151516254898686089578993765376262968514284882646722152271684201219179069416017420245191424880121287145974957396070771231522432697069752939653749090215275378771507989871749427670328997515360554936962108551044771125281389400794382022028914032561369816069581512649939783483126319864043557290357387349772848289223256236428763556349251689837168945812628988103636372636123127200520014770504687386859588596474857287741348768143449257084574337592327291229734185806160956316151746852515121015659025779446373465741083735377875985691760183582743162621206071983650969185331569213220622872497464801025684471762269835133860853254129183444699831556232288817202711058271822116703900689650924090252590943312689162803025766683195144471518528057098745329032316552794878439865892540486383130240208818415320197240299326122661481963957858125874309519758158133239267853188309977427491654266971831211817334011729222474087252245479634677867640284805975832937524731938983910794677408597540172590552650566241057221074118192159497534523437510494545798342349154872104310682723053731324489484125277460574279799397529716440694181169419990137131051429160508925106947899499203014112164443658548626431571261401309410129891518539930443711832015455180127089495572714145069097579708223495857312871925833454477335202364311092420348429773062949956937628284664332026878875671205867408985249959123088773559178787904872552793185908967121642281801779428421561710380731412253998142071824766519823522252809019889344968126984533175258435942756187606269877541079451190216353617572714368787097304066196587939450782136590168918056343656877341247918644980427249061729531373156743781433253386152697627784547667290693081553244719191192653440222071942134417614032742151556949242889726082767119509166137151215567708151121367197557258716511643810636252450617445234530216715866191504694821501656201688359687201173823573393567729706838335977928297613990968975601756177915663110285621897750992604494114946024787639914124662004142280619741742900387804616636653716253576720059864546916911633108372534196989380782650590219310879672362348485809359124299415322381116149035409934698534457374287214675497840418951802670829020533165877753901827703918145398863828783864277763770798620917979487735272527780961435859650351937140909222449208534934493442748515545479871118817346979104844521508117950188139934759449563135237033464562344419689916804291344235324918196573445254354510956767710439586281083478839689005717208486262359977817595565181265742898652301253233014994340761046115315459722673211174641713849586932572576696455840385957059656533379226298383956852557712405617686580733300335978964504882030506739823785715193988584797542703186698201333989627354547949228268071582514561272162801412251736812536445513243886695351603169147953084601108824228347295586977795030820047338483647106106272206382791950527992152040073016368363327745200867204669261045772625479930468570834719354585610792945425353985236619902040703223479835942625517442858172658964816081876795199612225898417988137110004619121695013349669373287661771420161995273410239335603297978381144695592395592120540245479124147578321107949925104186530030377652108427096386218416799435348149315412901996577088894773512032865882881168346954519826139295798312326822512174993312273052674199230194951174829894857722348474341287455451973647567724736807394384862643920341505611924558388345162912488830625330998464412050521514942795466537548715926240138345463313622840317597750325241319649692202539953123028807241133996180223898750948047319895989188133927181323563783427986689661815451691342597955120445080295810415385919684761916437222647716421037624034155544336507463233235192591520421320191293212643268621255223907260979344947921344449889872103508546753147392893683731411019438042009513077320573672425649889390453045385541859976122939347434417557043431003670197084102134446379262646128486552847701221035118774367152781773273959687337620112134573305193840370367746607234988793063471835826766989426163087551978523345599313393642095447112322247572834686069017140655960794814121833311527138397726765264216990838815415184807627132859443776475937232835599266675820269258719106343075777250723510899586481567005640166067413281761217868302585230536033639481415164238371832102077455662749244893860412898582490142596726773327557974858178737391272126730879277363995941004185538183670278350958289310347218223180847256460756862952061425595076065867553053569609725216614444640142134331912705561477192658315726102118975398310989986777535308252090556937530962373430274744348335519201354933448628438014631750028617478931961358616060737399941938392968254593133940540476302406859142071551416919956979569094483106348673425059984137008646766171265870658411481347527385362877315975297249730464373816496062733627316161873896754621378321149742769554918777840172624229791140832848655343905430252474680821029656761355261782798066480325273209258342757444696329106788364709463297168922655784901768271554669744161995817499363239965918896182808631325383574808320761994143190975352716418849115405102244157553911468381738905542722666781112292253858296477372600313249308073503257442075703235149082486762121884630236057755052586213451484886634488591927450487483316059825976271056597267896115926814422951839119485510021386414423134348613116926800481020082950421012356292501497902809257285946668891624499783347602232035594297915354215028451790099324178861938178486217172006303551022285007730613554064549377177481497371241602945713869208904565536413337828689287016626529289822117310484907603242378969519287584876598727043936169453852266289529517050353481081760965947875149519240012135433131474250543411592923514324075879006914459965626837793841576457872565051378513244532343466926139866938436445135024328614528693594855433661612449900210074386179940088782406937929256750369939269037306760894440159394878232964118988956924321118147735427742746837787666890679166316309154788875566665430234123968580898564199184925558728228987504334352467751311066337802468351112595116461148560524703805696240305740851868436847606691218691804641791433548081417074664700612776153179676149372404291871893476769969198074843169473934300439133658325601556441917566231697599887527117216481156551930489984963725199344672430311545644746887210490399611241326896554968946948822588149062345372931744133146116455526099476749609572958530357023515308549413506515930988591573531875209018384669801649314359719138314647896424796236709241760625163345934769389778928578593790770093915363176977488367984651777482849565524282790647435519709389156887059865352843368090469842939440302919433585356031986775692715619598521695472765880304715386852747565256299679664329238682149164841368809796117195946162752532754861706198935378390640720738124360543751486772684326432159588919926451598751028334645969347726918026164323441910540621516504242513081331969332964005411996794384879661739563065634211278586765282581391770350446404925387371508315452528938604376351386559674574714946274577019075637219539972921631349091507689035475671450573021966133447420983657192257664885469343683158078798819705511796426707508647363582301163186657995183859925989253451751942439103124528644856704303298771564365511841696928117031454955586695937684582932202157423247066146746451242055247033216640764748641994719272153292124766499755748435912673878733077733173810430998117930479861323403380284541299176119307890322016568400366486856968779849513388622783961382239763755776542118582619685094409577356556194514449872726707693393987518614036887806693331101828231010345607869996812388160443141195796219199851990732765122169291033072035779851274855490530781802549055475219344855934582518455534202625141562328198856014418709110678693327155921818737971836275954888573623002906980795104696172639660357530427311750492793314042425580479503884973554069737445779779471376835341122313176638409598891013676387267294081311685865679582399491882499510127298728132496963793148805699551476649508132891480451669505869905783577326261533595143555838761716610948855456127286771409628031877564767928416243489916431571343120725053769776367373111043845756663071583875462882293773824764541292561982523297521817092724105356211332373932363927448020849122838969658989873246273207859611221363446892495517745973747831942970534593135048783449613895227062746761533483161769585118734959788826162241253441690838179111601467742734394713137933503513131727658101049472078125894252897748157468850197041294723130320521167422890154342301989432164330847934845014222698955900707872347509845574351005243122068437952575147212811939756869107674924603178133067269437423969497101044991813191678273873828712055372065715158126557839501701361261506582433885918474543595547038972262813122875562951802418531888408401969079139899281970704174619375839938237740621788660719045876548398696795452076892803216026464437858514976636917090953436042130545722470957623178010448852011297933439251431233532998111403326668793997181336774599389172861586532514113450322630323771346921482276397025647300757426082482654534671262913539976131793873082804884852256801179196298033862601895577975745306668553574823305353707066211335306992168375156893717943121710281857831696217573798072959836970832514201985157666372050571134612082646034381930923314683249902746898558690913245216580375233828141660723801923849756345614837263602568532984682990162238470517493639607959854671155124137845697203314244867924734184341610803375173924463963122401500071014644692572937300509157050056410498771828721923395878846425605525742985186739268924830412583715936441353351391983343177878652638075460500462801705339172009668271749804125843557636708915662158828434288341979347116382644937414484268924615291313046294326306255890894944048201635774931230068818122792526463573147376623714278252334578759295967587183978696688159871244724172628691486369887569133730854661516524095935014601518297854049309015377235335974272420792730915242454034656041103784514341151414691325120462259083347783263329967132375512768208218211799247089612684215564314045108986703833518767116117295368631065888613908586578243553795865212193890221644162027388036363892016294959342764653144671814383813923298242011917237384721625382219796195135794674856125547361456971922521125621786120925523278603016716369284503314326466731194184587280667903248457665012811168366142491298473224995319405978169280789642781604599143605920672499726797144710973815838698822988660439397658382565366741809741744257174349145434999212145179930338542302291943664174713329272976344577044350542435959300012684337582726919003856232543395072455126713247142610791914549651523569980975469074618818199898832856698107642480368791389839869913791390936445263215209538704290704937618645930961513056327733029644866719082075232069155301637983887356624172533445250883798712736459151951278592992156628715541655943756847636953900194302619356066675078721772187736277488976020734958646029970364765906291635244538873925189539616880749165232210583963098727563698456614944998959015313081354112356658395657723675004938674433102505362777639639735324048822611397504251192612028746754275976357711954581487449623852490792306261137377259438241955964611610986879956256549378169757963355392598493587323657459445953982867249320758459744661617898554435789349093957010236736905892012786982717840429099259907473299389451721927224508865892212714886972691259923361271259015027601749569944226366824237268732666933152248530772265081760613364328720584631174514692509034655742743361480369957831290068815506754189392656311216876296620934539723227751777259292980297328959811194002471130638241151498351294271137935776002271271228722784255061771680286761227611156982262097393834877817398847456561742180302090841745598173205645714862445200152315391891383224187808660794899163416620642537454774485570100488814075830228079989136345708282621885853053450973346868151342492150515545912408599465316736605841524348528910728349513875626312177871049880667385377243465522588389249539668996731363447638529966585239748734631468080679859994699646312689666340797359343534821073345940952246417127529533180303341877256014275789781052677499011152537826595438777121666341862212622828058831265120771066765082588293400498952629567848158098374150259279283307428270096085576849096137368040672249649321308823757123905924208165729665213348896070566845305916869173352777754224338994943141722650651460974122956912479662304037762659567833236485465420743672680355286692767974730362695238109519122729461953178464329165946967452357238857815031844473458639997887849418639185127736307386253765727607475641133857919646141838514102635456667979019886931967792738519623871644285927380526004989186989135455965751657252176951426628773829563667183256884642979038975664121235059295153861978671919691361731871098921078663431509801568518958520521517997158613501592874634602937526192334102615904640535536143451203080332877104346583876859707939475457130297211971323100582368871044788994751284036617914133947916666923128258422232786028366991049818283759272025575445757466664927809491871353510302945502510132369598787232544911223981711765661501051671248448128169368805026466268470373151940453538954149469439644296102796884499958028511433170697558860265596862293749190208507365694689723518685339082487687849255595560545366627280526743646495077042854906833923964631409136507299887190424778452972478727160722210188183234370106257573572106157826281915490398794775813696326202535791815414066312219875744617764161083290895037145290355859589212310126306515266153543506819546669975152409125225373641789965628952271825312055307907404478531736738910189996946548776187498882156203901341768066970755737858387800053082560254373849546560232635319697532074700319875068575809716962777856654153275054869697957782703820242403482343905586655777748564719328710379483899227657905784332431635416852214065066134569879372993553848486485720777557622972154239068358561294121849252193789965579764451734032476191992083034568799249720159194958637584901221546120557451423513091746256970538836766879087949036920721491227758046149396897550243784824242266477897646043692522154610902926382763623572923401374628982799062620413391254464566756313156788725121927803954969633956057446980094764133835755009760483344563417740146436894150156308313851239391512331982235030234760969745214998263321660852813382933439124101816042279356698648363797377359793083424444671918241436937162591905203570496437345826203658376854229184757658054636534582547515391951596920970731688747165373198016692666532114148211605834682116538071433274553305195905677186071566445598186831785785058868336089555367161821347532824737692785457439193598971159937367815338520199879876131648323799000488398272496264830236951885358174894802727755693362696816505992645595137680150816389283128278152221151671082461511222699969769649752747308377582171829707468875453526416142809509832727554311244732682774570182341421523191494338960819197633943029568546130607559410431742229600135625853371410586078491840972308601093317529864744271626640483751250113817868591562180108898376850168948321421398777196578144922650240529635422053247553297981276506427319897633631431223492219773573362980838241846280259229938137783510396688479174155172527478533444905343816430643279586377751685764362710036481378072451424378613393471390262896195150057764283473577712816725943652162613836761375010225970464793884257170816510302098917152854645224840556884736131639024138538772777050261108372360563014507831696773732545928433864157013510230524804665075493879087087842563785607509265844442448726887032544761053933139204640249989296422674714286137427004545490572479216299313389495752574217386868744943482269412035987486751742843035437427249644673704925366712463690652211635561772166379432572099848924691758184184971828177410628556248382112555679360313382262456435514287585856011474320586822651172679212541789699589056543645603423348292251893531842621891799828142858861870531582304259408289647238952890234044411390874410809359740670027705497955135149063661316636384157594455379140146433477769825952314175287349559694200812823672824560711575076566284299824719273843943398944969252435590407598182946769572042735849737689929041036217426052168920131333082502175117754272523989746552248425307351498043284221729739207634865615986489199778433736360903733103710793199366155834428878785846256980571457729895153027586152036773322370149795763287588912135837253356276535183263395246048382949924589222145882157248210376513982249855806408136394184611134993967862692351872758773781190888058641333351332397897583243343987782185116164967206148137651210859290258182704600771459765669750602531256516809370423289036915355337892506800945262914585613767470850585164679911569872322297282007874485779634316597625993161256128094246319274715561442785841640919259094556772996377537577769862824918213746275948983617724972699820508501145330816182272861089479936753315611488775031932731355181607767492865929096923021857609728594363474610852636370385072916748999592429567952683048893939312536846924920911288363740987147585447203950047881549821438957241884611642312820799161541935650412856574680991394841138020993681410977530864291680654469629848483492863828495988215511134814943252224142877327689079100854583923588215553638755887630535522098387924953426324265620135389550418327431221842587015704513948761686881034438041129537325736519893359336360145694558533675836847165207754124329713899689196304739504656606574152245123657253599976317378525483064776978644222046910298836702928722494985592475248330834642095155704154491795239130065667372327184154407181133041417620177169045598409926141942442721241059657999394072033034596910170414104830680934296541728893502899786910543228311425151569566027359518440407282757791128121156826898453372218052478216105191175358698292266106987141820692346352256263207049248192966805818119129711554249686697757467192605233796985642110336272692813276844417726521209096374141803974818821600847945036292836463589445495116045915569316217319744353199157970255061828411375343913146764156251495860643012460746041543840533135204196434356373620620171958627467230393758751893451962543437978667264219894000942736394778188133322309122034812839539477415548253810493376360714498833415515599909716327454706688324373393241808348989522259218744171793376726239517729843993902299318037396256233016801775058347361661266271546627404319863762362772413211973643025423920023448950759391985780375266191301975337487492525872154139691316543492361488724599469678668581054246891074433572718975025749010319372159874666283476765272807455816267755125379706834198005868382945201933882764138478622898969316381601842549930485233225046554728246754382741119876984526509317127228811986223558251752928055163147396847722795972237999945370438105117783894191889797895183155050163620339643583245879580786486435252754207560531782539802702675452087383642678412765656187575310717210833922515645535171670098818029358954967117437197171077164989641389783482249761202612503207967418484739458073396780552474117717152189973014641646384168609878297691196286420424934576218589766931642315171649553127950028835710992768727572714997926709163524343544430545527812347925781762292822287265067777453968378746320113658759585205751804888607687227648526539731777137292401569966276828531111827527311658605733212399977891919517771946137915896842269413822646460707750144436499448848333207890032394178181575622143505454677891261725897354189253963314328567780154919175893406823395062228418596238655282526478199950842221233034788624802112562821868817379519631375492642723375435389837869245714021168341171363855966233959669110064194545244369889381405670492708995255377991098271930319024388459318794412233037630223199805545658638594399937279995742132854883576962113937223777119090406716225224109612970294704459404661604007774377497176107666776072959464771479398585159435114474827810967866781698768123162827478878693769856633375118766632372373400969578835844542215608736081071891688754881421498487707633252118714634202441182216988783886663889197173653282036371544330092720694934481035949665484113066126722058164345088201431249292444832152815672082172499802137849261315343220427168616789668240513430164219843413765122808095131358526715512931852251911477843900963859935551268597173389180702458227816783643445229518734920849857283048914028355657377958911042792019278645199233349561477401525545747127120315884276897944068102390936583488270610616243428916291033885675819950360122347717214236395352683894802046811418524514363172195047568215626434462345055835607905542807130886385297798929622143564695476602102742173101731004524546662547445385892174043603514669477376958424704975211766572234216763913888474959018102207145209386363394337397917001645760155677827335987811509061697277978035326678371479779772127418936646310221126108375380734554158826669821408704504791023926421727472833288476716314789635819682577460419762293501085451003028963692509683109227055960136071257033840298625729846974908383359885597823910924158419843854120625424054571472482575301491413892938775925154027894045868671475149267918641509704851207343484969353414990647442032161627507288979785531507739111983931536756565571779369328947938741807499685212836501469931213892582095524539943441328441316692412338289899410669138551454027205738995826545405191313362233493688643205608818617754664944919296805862892754878928086637370565296245867403430833410928838964618853537193776376295991295965303542824569554161557243262695823416467021866651772398473584437864809767776629576899320365664123948433992708884065603721549598277312063322906509403170511553968229096840609112375039841267942194693211697231599977833647353838710665849238283326167157216203615913175941792349644733393887542556603111695152125857138697876005673363931478944630950737245688512508387135169877777226618734259721558490213748186064623747825788825230980237358146856858344143306877796531468786181011628714348397711492738447356227449750169678574536993532854033597977674877151837792085649875252194455781193574582244081581829865986664302737855613200168518883931746448245391962633793159833416441850116233568881169921314672163618952823283253766703881192227840612381154301350517916765710853424216250966263849148733237237825104504474928653697079759399125751336790397155644378503721375781521944617215151111896545062157823169629665244772734592788619850241901742922339942622307622869705448034552641774112133333979122302036233568937359616966850164541211919356609193927431895401446560414477609528686231155423474636422424985885822791233519332149468743712424242402273179620398673783410506097818136836189374122119506720925133676217552854754829890651685163438139303231842278592719574366364817830962596799668658802331157119416073666914579357550919134309127115277088597846535771524235219616952798518379846129113164930365496712405635598785003906591751779422194665217581907062315410509415654963253524360142668883173752454047378150234556212219725458676161695993518713115926042788007753388687691635949800168422239950682515161468111262286395111519862912094787854036377748421008995576574863925016807390814535280203393032600572265293006781982031664678599860537502347576357507602382085781158364702977354098738948222494039545212836452539757246651632750454793618486268323174007738481646612893395423696682229935828559513068072493929047293574740510953633265522745289048406439165479445529883779972518242542279121234223514245608952355720315516624506423563069170568939839139972521888234263859110761698553909541415525664522791595445586494232383204891321099184726653978121397983586482691875603852329549259831842727294303618812135865061614867222388488334908656515175219319655107315404696323877208117641060467275575972825993145620118096942358757599909636270639478770465074487882696343579749719710217852707805305565565111656643174170112448566325175817595150562481372648523294615471959166415104828789287288495111109355781627335493981448771098236993977868687380767727123894444922383684078281841297062565472889962454852898685921827344767527244918925460637655309108995951108225403938981030304666883789287927915243342901314923263085974654506771169384947736151762165142520054572617794445417469850784295265502866292645371800058058241509272387027431395779407796224188373730841376876024065616483917473576455523531511197679409879821403129484478849478299044744151581445216211086247320718376301164159569089665366479923838757876524574846599830713366157928947457118604538070689417406243004175894917581982963931969332492428326986095928530595494042591814496195242937301501265384228654965152738092492063633434487347861393684691411523910801552749681219829857671390412172709623786684690756016376664157503453335550876183971979389147461284727513578033362232538543334794404495676117666085399866339529889516423139940652747315971795771383083521868665594801458448996711964075137656084222669745253642616679021340754652999623493940084933420282003547323349754099939692836276161709630137130434010007406921037024720392615131586256736977636793482310651615901896216286054148453554411628286251461616505971672713592459018919383078675585882887459980083047772406699217791390357571916645807477415268262328226312351294354385997411495308211968257144822566005310127973232368738345911772921493237818664906557487184379152517805071947845653854140236413721536487987590967054630530186422267253692381361195780087246679413727171130347998416008481825955768191411984695139564778393826434071391944310228669219410387645619643669216564862560254998617927385840196091611036569403476382366769745111068824191842636950653520849197160102048127892051468671754231936882032048201636919351285535209830325376288705253512757264141875789037758563298177182704165340362486890823311508135100860385325152187446444991044419094278677985540766909498785281100649952687950586881525049691954641229296571221961530013381241913751335789224080668773573482814942695613946611477865551753760171617174986484696498805614909863166085323971408473832509558816895959569006666939077641814773484671994925235033708335395256744535414771148065032210178623927356568947331913499105793432283955951328772553018412525301885303740935235110568596984035447589347655379489037403928473893514307267873175455900183094624397919133899578200146929265724582921538151961844127991975834525258983323354011406459072328820297398795067266149338727715548129470449203934082456549828782166574033228408497991968340032966384702835402289423695844917532843819819297760362951984837127442015478887779293428969931440075901992163265430746979252418179980960061248779045235527284099491586350597556831283037595361272031422674900663303609734350692351197749633812875288652466770772813099915235633980533673204666230842098158443938564792315502451003543597961565075536593888574363343215610155120917825919229223362166371658440350513889584526146443435273835692285899291607549688715835088879967224427653078906624617461714965331410930392096431404690062127827361540038301107025528472806422199669843064756360944134342046372783303534035760089909353904657301315842796468402578927034675083135762472452894112706210394787791358192548282092600429413947805413634002787224046379197538665622678133589296711653122984543256533066078025716989062439411874903076644459262434816327954932422249556184643414767848624881703856572744180657639673400796848105499829458841460468315694725045861527056370747651424887160099199181374079806630742965864644597212018034063213198609157344876988919311974045193402873407746270898482839442240522903322925275108971217846821714142944226416874748724439685740719385824208949148638674912604158816596494626793524843872530478586279671075738039732458123789326673142577084395809350972109712253958167823516012227834716186289639144249665354024864883065784174160150344734210997874253407763153184950651325563854607766736369835853327096374155681743423011939917921914844672893919290736149568036385646210789442163281210357235983223421165216142160117935868052206830334891426885289442950653561678741586037701810393883243518887144516378307500663258339675992587165360923631774541759882258877779945446384368912796054118923625170766592285591989482046542990794673471528312047226616020772229874323557559174026420822682974105553613803661606947659578805610094129262699655953699651787203449604131677120507093685429148811630596577558960958610000835560834561113123863595453286431893948807845744785144719479570556734724024982258588475452698571623988938810795594645552480817559496899954080352671706163336038261516160425479563990710287179461385698882339644115317546336099809495345523087107746861751607582879656257022111889316365237281262346319967297148251386296547349366699608287888345649552943365136356343236705000411019999088603589177430392551693922558533479329469353298100634608861554583349568192121134506752323304746419858069161414693676334024085779646261137948408948385608195748347808421920465670485176552209586939162233990240432004640034381236917062364026871914568792060132887045508490729263096067588579731400545888728188754827489546071417823194981797858475913951762537485668014041390874516559535624675058153791967023549759913963544300680212715395487331328499702484637469798874844731605280148030817927843562827092241728896371373962780149949076625564056988056727929581162361226069259346782383904662599132833426475093541416391294562304319752661192664791511345561662612416616982675861105624624579246107697833685786120174867584576575883234937519892482276157593912065076550271494375629494418324974707519492618905684062078672023709863394288221443146876047956824172954134404340652428443639481457974678734715127681016857434080733691054933957212811025390154354068745609570276227921259752239609259253907415975278489465103117064646708771829391380319148973170340259492979715636455372182729642245418280148956665034198087236956509884184959388737496081749209830731359420984743984695492517312685011725222378936691651571511350222980403361189997705165779882368337242349638709822678058296382170519761499951163636087152161802612619568519909144462891656699631721900958499180586862482835952144213788153345445795166912925694145787628965940887027766724315720718276321551941416903506347433645488352369445728505408759864392865625668646085903333413981293092806446886872689174634233329869944695915646168831749920455698114763812944948280262274707032309422325998509459297710785336992430432291451344667912661569604926602557134582866743892531704519977650906798722235700930780879737123730956131659915528375161631882667838293773843893859424781052706484778899286312589299562799477091675209176072839974651068892652483210063346936626961093549862855656360261002344539295955242566412079734415840757590695323691030261345285286902557896155512736416064884052432435152824887222438234779808332417976467779553126153677052577382765187522556059772223211542189265401931827861915261363668138933754913150579442318680497337397802492393446672569593742887425349493961740607834869775570217039243521160996118532173095229211458077038484546859675939295876774381245160206025742665097938622829928804907517627790250962628539429323338605120386049334096463522849665851747735221476993420837659444403266387123996688987474661103539911827447338489553187714158967291577129846536257345056782254710027429410952379676942324768454981783185076334585731175094175242229515397914687418041173676140704226998575312808430328182454864641567609828221742558087547661762484339770834909873047918658247243739957441770323375847774983087943506543973720473292553560167097941180727673191459584546403575422895861305188721315069610060641855183033574593825326025480234739277608619183577889072452133410495153124643075817734216584081919254374058269247329303081923629411596547569632699415296944272153733138748928728709384697351831869251308010419644823887676448225795652120945745169441211934590228328738874716817454261914090278953174947985508711446249046962944867865228270283890851682218451558795649663278985256094925423689990197419378879876379556264643733082219124238008499285479479423532504560544191780866624893390316946365077102644657721048875776848433266985509089661429447388978976874058538888334969843426774986189581869356643177472997046753399205391669147265251404236139597908888989625633139142443065080727617627878410376504226105556604664627422973509432363444352247308581964142197683109537231724310506984250547988155650575268793687756303170839380059124350432487264372963501719480896822116939426721342603260973360277617395839494513333638065041449449675496307120495587573224367961363568846777312333871441812287421122713317362852652848824986165293146785151907977054737362841782077586187930785856891795866228685460880053151433629033041147883241863135716173961210857890522174503341284524395553295589187540992036523705368393517970275768701790629344186506444141077046864754843951072685829578281166162334527288284486662060551773199823880113399639464960765630104156816923293055660291979915472098265589682774615462441313768397566198667332524178177119383365170354333243601064465492844371287314293611112623815238353156199546381723851344525327831460188211729799861346727642224620129871298913546391293666292173724783444741122814460240239286189741651846275586747625614980634367444288474149859884154681971229331497980548762496434719416628013238163516130897862860565174190810428855934109160303657609880431489447859396707783882430873647103112335933970865002595913318812958556533563195209014868877692473873353574675442936304979158261863188057639078392929082275894950167159062675496497596398459412705032612851653491274487529327152549644889898034667686691802211228659380168757290943933901501781682284273284199912729991239816877286280607822868582713572417621708466972218212323001150840086922371744465462274551608599053215834541233050962184359074916596641187357529279972256494896694844909725070447986199979924014628527192528728994171384665289944894331604548490335706985551504699606368767021234585351526311140798308743428014251215377477608686725328316336476374634901916458767492699823380198956782223942204567456544676389540677095915662504389481730451514108826177831211977697666683755121492461867088449728339192920421083918711618413459916724034779399029942538225657357035521313371794496393541279378388690175413561958031877837422989325909279477513525496552670995310175219268616655618589784939755169709267877607701805446762631785386791257173707748298631429346724412215584620647482068076888748199638412485368136435634284765778215055500700010733729800140753549118614342644971283611557663584130758843589311023310176591316118175413084813704283276158839085779932155919178534675074292694179501665349737035416999787311486408910383268171971493453653694868636322141540096967677619297815895760293542980154186489934444499763598573797437395965190066978299797062283350720583856502251493681467944539332019595140044400887825605183707532725527545635444324994725744210192953673960029758990108678935338681489731958485164685739707836396277367558702630178390979820873521317074117579144287838413571716516812118545848337856398647110180185317301434882083286185653861808721261423452833839544623475026679277356402859479353981393854883320786250393514795689052975242412504068202316422979862322126697385777404408693594822209618464011527569638697221764055915646654186235792641347389629650564859017479633169746209557317824443625295522501755538692299752320392575781301353984816606607593499992299034642123928938152610150241422665853266779459132635593399536183385093014220132339176852147955066667727289456457465201853210586414330875115318243516059529275693817131534631249529369429062571375227490931525772761844821350675246009801137788252836816914373130490186007548817165848003907172574134147549954405898953755939544858279175052321146541253992994508216755525627188388466484101128403479746291430776238656152339888216671664839228934650325854283834028254846349933318279707574476653941240558787062097190641075314106065887085263338399459367249754034314723108764027968275740983597627263478561003325537190477792771209472311502035504764141131147376207614070920418244557827525395515643926538846756792089857638561096982859818911865477659917196974579179744655949573623503018605272651295446687486565538418906761981044267772112562727103541288532718459651510584846685635467442026240596205295071850387635748385322328215662464426114666347210629625216325010267128737279137946228614563844263623344414204579151414476683851544794119984455886099728771524222472516193252333016127693707011737730953566675440852492499640529583422151943480452251905120431085698116585496731621704253937187315992936784549194584849166182025201694262913306433098827984258493044363855767812823056464454824453726487346724162572475814441163427821274956054897181191659459094174054718942756142595409343478991322071224254295676628519809791139928943996457581851606303482953154095312510296649406087782524852010629475622509862486420302834674904271533647875273640396159136171921987226751482894255538770596282321822766774516966983830202281492559917548223219867835246582793639785439278300829880917314671291242083583179068649708738898417523949211956777702945177701222646256293379255794942454577308444717758175629952852499578361694151511881395938088281260916497619723818781569827706520231993774928735272973587734400570221597845822363489213366380703468547562475184318520583044594025541089554365420388886550618782036308789314754104282781273767482377284385779431622211710334596059903973897734605480110668886303539375819836566783283867673911435214471033768572493657589945007154951058251660469491447532582660544617775765554174183042935072770339681566963213361496172078116260891044333505339783789792487712358792828921824976284221531325918745949195106619014736444888033234900430048691443793482253245135291109116238292047193745634125431833463553818615403733565419979686628572864219929786840424802679376156084369916564238762431494829723748163647220996501954127723104466531598363597155713329090993616994175758968667630788118741927601381498171768622119538775280849469920995167226399650348916885952445127230308445128664506017177167541978604995706454240618777967972655880663958764956214119452906227145621084146781535188891443959354135953553415836565782832631544425545328676898882635818483482426137036459788402884595949829365991092701809995975931554131894517927198688494911346813367735499742195657165383922944438169249754646617400326531817698546539303261927558350712188727916835883981179338885869125181217986369578135531394729788219357224992791167324771943441674948667885445531436899695390843437921683825874572517290830844636489524845287891254535956653226659583105015346777114577361780744144319517367565830672727179275668306230854706836378421629822530283668834459907681742286099737995220335953599447937816570654897611466125364358650141122363018513699073522933928891200186261884818997105734662066313578334394665138171141028572532112968465077682492767463837711913799564103320095071529730570666522104880827366604146058200771121994240720071474313482322309963233570568385821778744351704032255143613294872164700849417848180892303945825616062697989721451719435547152261536332659940837076545729490594711189570189194388351677018123991800146975638742240078463725988255936854689620658761470668238944549615449668262793424686964468298181854653033885212881547217271250413262274226379282233342893157228663327463373770619752323984249971514260471858473717676298710556896735324472174259758703172319993261583489595156867229979631641111917531064310828893463393656319702261661421587400662233465583282850363576759821938465119816215689449274225076407032192178051054681126653022125923074388505153607267215894243886838958707736785245514441827186886728636907293680348043694950061853671191352539623560791924108135877256095804738247788708111665687727594765252155555554893291646915144816278169587594367580866649564795412892098030694072272628716699877019512121125467790748164545890387374532053377545512821470269121391988875689181453253379033989911815954682094853328251758027671968736008957591011008873336308164812693776360354528412964740822416163690663473188751763219081080078598690414259353125790891570891022225306344525027799963378262759371280212579149829633888338946058364708192537333767522397517178394581548635769450409837548339774692821167071775920663385186918381886833954835275885978546971891775681494391084503826472731352485569385485088377479348249755631017901689903636705191529047927349711691338754751532613465399227794426644065588217406741393382335073979778034280086251161100949651364999789057990451480491873841749688014263836438522651857725977396781685294936953817535253937978688436500892097822340180516608359976424689961330669723049595724536339813512876525000779084535263954110151518759438129754840452123463262678208434421711538219134543829015018252430308297524740377203109979662301616557806308223571228516062471940719141965843321510727998276427305880238188418645891230599625120506051695341169398503169333570907418756856017965841797311443392937219853721302432495779552525349064249585713394010718910464875684176147743105209496093775283275010602548772756882257675224967734598125651755695395693133243500628294179736283993047814542287320574989695353368480919995777532818835147459694804278587924492970635590945833818981702427285487249965167744626718112370201971487767135646131638317861546823272577703469852778694142729418187508399879161473573314347813977314766478864967627535853790841578934575648830659566427555952893778570688458839174938447499886705768201690914582467864253030257764447913810235093380463897469673392834616147100236954922522054443472251113328106948175675501686974963871929222488884469029989276826322403736366571838046781556781133543683413217818051909652872145534039889183295029416472121589115545486181162149422891283597632271446246192687940294599602612019847716477503401561872489877680116308007899357696328230636746568894960111067732996289334866016408480929324752352536263067088389748485052109626724041603944726633378901469489320591576402461236882817397364519539434577767910441179993327721557582917245164237667276093503116056753179419114923479900462966381130984787011514384414382819688838771422602791749613700127755764097887276555004172110134533695496125868278440425196016837255948631374804542484212253881762748593744628230530619489754991991684932664776887055416256535540683537664388837742402922924969335112166347241726101264329772223651919399851793510315211494148058721466499192963585155474710321533753860719101203945925227675672495444660815849432610362633597520478914247834436196430748867033197983551653477973573228147457827693013640180212905296519872213473336161522803457235952255526140695566024744361777767154482422924584231780154012254248202364138422791470637706300281975085453883897930383585158672632331757762918210117910515225751591527951516846793836531399624565133394864568354465495596629615164719115541838056320171227575259646424054740771432747702595668853934319130345739378543087948318812262376687625516568528770509233913421542299316878353575034510696282685261669629128463481170028609481907995177195283748566014998709958681981798202776215254593671211521212260241172632712196554819156981263684385793909465281276322800410394400824491952110244235437735509833982054621733481795482961116624107588023798941292318521633446694913533423891312874849261862465821221593740217284452453808345670313935527542093620587982803031990619649336624264332940882549861137658842452090148952451841735746305297748424938162884711958467312406755432169107194232372395921285081814509964352889190482052056486117867404393981183890340552978538517521153985973801262622729316155475719364730689351575499280292660183636272851986589155569412819961426715464169427857151247815875621657446945963245375020283032484410645089363841661482929726129292936549061767972941657945658114842349442733577511236970676203906645443194689679364737758190062098732870940220355198709597453706749350619279465797556671344444596541346441000392840595282450477701436212133088103222023555513858042965486234428430850793121976613257688885385267336824357733804687029514026420960477194430618405352009332860996349276587231846106673665379553892745406462291721002054102588674141599406594583753048824291277958655678642879932064415557468037231665476851887906499617980736369740593515984127953207179180434376131285788253499105059656538886332645364597713349395317980285191716260896513434766256337754699976334187157786165875612370141407271918329135548067118671824569152848289521399821399968618851942245822917991549276194250819256832549662895354578455591994285704655964273922398928757265142045567218192852514595903762697687873312419650930535766308421008442215792057850381479116641855726383282099150421373937955355896497881610392186999528717597735343818443975535582975743527424612602696668791140094804715623611505320631548586129947766201884947660540886642209851738822051316138815600836760831225542541455136197843654348497499686082301908373687293022712836550695077131199004832829219755383596015261075897127563162276962879445372925583761951566438482362044845631684911378579265819457104594674022546614983227922634717168413433229126578415434354434276369793183799562217128401758709436101801924195276162671506793603189540199197483154088747962441049034125836065253527694764699879433234964465538513473596155107953997201420947762588899885125458353236169576326150536166906495802975205488369745962012808687471769666165555442842706956014702564444968661241268587957703918409091339329547653934649221753479767335178789122613525154445195280781851555840253113667092281935165624766188733734303506597356531087576694636057822500743001252233772636145228146794295666582874994463195637775073205813584923280007650260646669211980598564594799175738506046801840195521655634269729145635041489829430396792909449495443213267949857687997702719689951062227386916128553955320585130374957447967457376917198715276833626812421567352882928625925885941624569439221910784540399118696773043271992435815502342912361828826710497509550687177693724967385004112562750364848474738331146653819196060235446808595835642766839846213725145700874451785773598982337511337746721538514852793384053775940969252188761844938276770322754891198826890158320739283515049204738628566366974972396894577659544486849616792402874107890081386181911781706742031064635719633218324052271114831961123178661119508998109114302886492036355525612818935012629166413833294253821589230557766207705289832474139147705326929104956540114297653696951711363981739185158008676158832828944264186779644153693960622836796572381239321897630025384823959424918589174301913740592957996419629182500523543818917159756533716900532667061371535665449501088918473613204724955851504516565199321391857643261764777441797244565888466305273594134427199893001712942250775533473139246188302139973726741053242120882981514521964969479732239470791927249480507573256491240055881429635980877236213616920661618807609723898387258590985859126816922526392414692849666698561953503167082852166921679018019263216478283771678696259990347991018533831271015901727053106193603564429653429558357190653533481010595654597935426957479815336837794649005839787612123456274404219849619924655564812144454796705663443178711471987071026280458465708568719526095937533191936361546541231204341348577260429383933199692428390641729244446914297448667011073416299104983194534838754275126567481217879226539888277188456475285085778617343043039411647284077245371570679045943303925026173111479847879352071991957472197572766445344481897395229767329110612973915388393670679249852455515717292036017204486289192219013478287799950507139489998537298692142505593857412690947099553586726073274711433826154657241842306730566136004876251343215652750345679859920991723602749489231175506313677803394993260146875184486320830938914808172978182223940744265616947454126660971027106630819846588750731724693226376428702529664288392896417773327178402274758781426380843977255952764895456545890697009746825167648859681101258227593136061108732301368416751482596554533950447417622873887347436813494423979667181772107729520186755356641615965133749993562487683907247421758966589133786246677841207210152861523459667421725041400365886317071500045078529322355194187748995338718037480351407243843230943485933641664364808156743165289533083757341631323546273487798591950859169602574717568888647592147071866247971319864578547975248960540288894411431569683720966295113947998632743654897959774564626508635998586697675123752336543520386843215943098891983527777405565589821373330414304485554642619475775210470502661819064142831930513147133117524328901175494583321031464867958752881607628217187456142273856295779806341288574864620183375897053541134629692936324747173777421612526255729594798652275648325048212686803371611354426272879518649977289880393534352980522621524739347320199161587914195116505661837012545123105354298986851459863934273875752721591346829296141442229928768277579608896217584641277637243612774779515047344298757864398031877231913834224306017841473782888503068566933996072856893912528994306745701192978857396231208683123217215800349580743740344949905321331688712556290869656822205228452669900098842955646344263843769345970877808820136784431726312536141716361589511913794894115136546644197427545534886746615736891145754735544681591250532092819164712208450291958279534484584562726612571482306602564345693324566249527744668854384361645932510062038882288731816719381743073613605623677912588641855198617224132734643368152681622870411633644661733595973712250598668460415813964736138546484725081537246557649128493335986255152334659519309640571324768830778495794037569401369390309139331896982065165758398313808866786805602111459590121553300583603070988156699994126116237959418368813144805530846759510378579391614757182893503494366338328383685787453828632761024195857969393813584256975048937880506016335025723529437746617918692813077389171097353251449935444751461242259908917520811706692512917124186037164162778662087758826540840237766516248790331311179998638781535753042768824435629098097223985841178775700735449963566916797574647842419123887226726197346659930964892455504529486842685841653636384307278584663381318345318793435052980893425876513135077946421618686319189392901214139161660376337891226840044216826930171235896831436655898325975328576012492145628763858418878251276847276688282320533666015629242113947919231236553215526157476136420761693928148642228815651660820254075759126764118789981921068981478153847282069620556342745297756712412006219239426755820548595556458511289207775598344355264197892657121730483535378438454853900864133777798825219574404107855929175199753509195588955607733428545168458434871319209983577264429996898227755350784417712778425944735427658548175962248657115747648789353658719255156768971037934950673839789156682238448731482190994757486108456301715254171662295597743191237639188976460337118804654589255444426951909427265271642708555772057269734063009936970969826332801923254749931467188271280321466237932751082169596133272779217145463088371898249319035700167782648374208349689370492650503501657170579205898096436994259225332181859234135134598972118093199919268953127088839083729037630260514822175553650188885389466587200615669702150459628592769512512589333794848446005692656358195254458416773537393483498229125479844872182025372980314566403728597451674887519184029321347841911324940476535483413113092624341339743211152498891108249256053384962011268915397288028597413952421349290264058761036258363537831906330127919345469822955164171816688836095901773975672855621593711028728482229174223723148167216761522916232471956042375811026733963081689478384608546089132551223429042644116103446315637276247488579575270637832438942721073825719541090845045119332715596891254362992267549515539435635985360513471798890227083193051592169855226906857938471955472316145987518149097026189618252057299864886913187669137962442461658031320621348732260990396187459095157345602326849238443287852768500166112466860952257125587447091809558355007258463574595196603078735170857844687758397345698516991221206424876010884403751810714119268456085472829225561277417920687732699876844567595842191357278563248917293719440056318814227299805776795137546709921262031339416784387531038953355407468744760417311290142876549754924816066973152166045876582954533079661152529808714644930217528130733972989972394228266725484508847700021234253642740323086321147631972768929047721377271174252232066848932803995105235892387401252185098763342135023479074709773442190138916724322362084547482560536340143703136443411177488323288894312887833140922674370375587414488617477113255076342921715856198283536237642374289552219993564016970440262738275627613350174771794146815659720488214601800274969744169355187434988289571734136474015806425692386744552601649291265922663024086271593678682621542005727917058013519766629048735761563698853607271315798476685007290260369987975925452275239987566627233425283343742772914261786512887239141278284974444140228342174148415556035994748351820508668222828155738275609503863333241589282417757530765827040497578767706690727694501377798867328370751655953260646524508670425159588968036763494727876606250211799793352452163479811458102782686970958239406969445380925236773043907034272424224362519421997357737413606530644168722159815132152469187048895523735195459937039869603616451664493890323260699833710855037170464276538179438890633426514423613106081939096898694483768782787814260262927335893205238439913487530434432069191587481711364524723276301848718752927981368478597963874737898941256833945063562933466259538141347782472347812533681826989984868622581538448155459013737085052367741673145213317576065572251571190099752607182720185529737813584208457896273476485739174992757277870464407617271343673947119479104315530218706413970452692242154684999820249045062249516233106694343563000557490993591293664721345838948441698453414439388749680858854034816814838672549584105135296321519956322816897811863748719162471673518111437222999082718991854589136420955861308884568695678741402053092915655478686271976727058415209492373596535843261431779102655053641868710921002525693413317587238633445074261973379799167749655747808468618206546884851052809696937660700842013199248527822322487844913921687145879778877628338915133173660396176603990279928014042321163979234687867589733410531810251322747813666598351665755620218063687390956614644466423330529829444747610797916936481618169462782365693601914847537012094401806826839543747637220526668869281649195624050599799968897385297202334062266582253482481865661927602966557254726026198185041904058820898182945051900378785997501489992716472186487766561754270441077977559387768816279065417124926849855517261922384117653334867881673426590620816727371682779072504265634475848484621516276779732994467974472402427148192658767520261011923317540203878476852972879392426762179662911431599259372953112826942862681956467994774048282996288174258819568594277087653588408074297703555778328558581979404780557603257287803539597859158849132239926329066777162399550871783434223352602665258736692569432555309545970986468607196353928148260839139187613974103607145910461207345061901671282310579649567999633144901115651111898434437332662896515186682293905717531048247077153643245662946187378921766636179479742313346534386984638023306936055519094962823299715223885960837648220327865476857717823552241334510837058475591659135376271957358355560512862797581847396157828091174830252510736955258953372015248364605988745790952517863223188432410167379707780487691192795152375034860346664155491369635636322117636356037562547817375974784600616854314606887359571723111548023522514320111944131671808417058584224318336945658824633424444408572553043279243262578707188531892032927776129050704868277436006107950511309087258311166381623774509791735815787328519796436085998738828431213774149278289793986707297133838091656341725287018295196258994536786496858856448027591102567042087562378394333829132288658956150763332133993075064621202676987375582876705067398352817620992844464611498317612075058373167991112376379223378819783652955727260349513324769933751704223064429628615891572899135760947308252874131175528970163950812113314656581652514442651672835440876132686496242756879926633050169333986366074058784772756838418887426968928681256208434515874206931858699288811968157272359555347260610672969334787549765333563763963029240875818248879067671799989502721858572178663741597790024359952542290298812165981368309765294912972076318143415736098274720211839901365285311016838161920046952947232980491395529435668822456549054517526047422852685950167147785142719811563876731538447754674208993951753628063310687560524947698814717812917596512556812423293896145295093385242248533777358572812196203943172294070292638523946282196194151238721810967769783512026921377367095224963802927559181261088465599651536034565267049755284350786903496698174801269111342443954624724065423530416226355846020304067350141636044150431058981416852129871851077878440152032717829281966325337288340885521478808602846156507964976720771173220181187647326717469481285298109912972196737798018085496604447808932505864355283089242828774735387957463387758179995386417943679884072998854471274100742952871579885023991691968122268772426920554443663543347885642549104647777483311295304769178532164591525447905266808918442421716835823833765600072589347861110172257575739053192727585647756799864415969689158383832225456816296756942834598731134180870367603744871251966841298064775967974062677115438821758871430137839424021407081465359433464752911877240837874628389347519481246883447237352686580396672626566612955386048001571206970948935105285636153082934997642833575497609830121042661550257812866908268677314091920350106001145185937001669630023068630131988317648442359067013167328174776376547984193563447814172720277059467942228292858570629416715511311941480834543594421711438894224947756986864189387148922787797482446292452504163175493423679523409612885534548340133326009274791824857487643886208564565863078205311499486814611127372288191768458465893979743793667425895694825570443878603835227978412852081401014750767662557251494514984708016348111241940275696602964669849766757312625281265122478679593787967411655961007523960992772361750582673279774224523959735249802983868098378633152644876847318746411456959069789216687997674222100615482152676572434751923986541541229947823183672319160271099547430555359869014634731575793584357516987286719199439878663460637403111049543925906109309114163305599291958837187928183898885209975448975896666639503711871024607288588867635400280545398720365220838895629582952577482943899515001846747865592878714076753598932678584284268703056757736406831599456193223241694588980169407513825041338308249489339797220762271443252121746662516196216030504099674562248961151714753669276077717335595497415812113346298892642191997433995611403555915301207309040037923135466522280485861848274463279506858627209204740441268032760145710708071216636415003771874145034733386564001995090136867986535122151819463652357876281786773941375691931718190025062139672424393969947158975249979283003786948924861457253573333745541041636551428698228720870375734775350541194588857256782992539419757129064632387289804308624667245212344691837873172703535592927723185914373278016645461598452583527219149871553405046796597121710890270359523542455627381277817925517567075903624111211503472326281277630379674991843636355699807310352864719358962456901020723655098317224194337008255840097279238234890239331168837094544972071796458246735278435478922289247837093343121380544443770767451436598530035718942346723641156908797004243732374713151390594665869499398692074623108745352511514796193561939624406653541509947010963544720347167661138470659547122300657477994855839456555687161770928863826252385375235081706636927734315591398955967455930474562004491831762328108761943861993252567562972269128445303296913348837421131716525227151882862695099208086900052835859355223609204200434177017907182633447720839583283625555718587481339180254688746880556603688155116172367173635813665379248982341584653321794850950019571974333052827161671271874286173690885253907956957168242999428214859874448162643346737650248185313979237641606272105180349527725923649640168749413686213695551960179392294387599372714592053197671385667239604462826602549963559794623980171082646180039068348799659630844979251044769957837951848708120463570318913283541418459878909357771333774879332631678596751826822150762081011680037871904831799924789203331559728873755793039478075726792617336185793897215974760593716621084757245647135227635169152552602982564309127270254107607524631875135678460625916265911373618175432253826118089448112931210558668248712002937684997979119847015839454445019883900115569222546903680105828504172258335862934540517379013992817445064356488067898130605824565353888452879255615174760294868821899242947326442539588779135858287745481233064822998657505352002576409724949297571171245411473793158800565610556480437531548713968835441085868455358969197213652289436282757289151160927055391540148772879840814913175491353763333269379598605678156151390838714773319771240350172089395986549713894289822406899234768669615554829692585862415557899259748214824354806745695881089981186190883557726206689030384740193421393552322168836198011730476745815013665581373683904562889217836959785634790653731064972036843994297912878372602169369001383227955864376689328872322976927070816780197596256894758668202220285541092831712557122917485036358649684380517718958906280219361921024205624864017071497980083706964547631518854317137517614856820313625531424276917763878258067434790232559230182316627622933750555247386053314792207385051462240543874099310061208836405164288615374486448120747161939021878022938591536222634921326159131742822292751125203467835182904942125074665215365577710451176565339643985855920598376246985851628428331150296887767276657724257248443868842193521462149721411685260667164241573237615349801322125579117274924958042032202358096349448115528167541554253922175796471127518001450287788788898889996951692561384886740249360563088642439818760803517832490075981864776264705546833788923269793389197725796022274178360126887071771716549685855709188826193844059939803400904253738058140235148454434607996989821827642613106439087269170842195385604454830266774929641496225807067532040494136507967605128979284290162774550266152640643994494680861761447475793429229187889471263579096603773622046271828517593143984723383270598362866598257673483538847819914802730308168384571429341482973496558559642441246912143076356476240034855729125318358467786646304856681582490547632545291469688800103320024897365285898069092821382654616327515253901894775724355664551913639756153916116109711339397646691889604956614856956162641824839846796688521702658534803729822723777238765174141192719226585469982133987399865915396676978071168443942753806725970039006838157038809757462019020636953544231253926049352881113098331826149720965967526150676843546804486155172066961358913242516785130797219424323336106685379259299297824723144185614959657456996794589847994009184674895259509315015299581921593802727491339117377377729856862325942724308345374716618711335309781927449875258971570711465850730284513127129131032321804592265540951011067458955048194512289496324008167865175036107771498786444620176904589371742378725924438225895906356295095506693488099289513371787742171109757479322429770456691911277948837975888743515381396244091137556756598321637587623769631983432420570267445863210185189596025327548295713574946677894414114655295637014993937053108131730673758011205258614663658800316455742137478022597275592482785132220693168459753052561922120468424067230320884034078888311880063220324929624786832959629858438844460507056168116521557921922518188561299711939251447354677274830087622430727589994963271520161636905311244669643515197845074567209759117624159324030223843828415809872674587869889519084558840423405831112898267688418765812644753596292606975781408474981294389618913228812617133619624760465198015524108222324446704437774317118253340498457258743101715147060851564473164788107110774574056326517844566963241665593257053697581074991142327596151139026534289751795229356645282391803960250932642323682679833321414058952168900479639413245545780923430474460898608931362969993066291364097160411186176661933392742622346030426727160077615211718508817015970419715476385223015291050735062775394724321543388327517555976091955354733768799346515527759564761513702369710578303214520874918298374816636078119462032366437988574826706528704676828097306579682040388702621183759255984550714998186192076007608807697577030602461943312331556266779511924921612860065851698301631906362805586461031126980097304610105561274010338587767116959560559362464378849275619957930813113914910675556111692477939924613296863997549668209553139600575169432617986135761257478039946294351652149636699754996375281771756542475194188361039603293483138349811628615215694393174347638130547096864464380620375782716888079802662381713103985811314476923416976347393833777317674319899410922595949810964726856486678839901641637867939438118668592269128659541622256158177698142851317501456320378562377426491454533774473062250342255126774125774651120471101161649387125573540790605436868630638611707624808885536321735775320425466547849370139738825728287170961413348735803915024501404462127669685783163868637697889895862119038375791687505274764427765680794135782255872689812233589576552310535194323251820685364773340366523662376195938516274020704881144157616597317432224554209136532422171046696653278783547267717638292293355560289968350997243539206677180114326471335241858757222036755787534946312779561447705356106318087598691905787979005046612386618734796782424288691928700367328013252274696922250286835981828597846721251178791947785576407661177644642238722780764728209117751247784359119294576184699064093451721069795116542838923071662975736028260902430768493937878766137871762341371315306715610541194717011635961223329984096702178129655465649442563661899411397111738920293996435045393160232853622203806166942481104040535510438659703613918628668446758472128222614602031789959786097877992214882714672407560279539755635577584965452326278123131212769443792861022594908218741128633744664600756039399474836021541779793698518178389098310122225054183242051278608283795246163847868222276347911646234992471249005647437148445064151299534718505469023178385432172797027469064574192154861253984294369728265797413755826779284756514497889649790613237324791851793772972764774188490326727368386266965373108552195801387749595618483384574246973113694936427405757514876032906979259461887567178169395245657119274632818072271926375506082265868978215786052257834243268104675645532749272445664537227926691760745361184725112877301757934993915471041934083528960561084986415185541735577702598825220186391521916524914303746261338011872495178764779742519386721798321111901866966356639013455658188036392814312275331171147981959598792334734774823932574644597981130649639579249947182370957463564573288651643094927112511235984066513273467853536946582389784957631666363531258049548655520493453794445745169254774481960378643684466664752327625031343246921295963968769471306102220296812618369032802108872682214608434407792381442347893967288290243935155517932167706198576909462887096032922644670195621891866235015692710323036648299855476261280550038802572537046816121263624521107915114333018996882173921050348214563570660685234188204582669746259752899375213870303952409628129313464008743140188634313170690841393864724396076859172906404394490646481369085851319946242347786937991414002696397813959221135428596737584418261803935923925118450264581519833627220322950180249393581786986874748244874208684091689866784453587176142183939272897794871239868397992994659226750481609977267453174792920359467726974092226604616406233578036116243319264787965858140535732626057433951251193480331160989967313645604495055526409893231147328276828529147059674852643124263913408198395135354569575965201256182073487389429108267291034859425963267728014229058066807532389723474810394543127985384113612730458858638070691228059138287888130511849807884427983494072372762259647567026371694858548223661656858985022840064426637581727612005895510313289428326665758138184773385882673962705399938448998098160939154015299811842872118286309481880156569965724415876878593334781934315815932786831875299396607092652258296644434160938353320023679213192848463569684827735199768048363025920950274719382680616815306300545724095649104655078325478737712519200749555712517886606978204143568376678696820113174370522121843288738428566803590232006106391383777214448622422504420505155634638055255253065915163190096049034149796128274393475925179161563572838521572865495459599499583919217539438636341301415551037348823141677181761499703762796595399911139659122846592964789181638561375108221549690177654390753779776972917428291768398803651229784105673963088632373424452682162023019176874518165989011596796086716750591113618230235916467652412968368465281282824412335741997456723627029633819423576515214443132224760649784762670533697322275429607871133231532764193107753351435932418896441822885790835857034473324461663744211708109698552152888603712584193073511559146431873633039497431866916976116605994545891949649376269706621166976851661079605939685386398370340654977433165127555575868898583293148624276866849712719468236792927422922116222325626303549683151175995321360245058085780215822595288493200640635651277988749746230540631556296529897885405660304852821467183911938579249204009489874818304911228919916317716053211725991224741655749652144988584226155625556865518454433968433776772613701818150092235001209398548545640530028393439765699396676372795759909257381141992699498338288165233765873614222636674518019687709314803651125826748508951338414188786110334321344106209615216220244210385028172620745531608399780209070336142132654789276846140169946245554198386265745117822127648390984602833342024546726935181474492562128881613873086599223932218638784046521060938595502589534989830498734297415498311978166210090149792779061298415532186912516034478770674298635023393897218348884720522723933922352237613013308532259819414026669857358174378974503971693811182638408295673322972305514775977198349550328896628354543862908650536543475532411804509226497151537143654233257806113351167819700526930785145279631146524339928733229955266414966382699804828210008792292945033548645167357471065954982569807522483414740444377348490407499111559647699561367866545161559918719286617469849965611411941264273748826424921847454179907113203152503129338573559271594714262373888195640378062846833932244210424363585718570252033709171963173669466919357355062306129930435985524319611101446707252241779357327468154902539443385525473568220752462474736571693557804500677241421513102624414460259196626586630541229777928781577290210955258919804363626107846818799173541298905785637640303241361888872543124517954792746677241018443796058325338575949506064175312264948708198707716986944495582154373290453482119014537166849085504750726442748189931721672918653186573180416390588375488655599648747307134186701983886248973690070837278208544108372321034011360603622468649816339418023076998664647452610541438322540934794172012523984140713633811952206761319878464714659141212951608142957528826121691084554318842005039495028976863938953856279700138796308529682278848246939995580292468709012753048853454775429971742827323315877323630301444923260286337113131927939364141335175102578015880895945612650100003544158594762047441937049120130765972675992119763263373877581359629807184757057184525542528111145470694410515316454276271205138287846928181208944432620121479479235645378033403387992594614053989742034736359885282298783853096566926245595166295270183631926525477455541480258782977747932518244449667703112250047665845783974728285232288361999174833489255254174207231583754692418186907355672832847215348419461322629634358241125031339217780282423417053266354520560083708983574668783663549327976903775859406011796611736272205486198285436325327577258385014427425773053162598857303827144896287854880569133592701451573769826913790715882544174263579926798584342976766215800596640256697549579931681129962332996470790150656118491300769491592158775734852721962099108400341518817461278557236671370789921374593535531926363849191259469630183374199422172262943764684427188550629417399010836119856831548573425021712012438451191370087738840530340681440451615393249428957122757074507818119768042884919711758377323017221497447821508493772902013395071305063301199636549651298885302247760431667527466682831109663211204348285655437491762844539149323365142191227921568013991168881339871642039213016745274560033207170684032968119082421639306152717459377420307137728788477293965714564946597727928669213981028835251935177382367488955021004924814531210660743067284822733743580808127076945759113015897338051278220768199451496854134188523609254483107700623199333786513728887177956864067448980985847465619611896673311428386170943051426498245610394295976390587483646461243542196108852665713842401529752371991693712653481149663403725769498544516119183922142993659456407453998386804340341817901825204469161580061772857691398816013602898272578125585412040535423192216678920215709164160580973898842555870733432645727515954856028578182856327947870104092866633359350571017085876816633387369469201886091307117758179891423369154240995654376811611632411582257617805223582736289513062692475725986375046189786693539787113492645646167554808233696812691202656480858172645123116502346599692547525119800621631034873452013204524379081234281531088885119190912746251175531672021835813565101643855097084148577767952055589661159457899640788024835790999628291222094686492258148668305876105715755992172828722240434700640976835625801545495801231696638837075134628319052955695399192735045202408971368867716455839443337041447328421901198876718479299649685539676954157636477821788149681959394714547969578307678550184873718121765327306382846537809213429406104847757407211575052198872856127023759344744086076821720899495151531344129181026952497715953093869304392885178713239358109949880783537358921888650229356439938309082645979691888285348672417996336674896416830675287555516561627423492137938234281119441236253358556478846396643186147238759129231783227895583570824844611433853465134645696301014963717170179108551990110771994211409614642088736319456826790338133605101776134196262944740034113649895527209192660838086777559162119639283239034994326386669445720907128164708843652581509643516598974899668822821376145134617674358826076207342034611232979539231817288178021526873656156851690741840364186155461179140699517175470759840353676445397638535266859892994750764337300172334516047736083745369870440913718716787304916993855443949997547085542868316092674440968848085139791515629253499879156875589403930983259443796725490388183221738417137851723391333110534621979109991817671505415253685504576926624273157959884395439392964699029894560242277452189950392214865203123651225715699414387621448879666448740548527963651381175222071518294042322506921952281629319868298286718936463961668348625509765848516442335342595592428542917853413496102699639402046977728308064897195515923637694992577777994872775272325574538831353791525791273671612839453408854784878664246997497389267143787629612112997907561187370713174737801674458647419547476447286562234862932448697282967277659285592663779971473143123385454741663173681941532678373028198656012931121571632724241782933580471723217332845855701098571547358361453423336793162294227785529771372316764401831688757753837268882783083940509749762262449743488199353103824175742589028157275520165632111209997172279914866294340585044575273561640804623296396789189562673506935493911882533456205318235391044048239291645153985591116125362523661057484199394469449211722286176596349759137963488171943345730422322474988908963342223661058014755155164070967492355164240484818568822759003194727281753721116529578447968522647205207484459905837221231228377929919979632735771311813784535728733136573833284537814341229976422276619764742617298756043051147696735626965211217547714384533099984202884220149093619859078497236768755321560859374633729970612360497111291885199717562575440201917326825252306119714478035189864324993574470154424073101031758110184781288407802189043446223134575747628632477791300439993861168335077965606151577250453529125298336327219409302789653073080515487862781722673645895491453946939971839258861725364972093826180353672183799355178425586927454752736627583630187808115244576333710567497671308405952982010497447581071529380628832556470069503139634140120503547277011386487081633718376268072504579932436233051727558155999854222630866182787118712630321938039082640774574662220595439299438309847354412617029229712729184262339865403026715270327849190874872166587116793391886292477909217698289366651683393860817372435667999454219847626997840576795342200889980288051436985580416726820160746015377827988989948156179619167702538767445046753537266818447668126289296619172641655092494660497839349642527321284514395788108247872315062690255396808233783730986214231454052783350127144561634846876273547882774192246530026252625999809114673858128899436614722519161239565428094961507860629884309279981572318528461001267889558608216995624218666155147241158198549055307133428158421699171463530247439164464851617278353566221047766046002447517688523898979074301476540983798659049385086297549503298864854292064587962801308936538025311262082086851787466525150364637535026183523312348988259510566746088453525613083387742907674205655547262195308977926475515302480822036813266771365359605677232427984962492651662805827094488903961132450729772627552949458834324527352449306206672154868666949045965656711359431801134311107153335512265650918999303757318417948617439709482518669997346499755733394482466989968903264409097412806352079719943265463669578653543243603519532467285677112091289047554620957973907085843587765570697557631392829532879234631429361738586216484566386310382305710928734049192035947862266550986319466045933462232531783771734964533027646444114121715781942901381173665637478502807882952844771475786099376098262991703759194833253087444410803436465149672289223718746548508709943992252995362265188271524884414204817670894236817834284933809228589557903222359215492290231818467091395801962855773389949572611765078342186228864497583319453511889244767594917830204016932437673586254083181987982313807158411996661230775358714425336295550357522521971255943345167772751224423698145476483034162917942474469561460731405747198332055810351961566833073979439771995580311945670315353585689308946310974394311632820368405730318322454922137124425575584597291136122612173913494000475251725135834111046013096476837911228420612195608150443017805616892228817958293112733308490166611107579497076210821439334540133640786178107728439813647951659047803956133717703412296675606833792272923985083129211967003549470554227029885182457799112345493329610912982561538531223316930282832403124608936014798364673568949473979719261104669364113773123627014312518815175870430536933249663045327497460798002756504075963002271255579053820978554467383733436205185624397183976810142549945688126536612297251892684774888735895106696621316665750066974406408241980684680242311666498736189412188734373976081659818341963259688676541780815727988764566184222417915070385400287882239535266792136363885839892602825538985128019318017715219946089522320311721856189633369863899029864712250934603389918046531148189628842465738536661600585037843610315351186301435666293169741053273277694038368416382623454129527030809496969976386310129159775385865870375074317774895100234207167705148437938215300486529277605759164452684249547786149204449923447302911273261539144495958949589744874321616255185655128165260055427222663754700758917611582529438198400197618011458222192313733989720018372684992624446661842365758652785952159819600768852926466061135629424642602120953869547232864901721356160009160278154851843194423282314057259595452657609517632624792961290092995318724431767103378524619619592777774479843008272198745001823256988628801881986081356360481712211472644668666791975990086289121610133234707550380134298722634932966912811584453213113390272513048223703736652115407163057956949257755989590414417092418758394436596023231584986129082749098850378381821105339076798268197559787947284183173342108917312232722371209118172089415635532289329347751658412951881517257986219102717214157518342655548622159535001582316165311747574963490019223294580137094169459893794580299542722813144343428618788541786992899241080221044884749778013712835396817945736556772687278821402243809273567991867346353912349450215982244611394064045417888910204287642637235907029760897256383334013188503803995272128390837927061392316169589240166731382467271596217535569481858861078107489665867531416298675045340050845468936527966338526331452984721312897538628987566670975436368885491257163763082578523153736837410930310504453845444215498667448640927282320619628897050188942021934559480135539644251665696020831651605944703987787531540052544171603255758093595491535785851338317702777942221283833649371098499839386992829501903026988349470745815329915506220213929580377936258284633469155272690739350538165769175962758234000476532496210183475702650590289294459857133704857644832652404530267199546379592612738882206574493731512476331558101727488507736290157196457477796142064519771536631929677883084145876107746879318987784682130038458798831624120764982546987731020631386950258176914680334412508614288091871917824490985255454983677846879904470441766860526361488497898839049331228159866177398359083672183941901485423342368714531162012502956371358415243837891692333329928536132538239374798711298881002975857574846837039164564747900942643157530205642813139322373917952433934392452922637134569744199017649180428514768820728336016559968216431430243367417388107692476072557551913046900410041927717477016325586854743218199645303867434742688133628519692543138651648935238615665223613375522175775838932781125358935454384961475114704233303294357534119035599162041518052386656863626678555160656687873279596071111797691114615756495210453063831378197991416004907522793774095698101654861311630703824842363205123421294649040552910444712974703207495078526948563864853067981193064245899816578917470163881565428543279949311106886640670066798403563999339662465541349492242114338858687251253789693255399936237898590767961810600389456395381820388312712637042283133761538953254187703373762746423044910955526474941989220024782006625019734843362745209050240317644442470558275350334925791217518396816886952714297514333494013655824473245888586350566714927311652934945275032198225630826468312127193150249633524387984673849681586481978084462808207828278427236852080129074304760409076337318434848311824847531553384336840983547516625540139266259167860784754968772978483087681360185696674825843676706354813484772643878803376823688959328514538339273172117938966165582612902399951213133077464180551028934429869579162711665160095645404615424815202708855338252632452910534529664117898529165417532464079689807288784555562023526994441311438178129072495152277328343136169321133987629784198267343224209190686679463396165787163501796167513263342797653074755735571964503599998538628047688663447420920844244774567687034800112944051712536562654378584763685778433349373794284012682317536291794010726317591180231868845280189613184829369259631055885576346137742657406451543292487425204264272802449941403105933277656469833612977607338552141448196645067059980564758271421547466993787638193987757639945653448025344917996970672712274967258803938066055374655775644420432368480375661296722164760637013138227511865471298702862410594728744278538983072044116257508768269861598395529012319139164464098355834228666213680333052102322973985137181220876755408353407824653234410129638406881647987567359495087752233471867986859834262298422838457656903696533125955336274602466188273763152941020678781471488590541213601251859628959987041283892756474425648938073239513813488078767763776857267632826524504103833421942950549784295339730659187923986838745565674148367962001408512665661511106177226265375649064570228430214061328138692417481766893968849267181651084709760819868324270970884673384772229493031414571631729137658070273678947479999564525572186133562661497192312375333456747592276938804822036123508504897147489373920556794526949946265404761968606646995934464922112694424352126994029088858267767501121271823934989925713217008426638434101083816070877036278913834997951240827886252224442716227617108675173086206392798667170551883997339628266173703614208593765755631342300925945746548545081716440814825281833498453397630735212214836130125784325856406314386633513082334646846873837513333869409137382766944837687667298313163740676882173395614788999807251758377606553456276168613593585583211692909257385878009870757214187231662845063735032372155956953590716856267327457798774126768777269241127375227714941524102514143819432798681791741123027155247341034993141458924982267147520267587349873349099607812797181696036369897124018860563790044652786955241271264041709545226460601570916811459478573343133387974258736282169032765167174165271255256159214337760706540393914274544708046254026114457495547313248199881294567783180406186463702721437058548741277858034933327146844694146975621297348545687418968515484810246296082851374011545163871151142873398067639412141781627256317971601413847429811998278619111930976364466677347858314999448236721595237071636597738079994242967184928243951367482226459483697959961517389652343865446230274975637775389371991183848905193465364598553330220384573935214534231603270552689298672770446949134699786735405779349619356858954352374866766867075743205448008533280443552108625911263250939332435952791734016996780350845160848476265588678468181494888163271523510837148471815016965276085451104014178318528999093195158035008308466479462606326518143124391212793082399255772249412105394129356079786637481896290693928503931033336540876130728572860678011942812171546479203982480097566388186345288067680704243806107855175554159580644246405347175811567482479153737282448320385430931439262639464022851342712583855625974089957481531586738455002661282349887269596583879517579616291221155330445940873521524709297741421753397242911517336591803541453338291174330723343588317723182351893497051721478190037815432329862867217423016168085382030924102800077843602374727393569135473769546211345858814976978728106434307057004501356777198851208958603148677599549275232978011929112475350469171528177949484910843116471245445682972300146774524245368473568935104341558555324987616295246253927059225946742191934323274230254261897436934055874712743067312442428172071700605068823575216176536140827826534343798131461084649632725756145915316421450166204020502461262894274096259364896485112314211891480881177898387513427334538446947853751238341380521180925725945102387345426599832605123931021445316374437574974019426904529689737505516051326530407424924427879972851833967541997557528554967207576894941435608271116144139871729865878414845416373576179774693300134782137981894582573094790351624973917483006634967220284819931637120829955653097616021988639988667276331177257138957002746589949465703995928089534775286713337383547734340615191629526541315465689158421622597610428878459413548352317973855236545756353209339276196999748944993837655349460214396258474609510417770268907277332209830427646334245193232078455969574951694321800356076165446492234733939094389758429248438295259017379100206912609028601819706251344124813088749085324751737921821125845619883792718531531295149226184365939582863917598754227233171007878252509086228031823116436352441283369873042332354790114931386575824845904288451625904588677680947541344759318180879379168821881373864116991072397999400680237872233372216925503515254919042963079474666674637837032641557418007187718004573589442507027421971118160646182739337149771222795246475552812718148411519606771697602904204852818916100714547317255673771319574575343779852091677087943739968941471633309998389553298650082464604287166271437749345597061768654217518826175595295331315486499206391973403880420748079445853263876176142359974157364252932658046711128933708320376619666357413370556644488912835608726836633829124935294591468661162743559781484885659956275904052930148722000185753036678246568363838942870513045565138277534072030820346995663369738056965181023423646583951396529795463043794948647853219755836982356558906738399437450810527167126505733345997577461754066628262379479563148758834739000764282376177346650763531415054108641675448332925754141989333729921888574941499829673371093089350096073109592652141498112284168819318190241748416651161057113889817438378902784980172829979194314322899640539445648773436941503052877181708325452474783399420154957901751220944916025400270231493229240506824772672197338738775008990364843642111438260665571961818441646712719120643075156121412268295139006997587642615984088221128219472282084003115772324493379085064848978053998996143733653511186051256579816574846301915320266659722179519859835897943634928791856897347131499970136248981152556144465777067692574857965647953635690925268218025719522921489161754836935480330869735583537362715149119565222357506485994829472674911026270615883121264485613626792742689579953966171453312294591612714792518431551101117304240636054464268861545285122397728211621897080378417290549483343641415534988259361225531983462754885857811485488955497714652727061477143788094706928391490521597194248841824057793295326317044802953751536344905946089196503852913966165494105442968865587966905869465133226493395547905126667522495829757700143863426504375953545797410142031419699434705167929128719275242632386111797417996738116891579787699058499351365038703944943192071292513708548132897271916537310699499393998362966730399475265005750279984745315366628063977247876635823518361972318989636745363095923214562296904535220571602640542657251858637468396262900533421865241191733634715629287693787609494691672394826819376222361229884310592909291827167443769367638414246171859828418969374771845571071204995766717277409955192928153561772807776723198664609165786246888992121554185090859947652385114229859747042439181107546167820592809254874101432897365134529246593329379417665299412638200172951037965737318127887925914235828589858433443853890244442436887257167892217058269472399151144556939772783846786868170883369242274458351867995035401588018323261141187652715025645284492817870429808930243139156541350464365321349591377873195839586369229413026734160796176853812546624569254957249641426934728243479605643239978355555692337311589593405212852452011794420208724269415958139248121713166844105434659424773171123026600381353616391972611037751399417570817836253842221535814887816287548323514392112169767665599774129964652806728586034364507519938715318995926676736776049141160458726598838636171755829667778928509595725397952224336623834256268107569700810319503639237199117348153568237746792315372172960560926356528640049283950343342834640696899347182972537697610815174347174952095437282877143395214837683536259592978000799355868448158759711166604037988402462427699266434270141043165963874471179858218120082370384777518793959133925921312194517134783936259584530830491979226372426873675844488890664630215652945936655989708497450699213640696198481145745383514729324108014636606994473442306298487768505493106396868957305417740655795592288923356459678686361997001953680538010947537005291348719527703276263703220376785044545615468410033415842584131250580931991061874618956288560138651025701556422347287913015569127151481843915698696917982791073441644311659752183924488861963283286379242117654876781582990849946437472173132292165439987563824966748532283877483393885784053063281348176925374195718225373321065195062278974255310498081443847217610314961381963027353852325424580864331603998696290476203462770852182540332615257192327120444686317308638151952913122763458408233224706783206990045452503241009179165750088084455634739153584524551095989394797235973693730388414395453745254315887115889609463742801682741897178442967048096489485723856495109010182402438845106076804649089879878225388731680323114731353483741390516746816994699581498648732414745068476074351569131589119249233769011633167281843823733280811580621563296487170915919529584911092307134597260843873429422737973207140641903085463337126973634827186920481597761645015369961924384365675494956899111014609014613770735291951261388421295292737523505487185226443986148428731166593336168518329441174584336514572256990818653428031371624836222001068288844608769662843848103974747987978445774379402252988178536751629648992339752226933973831237236429252477401806692898033017359634775467397333385237835122075532525403627685769929201038957337705776780422781121995416130281020694949715252236586495740580479164481844272047735544942933675879719668462484022348025042568819971462518322927228217255731447208159671874275399229024565383126741061865953373794288287693986085364746691177149077926985701627883807870791731935153986095760937250987681365343717736715831195857753923144618570366744447555276468088687016734988248888969170862386705617613095921928857469789614922514959955302756367342606352869343631311864232351287796749702518291631624902571874370256669138063908159163972401756348291996448033821025251294669887577035276638827081778917347151744962535143085532700729128524704465916816065261064733750781578523978187593676123974032404339955153689328585939521283529649509625542861564054665167678979745399012333302443311446541571268682768299368176191965615530150422426802648611776590912803957734451946829780330522134465913321994964241459519196072543349654446696540799094086565429463806338104921718244217717022575822544079888808756878207864503312259078886772355224585378803677471757424489825448586026708933188442700282247245256519139783835194231941013553448346477066419647052088328543356523297610090355562864448244444194845889192779647552708098355596771232455839537367129357720888022235993369413973169787043371252756352228483444739012834103432456067575408348333108516993477298247812617950184332745799573926912737555369434460788824641079270338517997748095973475086406124724142554905326419839545412126846109654997817168460497970844757793970238389065049134296749361178514323454299132448273119727422310132639645551242772473727541497154753976994697360563241951378739144671739396729890023028395710515045766394369569601288975969393521591926280705282085802675443411265868269894349441459054677214079898869380176139967425824181062923185948413425093773552624829949111236805738747381472332969336262835592082186574395790413285840968704106295845845700834897334323616346047861329369215856862937246269530090268378701759369959932653472810743410178835529260139721257254159760247379695852888881551935837811909126651250828621132743088872227796785404820524547464792566231336025312819141502775015183457051008955589933014763265865279363206111663822565473595846271482091157234209285854985157943225866276805528037313883294517956157016516610659729982128997785385338248183576265706576426623033969557944723146836642984171342768146268651777185604217023606261783764548847416485807462330730986410345678036164826216414852842490238036292905270811543166587986710441166576333894037684981082551278522025369735414465110746413551962756347293569992760734329957143228357053402071968233689401564554682777413509246299665828793745298343697715880817652645120286342067179532497971526874184665299719769162711559362544393149930622757115010194289764783280242574907545779547317549783284855110332218896532664946947606670519755851459679219438247171261328499888054446521487858454868010968597252328617044549479977924824578874472453726971256559872451971965976572936412955718997252660695944948065338368791580123701450503079726815310951492865708940488615087308624514917938257526004462838769247275635571877434198423248467225247246088233114497797285232531208251236581613216749034257564372056136763128895402940717780136875203593292633534854204641020331043756991220766889576202291564285872671739225059271513427402448744712955807894449182064531117997587498370818552381559525802769027255285126657908910423625225958764983321342557211681252035429323431799588113184991420654791389852024007290527662186478830644537261531410233095548376273580845488883847109999938216248541671569861434978878465373496577978417623357168476283914034846179219201280388312153232663348859913711168291923101635577559788433562521417867469766926933400479013646119983273953341779905038222345005542189985284190729644018825099353803257444466388632223215259914114668911815233093381413061785381264439044371032434520158268552325837308622732705909496263647415615933660745560055951353959886031157113651418493661740593993059074425029614652331647681896452277491463316970437605127420857231954396606146435849623698580426976124704860590202998960341396964208727978107148051288106284384451876604042517223792460158602160941942171633124718256664613851878140589259377181842076257431931166780455834357169814767412759128851992002949313718389344686934825530537527800864378015062706831526924233886571175887115897803700239214568682774515574649567857082937262167031362597053438897782415552377280989028284777979759881272102938654532572790512888957707597791232742061771414395262119496511421300556631986879324196921289785125034428777166067285706824719106042784750734825515094898471461849089401951352736489841404623825244273468476125640931960809724190510502314886348488786153812588183915012624044174520116541839557523848819864183688243240283269149850061835090923473045703238142842417112180517515962422081755540843052951249759087630842836459187946855299861356212288729003671725701733899921256304702482666549483673727374284595834952536599225749927378681793249418554408696135282431777396896705202162825159524620520031029013822472008006970722616660626146851698343669928223447945681563862887030045887172852719238596445808295431298798812665235902270903463848363335000315024185420852884398067269515148845336794838602869109851185180587490128834519964806022644346454889022990347871136929564226946561682581928237310525716783782395284775039816372866363136183309741676389318732119327886452765926382216826794956785174281567906312254348907900722353511765614767175634161193625822670115596370911272059618319782648760173654682009598391653887254085006106626912526699750547980654772246622143299777779043088272589494495579728144980426730429390236460575616577506145518256913761998536189355142444837877491989166626948387447712575145525969298349388948617123875290814002680585508820658181078548638448034162124217979140412717804218202969329599568598351248306949924935296986337598172256949837467537290748145329938698064181747282292338434580014147732339599067385180677278767246101872285293599915908672281077043893682189421303139921334635238461462390294419941632890741439858816652291034557631538898658625410389384221289920636861389903027092668734488922276602936490893441369651219533632370641914255239149393864652129442269942945847878449941349204073853379325574262678879824782823993812867517023243018742864457658764820430150963452573146197176645982174716114398484961592834785487940582365298982356049532128648533786626182198249471745294207544494668264032343119736671325174296763344997693256762273571008575479837117186040221190722360714085263682195354302538529587833735690488279292663691257432089858431129868554677634229504635567346337133131719822826989770427996229467713241431957354828442978542249606777570064012394900228728349317777787573131189383342194665582066861328189894657608032431958804423884373755615978492177574394113799195868175148843329673044123934946418246339756045692239115868617115691981161542423638314873129721148885594229585384170756371206907336179696059056778748564899721151829058577157589591347986981713431367204497401200094996983649420426721261297916171789622345964057814978192734300159926330513472463879359556133652647908528018133671132737759902886476541199531636239912067068886535303322581592086343594620828705469854334643606878479107184960673472888856058266847186079937017844553337368658822011571872500411947398829453328313183789387176924151665052648128162757895846733162685526430350007068601346316823394538799799405443195562163100001786516495492976609770686611322968421401334774338425889925194586347770978986553625659420441816989144751379265659271942622190410419112791299079381231811656553215115466113919384133849126373740945539684630180728604631276315652822179844985901608455262004597539140005258871577738572726865654961305433867130347286345601212283708917283253266693289633982551147777967158390827969111286668338208105123084956260677119263546778519093004885527916696692667391522937512572370287074166882007834217836912002425196831567785792417670866929239210351751287973629641946349747828866092995246117826041817971228832365784321039886812429475942073738789533618902462211162314832792598970947744556670204144977679548936357712559676287448739733130406597771993516923135373411228860790054277657581326013929671935996431618714665246682614365089245431622579383994153713118288436878232185320661111284425682958169715543371754522405561102094139683819648484138690585006490308742598745492651853404627323625091335131579672303178109704742932924632533347344179711893786365962739805403163012416082399135814516261753691399778193063868704671335948218612527867921276975536278353936576173246782237060705928042581305785055813538711478772715787453741800907196047543668414074712085692821332243969320392887366000398220493629394612286239411614535738667513353041095142757334148253570379945979234054226865477146944265165915527316199142547967962862679856236445624330675596455942312452585744709252538490287671355363155620884698648415636951064834648278910158037465946917147011160905974510287190740833904725561215032334642669591751622364692056992375751254533945714572033895135380283823711555641364394141171960729746843327314513282286382991351184120916184589377973988266355936969678622714335618514820273632948600339164116346979642258440595799530710823087615900894898141303251905484127367805679498841926400629246911835918834708961921114811404715658297033331463016020171250458340653452037800732697479856898691434961103450749442922038419756859043765894905060598931057715160563971777107312564594159743909922253799811339829669685233740045282518242146153711815853461576743199748036184746724559843109491683111073347058522012882937534631689152551100603099808674361943309326306869662075453300865437949833879736134544598634674799378405297672938635015676809593631775407706542049164106580551017118261894902259964749947807895845654957730390341800197693011799113893346151161508814975712530937766671848930508547526606926643701928460526135298681561684804638866731626345485769217718272160477194357448173292985279143697197529326310315606399431402531699692569912370244843891893787619489331742606831970441761676798746168549686831603469117358014788023446333841787063358610541066526632152193143287563261424820386678299117470966844404320298414298657351113579077666585728888303938693787176587576534289276108240230176466147478167695509752211404894683594813974652986028156398411342849049828450868253693291358955188059436719516222129194719909441713375975762893495276582698686369671865128547135933422736421912258727601285415974772880096981298323648112535017262814109990071308688339434795195392536897559915231412822415991546714547542103649995637402624932163948558647558451663688152958761429054489398057817210077363733081545293518283531674769294237235361865533898955237368273120695284757634334986878630431776966845138974786274381798875660455712341538194727479308633616846047239146261884155476652859082112936681244625627623074227846685164268039385091635678291288937084541846687734081927671034118769421520799084983104491165984504972415144836381691835415945975491653890456397612938716085712334322187888068872648718295686431681295514426850006547412369555142209488115597981660972485554119359572675453046087106357319847770562822187770556110838797921931363796607131631590686957530972738589485912304663836725204221973971490356427758278921355867118286299640092998706177037601145130910807716680394045975505222923158536298811058713599199943420731709048864040223932795634379635433175577879311934141586291276131597505248381422128697922891437831798803167087439388290258147308237371562809781908356886133707593733845432059447225654484582699736693489129294866807880959942050682730191369340637772167444395551890383925248209860128273186576790382655917574348129213267271836071686351769284438591315319762972266370489861225031414146326040618598583336438243859174417979532931224100544541273435872719535159816588764071592879286658701143062775317297509666330427584752387642563768701858754035580388554923139760601796206477281194155203131652866232678911224116169227312879920888159409029979293738781878453948233638169123847484047279096111191145218418276104331123998301957837847136585359643341065906135296678512966971294882588443992928820664217254954626166239282832082918216502997604749212031042243188727707173619836054016856887092881922223318038499564335155850109682083938594665499390378297729412398157758921735677912014184703593236281632761741789737973691777835293035507585881549698920688984813802232937365447391476129941194784833401019277159327708210888356215542280099454966595298235030347043087294304898995729551531226025876957454229353603796084523759861514867589830722768345289560268804478742565698606346836997457335018634289707476649091187970413788724474213086486315110521116931363531678689137159417892933373084799673893621904309534473960901286391035955730395943542192451932313947346228516730930526133733437599019903488825918458293257899426403825917053552773958488868216084656790838159292472676877416954203816187419362866968753485594759087051793651015771968676400300316015324970827741776861285295141114691991728637961730234364513168819687292287733781883185565717667558928846522098208362793225787915179452925894021044348147910712226365089114010984427988927923353312480675216784417843256552695326558194474199570345567699044422190725249601692979571054106207343564714106578353178921189385465972199370854487883893833184034419726993400798127033955285480531553703527231465521605240643753445735913590615587599659202123594490685316732619034505115828283364106519373283105181676080580097063464303694024483837264391899209444847371275469514062226545797974020171306873695376315632119338836631611696285671441188256721046642232401928248687708497592141544851535124445725780442858938893611181963554380308089424193059991294307314849071954338722757907847906381739215651570978419179129842774562704046361805303083214500745281915199192823896572769193993576283802516163404749726363418201125877692653927875734320662788247763346157444897699904248419507416300516026798646745205940843689881978527984958330493680392383224211478767742380781859802168045823355762615752283537199448024591413458807931566883390157535907428593808898148384673263866136306962455124040942170134229503864837024477504013577327772582744642893038626802591898148262149743833692366438335089559492161215207174588455652966311879173800716786829801660171277274980515288764924820940369139477104959216977094579536791825792738991781957156267062741383450840146258568553425687825736732965403479982517245274532535118519357189173627359844412856913028249359705987952498794528173283842901534266102404698667120389149294843214886078228774588222774668544581589447907417791827743469510664267825732669843707287968351055632725652418334312858369112775084725793667832593107988830021138819279046552362384580169251892087836651878868327167577081744206877269553680244657224677553573421393731773164688798607830857799282674409120654247216879806882006542352118468240218918299773300012365112657454414301884892186099939928425026262363055019501643910959259659740783068901999882369194588836712525981606480613188959833186203561420054453502364288781122962489248466564807555462677003157178472292401308592679947354664097373134239218101497768547438319670310433318191389396431903492053064465898150175571391640629883800729551579229951919992734319203086775251903403253610833092332444305402788275146682217479607805629777524051917325722536527561964962725292683144593147792576794231648600457066925462482454185902194428809153344428456399632003061388058012417891272096714891739668894142520818789677160423647109117935515782187982757862028992512687921656437103586619349694984824873611116144664813776797071053081345145227484915353066656777175232721166457443944336324840315207158259808715618418704441947130847386384843501894861213031918377227648497687353491744477562995850547558759607834888441509938064881527139601611114001832395278011699752217213900166556589498611746644790686008829566239941383616729285726961880925097451551014280881571688904102400647584394136941591582230842303939809455542847961833394077202620035211731222868298963166392985797652676594534074720852609180919399854406732835626975184056739573566610935534757242361375912970593858522397153902431072627154758073791763778232128699862451515923167474418851906430859826561014203079544626472984974244916752929749775742388170464635107248874349052997316410922002358877683965120499939783317275778311995461398891905716219038136973125628328579389369549484092479975095063080610688960787543172946739222389596316830536796522608323465846451124382697608977502349423244878847812283585924256435377264232997062428190627587203485481866452559916188858088441334997886325642216387283888724873406490638650097069369360836154569915042205338440479605828760897875522986778894916888115690788928170474559074877443859360089063836643127849177813633544758450526738313337789787885181263926892645394204913528490687820432430164915698288977547579817463501842574498228954469704522134741443151781677368881409626330286719604917949741391429471686379290923116748336567564387223024246260667307848325601161941984204047401052741588513097589435458830079826318781630061610448758234706809212415465416877330481096609586067911919853510945870216543297578621360299232640921834241175582853593372982276876746758604819087354615736878192165614477857953376417934382800362184664214679858723594809638603515233700365561611000334595303613847660942029442811193027694824023375813775429872326184551912874346627519331596174707499688258088895510793922521328816070460092173302082185476301727118458965995968523668872554642501425482107541830301426944358589243481671478602188343746707971222303218901615438295829398051818116241221933350741641199972051693472459805939842795767431284910318264858623795190049882257786736040748563335622194637999172536145680220418409384533771168519966252369888919960464381547521979882721975457482832566338593705215358230459929291310192390677634694848852639879489812806459700869533620183891839885266198260196574482550528563163153087061410694181709338331096575829647497784143332150772761130186829146057417792899852529157695945299539408588930070317663363217404204192391714219105835274387880295556768611513994271919145562742307470316066135508562597282703237346434187184484090577314501399433092556122671310637174156067388277007617723697848010062301475189435124129593795158097098153345786139356290691965703149548462448964591434038253284731871789881064822622212139595506101089375562735325183996222616663601623563738332033824061155954455293024925108868208168480119923161362488298176523868221039955628719459133443371970492834465287064345616922540229812905673162363243955533972958820150014584555382867572485419760458996843101174095215941379786482441697496384976052628386906425547190446720375366906152088027293811083829926228667182649718339114832708441925142561741559072713569502340958313642357562365751109779736019478652178025443019775851365692491797564634903929177723756765356381391331702143208551861464697979343169332854686147315710151799524154477976871977313747573463827142445525372989765892690329268201762721213135028283648544441106960992410833940248360224062395993179338176784451539549510664337586091778736465461821966973955553245214427099261761554647412477780174549748849982395317159764503508838375683681982472282993425113092982450626583742620333679593359338491595409999471356344789164793779544787962566990208129281645801535838721447437487236431393955101178158430364634175076147910305087711436641518828235524821594851952504383152358355722391299295534197198438183266568165354497974839765181104132964997150668794584106436114425617861359941372184123296915054793198317253968214933175430883856432769272421795867479615727801642107644116925884214696476761725253764702205847968106135859418230208447527596644230989096468579269966391238939962869819726199380955656617313369800982444852253675042341091401935817078531782065017583316479801739893065681209767445362348167814371265911497451949796846508968395828362999802136913234293886863197573126421313978429502253520938002747438375842458690226439048477951082511547848242515469461986999942011283174280113338234975560488214022730022538297770566652935827579330557878932683334115825213391677967618224380856399633717742928475747945359395604450657471617509882421464448219273395745888456231445100180229745766119066083560342295228189972969358590538382096250113181943150557511645068649727049017561659355519412976717928326404714326708467756796496054145739489397719198239969752539977924544167457217534752679698257028023304554449882715778627022535596902455849841349361264867906562111249495440399086070432597365798740389894038293718335396327302174411354778277717706294281640459308418722183703423471197771453314151061869399977316931184992326308099873788408241056165839862784915339005697999222581664791948328271387033623573194722945472803396845799544638381549862306399321896399237449587961494716079349178872032581910407726352881887411595327676289549736199895354824178410132828234783579126779345631723698703445935510204292546830829132722995738405176161952439655238963900063662824592715199626525869247675356675330093405681848064784550156157550600060407172733822929555908325138331240746498961613265854104487568939271825372821635379268158968321769894475960816722881458342530498227420729284664131246462175391135239965637142254183167593418172752987208070123613252482747990862143800329292324500088604368315291009996844956032105298058975412249378070139229912359662848944080984814475409996459968595675554162776630911047421792469969402947621973793387703390495666574355396846043954113046921499542698075738884897943483857191169036342387542565988442648661749843686435513329655473474376444222356533835134166159513449263230178067878179220257351607516578968546242546700964159518752725216878938537089398971532363376701539592885548184091582369364609083175392693915365056886511174286908561762058906603867526631602344606830147651605390488378076665273193933631610979042573591092608182320231389455280042846223356546284556127650137634727861118545740984792471332349625998794463972556949510491517384866320016954527574676317352612994915811239427999854995949337855697246212688309933032045884640178757772504938145326318384699697129216376572437912462174505278048346631531581944128944989650650073678817274979484906883283153866483472785828961620522417339629402364757807162960889054227930818329778431419236242675475799996646525695480662366775893766374594617546311237105957065971945141786282106431878589238679797199400469298148263262568646534554042413487153695520300579811128893484648564128226615698365816756595611924958479707884647242504887237313435634122710282615438637480021021889077111580131268699963249456429917551275568786299424466797331044886994577786542611055380748057213984784026175071006898882093918877784350029184785273296007417129948855763115776184202407595907554402029719047746493919366639973857439092519765128652521642475472391260625875215263623098710475020569157506524081934568672035958180188949016983282661211735197291798966469589994200539877420483175845025655928154355498735100589498870129690079935453657336029922185573596358113051096953181885678122860744894705301138855057109443766707081460366185001621048391208829623801722894533568468213557711295954943972632359136525574533209563167866913308958185893319490975434221765220929452112131730723733131959532235765519492286753454490207295794808313078938118550576787552998472408040874699257714452590572888786922365964158196236377885634182403030882874092216149102077776963256710192291449476649249281747677158294751668229462930380772947342910044821407537340074773908331923523941367464568882420082562444129976834400582557333444241391458641478555628738641331996440385026572376598998187845071315944527229845552989655524075499297517883111492807246321863830449395351479923642748994316453516224448432169650409848078301792424899463904254881270611585737924129631517155689815588257390947996261378837052889142787604182436734639863583553868497111055768905134559385818800130254710864354794113645669849287823828137765027329712655527264770108711805987992831116452228844756384458897200136248546003186755278805999896094260534051173083162450438232826391698746749707219064194536908497146975118458829832113947239400522036922267012213917196456515270659031569736479416853189194677635918076723672661607517242716011079572227983648954920521952374941612915899163075236511694459173324321789185891276489258644682115556119537938360462271761332959283607332562500460989507679486871897427962565353121454733875898229858449343278596320359832471378438768900338240759293685131185837589996679142225507261486296616794901261904736987152356620849427557829306735577839350494033839865041267923658897697690144075646607003864253647016663466155972424615221259589251325872145861668951980459777627332623976283456767230115927006725875408033180995693094298897905736753714175908841465566921173467350303511858095475062333909981803859724574474643477833368798212658723433095707478968154422812266518724691767484945490326693875655217034262552911153758468116117972294201180668187686180519302576625718976179228542690169628223403995858714976558827775312529649292173033952580471878582179689496625424543232344810507668236072957284312395244594577221197443001905326024423719888831556538635311393823485222716515134172702387034985279579307660589296142401481566154445442075534481935915289193122499167356935161799117393575612178379426702974458086618571462253965394868609276370187020804995211518564476863293255789501114789315862449307962362197142164855381132877424413987450575196502372412194266646419664875143683825221751748339577967761335527281631642378123335811289102839062225351468845407487588317887765834599258014234926319853966528119470658936786307642065262909763842115500382024392437981313968367684641078656812129336131226106137397186646651179039032147413154703920988467829731847684029411007299095537294068691409656733412452149569719519915155651174289265609310656772562801918878163389261978972743730075115641260612058595923374922671059197570980281431420223314031760637244592684975298549571956532979417838724952028561952551332032387976341542008164993832473541559115859756580558390859348071700871783071513685340202394626093974579707619896169372259306653183405890653892776691581816516637180571521295483726428499498514709744543193412264972225421812868769340695261490342492389398581071698589561660378294131936330615328908660887955453616876960420592754967984989960424965573311331460580014969955669228048725727151789747341888213439505174927085551378136309315645199327897421204814982371438365572148662324507357391526801536962984133152008221821673163578641984233783038076295652980657690219428911103311177553496809370515985906814433624608554696266383939098254175534560896743876613746263985890389514303097063158395886466573979876367474493021070961438601189942118220353977688278567691033724340798638476783763094114150037074983387969049821438826157999417835871174414071094365781393745318888731079236321872546906856937880171110010921855908453569362506563853907254558822971942013198996184561594724536862782209959989375870320546628312031431398367000489252889688600584478327895577261172400876599614719883588673765227915638558097991959270780715027259221015289809453851119839152092037378759215867135156046354596239572642091418458985685275181358946232534206327168533191610527184975650594762549828198423925226749105452905737387029702795705916662876436528228668554876090277512352417395648789693398134875112805868170356464234805251400581944138389541775908447364083168163866345089447502338802087101748546782854763443494874532095096624959493448529532417021329404259733149517029311789677862748461313822477391786880726721466350177563989740758216650209369541205704479331023208739779634111974628522552979953450396754471294235800421856803497663823831842242234793973407819491180345095727438659387395169257490032324257686003013908240654406327640540009692718518837845907919866840333366752245258547491358254233498213871134524674552750692377648245974584593235551904813510934982245172018866966437217182363782781524000380592727161112329577380302544595740852003488774759289986690058144927771088302447972778391331273982078611588529454310907630315075383492996133426816353202565949281336231363576248173361325936956653364918688248423139255267283155691395883438685318667653666212159580483319593714997663781503186728793881223760774701554490387176684277756468706828187018962906825358075811435462991222167534297601307738533307487223891302801956246102793233944327255467944427558284372227746493168032938499444836228828836791611590373870718355861470784957744294798435619407771662164544798442949306085391367491879845533621555565294126219694993186108739794154680237264961651236459137155509840605727908314351296174194291377950530266096947906845665649447639458806769769580567059174147768891985379238012835791683883286993791923903988256762773663542161365674785030494070925065501775756948260323671160135288973612730148617465429283283549288549817824377831783778318659741308223940472731922389537234672311614885571234133241466522462561968099830897124237553475219267672375326196722414834129937344458004988112636143439825738974868524594703616339226211366220542539345914347639383118558425249626415825485536986261276592931757502370824835342330571172549066102481811828015542912756869700560161620420721025664228897588731876206024535122634237056481279884359049880716788927541393914689658158942144943076066537760126636058427169039234666044285843330412482935310489773860971342618719493862545922559297806083395259526558601655546547768244751268518930685114491543536752446023600862624687048627658158696299682048830861486757298259380867825425880114769768359198417400084831810335077617132278259941591976275413879160742140182712374972786427140534429217023305248986348764981280239890467293322366629362229950548338255759579079158566190687524952935353302162397827839860747273314748890953314821908747649680976934971918812119948375278478414110971126895370522593439434132386982653058345751114716676362870918824259059567059575821938340763289134268266224835245512296792429988125945738213278740362819534533593064688514406563903817789516115462156071383639535234864432627154258648020814508558526916787328139036746765993051402549494201503626716560425829202216206700318897364309723141863315551180924375892668052418445699830783786618993718497969119125875308997941719766640562186433083937093798222792211707028977047666741469350117126710127118441018482745771174282911265494254361933968250515929128802932313289313225327721619749291747380761436992481075507049194053222972785323633088586713993618279270361435253966623591479927840565384348363438252887483594463912869932788738411011119385557276201809110743684973518307644373864095095552167023700834436043185418294068655146082695095616928884704402188155570656113423520727527393131517143393581437674955196234175596964521170161012536973119368349798448063926333148795290487198563853340265576952676753360236543265896543765892552965919765778908392374453422028831891115586885787043489796161553612429678739157333920197353697635728050521730879858808457646650977518397798699516938016321544439230799211610183015557173128508939734561671063979215854574688220983922515412569345115189929863966348484523727440157636833716633727010508028852457994732712174892016212426562638504724546780806849989678897461359965751471340069695769972740211111379541147381415759228825909131986051903753261672487671515728963916774647179371815617734440269255979694881901492343979932968623841899713235954633260385543162129063139557478177297493193216124806915748164425018242982974896032391343067454856538262253928170145141461258134052954519809726695558826218204129672659617430688636521528597449013384381675921290853684646862442826088652534319848376963728221377537462752484644477733475746556564963944111254183266370149491418910398156428262023379373606019807615379848032099019809840063259673788759759254402995235771388557553015736765932975835304531675591465744217766544323186571116597421034689812205749905586263914548611296912475358434712474401594656071047082591132296827564486523192115999330350287637305370472926881847859916037783723951171929910352232485205649112682843742513382975306318418662510789298919077468324944242949292250760207027601507564924537147354482297640580828813471603959634863390468643335916979646791700161615368090498333861063441074784831258467805091388950261326964383872287287587532674646420898694783631968783786279491855561533210422495844870039494161012223708444496135944614953363630800941744456735466057836024932402810622891458537359334724934196718875766726494506932919260369055934373882871365496700366516542809680242747142685298467640549637395123885240428938814217495178387158953369345395539462024650624131752976017944588102956682263167733781044685313202823587613396769697635513272637604815748655998712802665136828212710316775031826350279037427217457237853649526487700494721541402192015242078165718086268374822578726846488617376138785801078151588699899682298353366298488831751773193567623567536635006957951269504404511788675791694640116780488040625460633519078006718161873960293023689507720621835938734511660431822090830634913400939735326485126349811349531127169357798882387834877507387746336344642881572405956637614992794227716314058619683637812584912764569912241075614865447576325305562827238178922397751727109229336351294667294844414549968482361279852814513470684734115178533558090781729906064326439476797778583932857017218378271076111862176273466353493897721229355600126946150375997211074936833535628096152951655373680091593916329535259804611767522566272688646471556565474012149551798277800525281518233247340568604268739853598109133229426347710527181517883964475027093637437487141826807813928483440753425367205314392348864819429049655701517392888386284972353822539626286395486068285070978191885104213977331923315059856421232738215420952528291214933301857744658734795538531293859254981813416319586366380204941144719497728917744474438833422762396516759996612163783814916841372285986200499383329247907235150021825739939427272773291757753135054388983245626498512061471850119375896307776151285925844156078579004556952225517312395775481910482149668297714864489775499686132952528638151671639284477548848307913153562749148510954135645693822542641361395178786624151462446542860150425807474931413533847454789372981324532559638308758576936516323946508146925680961693479789848751878581751815085519110775441342214271344726497904553172373900777614095022366570107616120427750693416421864417379586827335877305463072866227157174053148412318924616217498941350794859031718302213453206826830219582376574229327111328147525079170130194471798916793395458776055258259756711543735290952973416074614955247776333293863097742227675549185930656175483279784966300439244291757310395393219776982060223787915582369489309964550387019876976938054242546495206893624512642285195376260143876226064361125994563184823710502530931897044074689276223727597593291916248472529654411535035619077715467925253540493125236628030338900574885478718923105324937671866057331571603382451815162735744029570082717486790263743846533737458466647303252436289231122942785786937989338007036409716069009146172019549267558837618046246016295718853859350951097968410244660953035783653591889193343353779835665330985014557324015512920174986023365391062388276941266567269843356895264101223403421600638214811481112556271236141563359759892856241250286284199521288765917723704165556975113393287306076871341293922450726032747109114826126195730125235672371532262174615326645887453477764444590639367846248228342249542264354386357988981977717795933234686657838355672044877421274196875273401439532416672431206181090777762687582004755767794107858111857040719002458826087964312486965944521777124250273494391522649393720223013920715551017630171544164675032741077120456678269102188174467110636370055357514991414545806549965504201287915285692460878536677691863311014613065874666414961154379977127166439488227415916889942893053471296551022327472514675265689883656936914119425344245717303364579869009134881012332977447050585611546775256364646147873940401037888528460426345564113994183816397485718777744732617545456131794699458169944001363109415403545385410986682384868250861367101935859406735949950819195882630875032591292509685890445188363737826441744242680069295992301860473126065611183819155444231085369569614258573855250970528461740586816194994447563914683109476997820506398329677498703123042546896780150085539178951412256611765527142975360570765988798042332853821875435999248816592376511456715242591723245968041127866537801993632219363157923307700689522198989286054344887480910404168145168487306334645363412066043756887078461304681673492835023757568286536231920933051813789273128176139267271445813516119527864649076923830955193430484785330232374063544816325715574885394215091784367715009410962976643340178516483933097199833560583107540577786104824346678799640615203391034269391117618012294351592778136271401742099854816550191164398348599642269432742574497368187994141751581862908991779787756444531077600285775258505137504430233339268063593607249242679965205074442940620201310444136670122561003702113733258197199171131584980787885169499325481605866890978444871465119639772656154932055309976798106255291404093839787473532796950920970128428788445899762994410756149646433774394794699278114504874792939609817597241869842196648737805693083681485832877156472526560461363257383234822674421319513267693455274533995305183398256646939621203654958509609058695010207827217518609612677945597872643628984138254631997333106924253297596832418355198717623143439294341385908501133741305155657740454526556571388373823707155877113233409171501923860986976961938994601839923275831255664445816946144244307432029851934375976709226985528181230626994472647088313254178936125918137491414868754146206166345733842614523731442617644683271669180864007870588192995426356223451985407062330462383205214197279336690985128152915182708848357704539610958528128654081302752968772478607361144361054785056824255100671349113432435874954206262893149277502141229562733666342701896566825571437604342912855117845507000684844574738913132734200777142136983354491878320742686068332314832931645781050303886973043614845739894487991767575119063201312679205578929941079171545065392837626733513945728555077792925124300280591386499203521967744888590737689536369352223784970869996029247903426361398307869856931126876472512947304530022993939048272202197966611272994724116203729421943455986819636200360198889432924358541911935550659719088926539827335367179253422598596813459274608226783475925948635992959423765198975849296538718461067578198605594980016001808654731465723413424703236533428474385244108491747304068792410911597715515182086042309855195926567757032597802381226035623301029491252907565291059579925596895322581136308683298718792036723896471838885574677815894511701152494666946726517797067786694932858342631902713425705628614622855471238423079691605938833448074717494130241617181530322909334612840117271373340489188904544260959616218892458719901730842239362794424394770437728840797282736223393256189888314353080570860743192345475440793661302455299766922972885763398365224532640120988192577021402542796383515975400345428668282341621487207845461115656988925337416550435493639613919511064864537360638537823644563193488107812129629615423829904103652737154349277360432669488822815675138650964007662649354557227318112679829662766389642547880248397947868001484665784392892710561462883762726517542745910591525762882850283896026754073834626588129331480122167058489223963381354440483145956244848949149929609733798722201799211016792407988893564490198735436770398595501550150547599935236904613198849009040660190916046347683112245602492727753732925561378077267531949264187851844876840774911862292914377098138010545847962327745256519459582568642211737339767601478675150235343368061732912761268428844844402885132535361451669692167804832891650119345774582144275505179766767686978066860449657171155085291298504927282514990203987685961744553779474562158620483904971699087966656500252451185922772372148567748443056962085687658702166337149502716286933001877543141635365148158496929491504799546715168536887240923677603356605290742967835087174759984961111193319472891193110212771066877133946601248695481138862811097221534294533301071516332211847654971529095849583641771817253245925874238324931192523821630878791845013143689669778317876908618783886868732295737159377339604365036278530714135173658660401272346221120943941769643768468136657480093186233208374924162279125369501457992082865111553342503579235332775608011749713247447955849842704427856391156987009487722033657476182218041113264052700712127933352917717522759717166356218345729164092660830683882831116033163596110686393178864305926063482104841448050676546189647998753489954449376924934069989488789588062305748043433100523076358671532218235817717849534943945758015626561789335493409056235151729874607250956655778010440565431690359682920314493046262755246911862926454626590573814536804833037605410560477691158638959037065012602955946611614382455058701569249334017925583403720885115873343427495945520198937798639556619709694197779422709323770977947291948746863796183945978486151105033222422294960512924701690176712130909492250342774234703137154337581252685233450566684350144169687666959179235681333270165839739323925606192269341229468984150483064592401820095182288539293891590866192648316567796647433375350865777061446694458508538896579622751213020592189423024320649869474506569527718599163797817848188785692338334723043397612814361864126344715447804812732643941366006711544145885242723586668769762606662681440351789126089434345250622006137512780084071366834865413914081178922306733338536303776173847691467124923313577588311187661835857743631962201492495039333475095586136884865514055580514443538522125426220565933624931742684499821478652809178625911196333781242313651294348180897520563877643776667361620395387453987630770505345987659128180730551047210132989509022221469110998309543383679517987745979721778895681898452435406350994771747262923961024318739996148362966712661400353752098575857376785787186695306204606198827874462291789643481985095639951448437050618795879546015287277064789991141106777421791899574977945757825241394627202991744565155461899848330752101572910505262859183069507262788071599151385724782823750954993732491991702542545910999921296472061535138583875440308732302359885077753998196889576404877373059570347056199456559632409444444838618959226304386789764413255820144956273130442513838315365204934616814893039666696601249938857924355782180331792265710545540719104304739101065783057929426212832884899351807320511701599834948402334578513964012706962374150772020450446078125894125720174555553584727817148654032858960324230677479391956936840254275183071422525777461733941452760137486332331441241873609173780815435839270093001888826761388212069488256267495535652248020650985892701788493447664371345272518423452591912983886546048054712689523759859528627594932606362872059431825738744799183423691281237866513626466322342828983923745068884495226519394805491938021753733381010604169657179333367523117214908979529965718575707432565698583176406281914469616511272897684711264884672576237458545995479678270571687383781349013682835596451582719896267126959284333728726241138429511884498722056352035694854370373347626492226352901376528232259134670909668836382422606005854376995792741966740834919576322681118757951791290705831054549503898350175019623576948169246976979894461099391721160539695519121435921619915998247095818589747248921956048213279681501150278941150692627705081147742571115222035847436563037946314079807957928808557744865582536997396963677598085937826931997256492653136018102542953609822191605448181528291540865854292035475798312738179412373613797561449920437372842360358374734586695662051445976098295923540909498722457654173369786118529751218424626816809827862163515040634363381321546699918718851207885171122390836287318801216283417790281433829380075099582195550411877163991089084222990051404324775640341399614917078585083865967969030143251016163167268374242850961616618259474765505026823169217398429747336986267549552739299966777947132800210678698224816911164631453435067778889244407963017803605224961285279240288244381116676297451912819787579252331624758651366600275856921093507645905915143953999844635917006195931828164865235332092003608904760212469412547979135446802338919092753259770043666136482629449776250564824549227900714062580244394987997295546131918135331385675847487660181788234458684357833442489461212992469001463260445221175618149204120722959029132953316816221666209143457828063565862521678299295632868852865460664863361284136813981252838452202347581124432812985088005878642233381150219128162573851370192052053559444219606745273055214393492328464113543682590683911854045575169224425844206528689595634011578726532213942127697851969027983820998771469157583041876153578417595110245716336179629691191502576071023540568359052297647743989460041336311921175204046667533982642850976510308165793668795444657157230648732131424973317147356023933341247935133751297287215174224029963956073026934025586945268622217614811345188591883535183772912078435077095390140880041774779533927342161389902221059278754606579733294861675959856335321651821834564169797482291904640995901631492439736733724059311734402534322055659215143233787743444248136181726238231477562292122991552094716843412406181338658371795663560564633367606477036822722901514974747705741747657356357181226941611112136035676499964518452374890031538805484826977453822461193485139924306486129716155931491089992498797929487923793867870011510691096428434540452683188640697557767476969488513087416895760884177548120702112093012581282899031929566811995139821558019388380857058931167997426788225811210666308723801584974151761671077962984375229771952469445541053655688901629307989535171227859039266891253664329199166293366067751183594772172318561912260932812380195653216659819286489277672835642458526186127801344056857945595353187983410296339708378793064667360541726112577688724740792929792974063649282545544771967295568406869795800174833184025915383095670927094787193517333026479860211196880103546485620663064786434313760011306115636997670113499986013574870901926542480757611272511364646950460962253993614884239640395761221969873471439648871898008691173326050138761556153075183287050534794912854076001606471595519932150559505846013349948698938436541115391537897865791244722544702819790324775694469571780748870138898817964908980914793535940134621144036841812114401182931538711356270924814286789114794435658860229217634917264233107322616207232527933494531