1.61803398874989484820458683436563811772030917980576286213544862270526046281890244970720720418939113748475408807538689175212663386222353693179318006076672635443338908659593958290563832266131992829026788067520876689250171169620703222104321626954862629631361443814975870122034080588795445474924618569536486444924104432077134494704956584678850987433944221254487706647809158846074998871240076521705751797883416625624940758906970400028121042762177111777805315317141011704666599146697987317613560067087480710131795236894275219484353056783002287856997829778347845878228911097625003026961561700250464338243776486102838312683303724292675263116533924731671112115881863851331620384005222165791286675294654906811317159934323597349498509040947621322298101726107059611645629909816290555208524790352406020172799747175342777592778625619432082750513121815628551222480939471234145170223735805772786160086883829523045926478780178899219902707769038953219681986151437803149974110692608867429622675756052317277752035361393621076738937645560606059216589466759551900400555908950229530942312482355212212415444006470340565734797663972394949946584578873039623090375033993856210242369025138680414577995698122445747178034173126453220416397232134044449487302315417676893752103068737880344170093954409627955898678723209512426893557309704509595684401755519881921802064052905518934947592600734852282101088194644544222318891319294689622002301443770269923007803085261180754519288770502109684249362713592518760777884665836150238913493333122310533923213624319263728910670503399282265263556209029798642472759772565508615487543574826471814145127000602389016207773224499435308899909501680328112194320481964387675863314798571911397815397807476150772211750826945863932045652098969855567814106968372884058746103378105444390943683583581381131168993855576975484149144534150912954070050194775486163075422641729394680367319805861833918328599130396072014455950449779212076124785645916160837059498786006970189409886400764436170933417270919143365013715766011480381430626238051432117348151005590134561011800790506381421527093085880928757034505078081454588199063361298279814117453392731208092897279222132980642946878242748740174505540677875708323731097591511776297844328474790817651809778726841611763250386121129143683437670235037111633072586988325871033632223810980901211019899176841491751233134015273384383723450093478604979294599158220125810459823092552872124137043614910205471855496118087642657651106054588147560443178479858453973128630162544876114852021706440411166076695059775783257039511087823082710647893902111569103927683845386333321565829659773103436032322545743637204124406408882673758433953679593123221343732099574988946995656473600729599983912881031974263125179714143201231127955189477817269141589117799195648125580018455065632952859859100090862180297756378925999164994642819302229355234667475932695165421402109136301819472270789012208728736170734864999815625547281137347987165695274890081443840532748378137824669174442296349147081570073525457070897726754693438226195468615331209533579238014609273510210119190218360675097308957528957746814229543394385493155339630380729169175846101460995055064803679304147236572039860073550760902317312501613204843583648177048481810991602442523271672190189334596378608787528701739359303013359011237102391712659047026349402830766876743638651327106280323174069317334482343564531850581353108549733350759966778712449058363675413289086240632456395357212524261170278028656043234942837301725574405837278267996031739364013287627701243679831144643694767053127249241047167001382478312865650649343418039004101780533950587724586655755229391582397084177298337282311525692609299594224000056062667867435792397245408481765197343626526894488855272027477874733598353672776140759171205132693448375299164998093602461784426757277679001919190703805220461232482391326104327191684512306023627893545432461769975753689041763650254785138246314658336383376023577899267298863216185839590363998183845827644912459809370430555596137973432613483049494968681089535696348281781288625364608420339465381944194571426668237183949183237090857485026656803989744066210536030640026081711266599541993687316094572288810920778822772036366844815325617284117690979266665522384688311371852991921631905201568631222820715599876468423552059285371757807656050367731309751912239738872246825805715974457404842987807352215984266766257807706201943040054255015831250301753409411719101929890384472503329880245014367968441694795954530459103138116218704567997866366174605957000344597011352518134600656553520347888117414994127482641521355677639403907103870881823380680335003804680017480822059109684420264464021877053401003180288166441530913939481564031928227854824145105031888251899700748622879421558957428202166570621880905780880503246769912972872103870736974064356674589202586565739785608595665341070359978320446336346485489497663885351045527298242290699848853696828046459745762651434359050938321243743333870516657149005907105670248879858043718151261004403814880407252440616429022478227152724112085065788838712493635106806365166743222327767755797399270376231914704732395512060705503992088442603708790843334261838413597078164829553714321961189503797714630007555975379570355227144931913217255644012830918050450089921870512118606933573153895935079030073672702331416532042340155374144268715405511647961143323024854404094069114561398730260395182816803448252543267385759005604320245372719291248645813334416985299391357478698957986439498023047116967157362283912018127312916589952759919220318372356827279385637331265479985912463275030060592567454979435088119295056854932593553187291418011364121874707526281068698301357605247194455932195535961045283031488391176930119658583431442489489856558425083410942950277197583352244291257364938075417113739243760143506829878493271299751228688196049835775158771780410697131966753477194792263651901633977128473907933611119140899830560336106098717178305543540356089529290818464143713929437813560482038947912574507707557510300242072662900180904229342494259060666141332287226980690145994511995478016399151412612525728280664331261657469388195106442167387180001100421848302580916543383749236411838885646851431500637319042951481469424314608952547072037405566913069220990804819452975110650464281054177552590951871318883591476599604131796020941530858553323877253802327276329773721431279682167162344211832018028814127474431688472184593927814354740999990722332030592629766112383279833169882539312620065037028844782866694044730794710476125586583752986236250999823233597155072338383324408152577819336426263043302658958170800451278873115935587747217256494700051636672577153920984095032745112153687300912199629522765913163709396860727134269262315475330437993316581107369643142171979434056391551210810813626268885697480680601169189417502722987415869917914534994624441940121978586013736608286907223651477139126874209665137875620591854328888341742920901563133283193575622089713765630978501563154982456445865424792935722828750608481453351352181729587932991171003247622205219464510536245051298843087134443950724426735146286179918323364598369637632722575691597239543830520866474742381511079273494836952396479268993698324917999502789500060459661313463363024949951480805329017902975182515875049007435187983511836032722772601717404535571658855578297291061958193517105548257930709100576358699019297217995168731175563144485648100220014254540554292734588371160209947945720823780436871894480563689182580244499631878342027491015335791072733625328906933474123802222011626277119308544850295419132004009998655666517756640953656197897818380451030356510131589458902871861086905893947136801484570018366495647203294334374298946427412551435905843484091954870152361403173913903616440198455051049121169792001201999605069949664030350863692903941007019450532016234872763232732449439630480890554251379723314751852070910250636859816795304818100739424531700238804759834323450414258431406361272109602282423378228090279765960777108493915174887316877713522390091171173509186006546200990249758527792542781659703834950580106261553336910937846597710529750223173074121778344189411845965861029801877874274456386696612772450384586052641510304089825777754474115332076407588167751497553804711629667771005876646159549677692705496239398570925507027406997814084312496536307186653371806058742242598165307052573834541577054292162998114917508611311765773172095615656478695474489271320608063545779462414531066983742113798168963823533304477883169339728728918103664083269856988254438516675862289930696434684897514840879039647604203610206021717394470263487633654393195229077383616738981178124248365578105034169451563626043003665743108476654877780128577923645418522447236171374229255841593135612866371670328072171553392646325730673063910854108868085742838588280602303341408550390973538726134511962926415995212789311354431460152730902553827104325966226743903745563612286139078319433570590038148700898661315398195857442330441970856696722293142730741384882788975588860799738704470203166834856941990965480298249319817657926829855629723010682777235162740783807431877827318211919695280051608791572128826337968231272562870001500182929757729993579094919640763442861575713544427898383040454702710194580042582021202344580630345033658147218549203679989972935353919681213319516537974539911149424445183033858841290401817818821376006659284941367754317451605409387110368715211640405821934471204482775960541694864539878326269548013915019038995931306703186616706637196402569286713887146631189192685682691995276457997718278759460961617218868109454651578869122410609814197268619255478789926315359472922825080542516906814010781796021885330762305563816316401922454503257656739259976517530801427160714308718862859836037465057134204670083432754230277047793311183666903232885306873879907135900740304907459889513647687608678443238248218930617570319563803230819719363567274196438726258706154330729637038127515170406005057594882723856345156390526577104264594760405569509598408889037620799566388017861855915944111725092313279771138032943765475090165169496509916073833937715833230245701948347400070437618671998483401631826008462619656284649118225688857521346375490254180833821383522245258726789379505375915603579454698509102256225455003017571049469833483545323835260787092219304581782306012370753280678368541306584636788866433486249368010198782799630670259543265137806007386392908564830874157618741897345848450141889765293411013722158643559915527113623322003526677859159890231446163321026519665907632061524383747619049531582968836265042094840105654589130629827717249809641959472340465110419821347689354018038256954956286039244264159867485982280060353862839166201252826607493306196584965199979419393226017235710733642537083033011433624985753635970424446475998999950855041354977558585934576590926533307252775416758431466936767806170350120038448748838233760344077515947781221883070900087386627362091660799050226989270321899760379509890591085910392967345614610700304581921273892599269610621167643642438350141020408632149917815297968152237983224273753657008553469979655413859050326836160222788475547062698439108852103020768604706804556846560491686498860616222952323907098092629302337956482179981632645827888877674520846371971063478923106675469355047615197781699025881840407927510901824482787052505976983753514306224450902202382439823125505841623207188319300693606464682096595006549290109716186526367216107417136183776673327975626854801245657682790317603946555394523143387567730349791578588591011663748455675847952713918608782540104233329857442747118969610485126401975043599092076621558998660736837623188358845081292950114665354828171448464056865246540907815471619625784469575262569455165601519164029217988548909373280314651922247590030965715490505361043776868772619159528449204647868973473708598413845131621192972012634240773694545981865029659233534512568454974541129819735876670728601616056204230636066130281496773445797737750557564665475256322648177116997857087122831543104569123262503497681152452174497396136748822046480519688754341969511933120450216051429384844754523821270143830957855813619678302310685080845876952059053294683384904712099162556365034003439670828933698367423001575117385151269123066172276414421607512917341874714315093241924914160969998672815823859257359823894849274919646152272273338746312138436262116379467062032630225055489580573083750461299231136299173069489407342588319483999274163950984439634057635284717562762192786522539608720131080486406534396168875452534263098969517619019770963192258709342165955974471750157538376741522280570650280683143356524917199733358403064153550759115974264366482846628136802174505909705894602744292632222215459450758046571206068639904308236939693208237490767561190171561305424813311715242568478463363770015204417916501168232575236160495749706390822443444510351219048819830276001766809850965245439007199098034993026860675523879685292194732393352370086650221407464554037222343481675749373144640928379006539196774010355861936181566836616864892395554961452826472894994160615803045867891461971728155451100056660542499691974102798740593276434953714525167694620698597880946950174730228414275718871940921209137994059430370504364838600434645227993302923901865922689874992113256560557840142335426058951056203690720289393159204404768359276364799600596404860761989159298194950878786027663459905404263770045900803279434720629825445256356479542992488198646136171314485773469953475577155491384239289401754034139973846169481293479242234609743019627523013828607224496380953838401526567819764507588547855155492345234781646033062938842009950803260140918302574385770671025227243666905988908545015570754230316665924723528924702588624794887546252765727285151112878270673454310244515233456542284311039679528296250193698939983473961763988095735415260145372964681473821843600521099472119416591494716705203792255209633645848468041447780302164728623999264048363508773747824501638200895240322534379925790129265640155537754091751704419627285039126695956664877242967660367303453668734049079141886945214715827908157233969124039985869390855173079801955546128513408912061084012213617070570430060569246855916468834773320856891412679428448041384682813256929148160109786272696866867373917118931462269134894580427789899608144709524762905019260311649206867743318661546966896601822663578788750608856243562678932797354633904182108774638039216244772025672699596391824687788455497179038515839204748319903127622437066235092518775434140107112335865907748122063763459019884225472727655290504399502524440391136582670813300580588209460310208261341369127572936992893029961730892843670315238589753987388936807441526373794240506448764171768613552343269865728970463069180174277972173889859443284852057257588337563820150546720651674252681894851673328046307647813293132602893229366045210213189812987661526244487486693890406178469916665417485084597970146178215845014919572109825089234517474512254327386819725864944588083771398685065984085457731654169174067052111949166286337732263753475666370022120327524389997736006074042702972203634778048298834855189525079474605519940340110771169725644261005092059843362535847069597185762616776630211747878341975644501838041029203240408826617344339090263522350506828582854432839618480925376130820115626869907999117084755586982150310073563240421988569584200682439926953784403202222374628147659230605547476936830576549677690471159625502474507809624837449908025613750915622359081010534493941774294277091445166668700415228544638076615351141556487854936011387473103828773313388391709646174829063156788065182761765798535021665998607464012674884121130098549938337106031962506702797524310119377335548537011694674858888363080333287739571656275340367272180705622562326374148833499289970258977299224036941750743427314194157432466794578586039894075097356363688815672159676354380665593938934382075984061216064317664421902677773799145579945031468708716266226524133590569928494006372744908821635242948022566330458553636337251762049074624062938962390622030424872688432377631733574205753997574373508409657792180880089420590662572782307692788656445563758012667280952527379828030076636976928164844651277473822397061738567507146692748220374881122563994075227626464994658463674019559973702838393119884822335539964978333165008467491254522956512409390963784095416901234675375280139080830863022653352387069273071984654649454979101134287154636695543437462154391886526085366974366530588562164411648068912837357794341530609478457270987037976921346205969538843826760827659181773627669918727803754219954172428335791064520613736884708545165822193158645377018313401818827251099922917614711860529176551422881123566217241692680620648845317615164272953585798375412375876100415475805595730122459276711895277333823356043374201321392804317053379463646428351993014576706491847707768959885421647973371769625943938648074893633201098893643528324494132569317438323509258286421276209473432879984387198291625035886368857440896091619767553023636147840186271827708891360398933077293060296717760258418030133475474406093218222662077059842476082637941388598601935208959821941885723823714271930349354518240112671046073097412681279072726438685681544729144826761389945092064098792647692574698812334642995267308237405720406143748700867048612599590178424976845844736824827947824753176338174814799571031203396345226743415123722322454626546328353564246627786460839872179127843089641636422237152822199860850600158245169478318926060165827491142774933502865503727691068107557826463340399219222602208590967841860013859653877265826244657597694069240541804444738471607901449743018055889337623761296918229234768453759556468421122698731637506249971182291485689604472527760093934343558339195165132985623645893149101860849683480338090932736261062054795970421298669883573560404347128399801249802209466851093490407878450102117684276345079137687609746900665759683043519266676563960922648845670212850744821184836102907689196493402300641753173483914758916672023069245347107627719792524997328576890388680141780313799483651089527220946591304506656658258539174690486872649902546765966599164547365134259755577397348506528439977384490513905829430130008366961455669748537793407881277215791487210719258869089277878732982982214574233273265987982756950898845306240223036486347722967056524127035887830281940074980575439016285786745531327197652607107643153112391526077219362144346096089758726934223674331613718574577608117751518069662104795585140130069701845007026290479492570837120175279378554957627391245587148332010170361840521636818017341425089806160634676330850504184585816629334093479199103685913053789482158651701181210113330006695775232786685518078256752836149494920745837336845813691407977595925267273966423478746614399819648081036705066005238269165055144634711116867428177319502560642951637959659475644987891461446925936629309364804816174059808214254340525211371332408113913579971622858101419103410460569290782498956214560041045692221416830893236662517618696271719453854998551484275173369241202680159928083201458300754484742331264387808478085056104304909999364345905195187494843696772757473359670883349609157447435750398602016397666114276536952670441155200193914842934601015129531174458876483070371677396154265591399083037577663021309908712719887069032930470124105861506399852998141757804303480803588203202011047607004755710169423412034108915643947825303164593730437558194686752534953230130276782353560116641311177996099793662043449569683547930754311327558643189731515171064432189249793277801264964764475467078165807406131259375271847408816115479818307816751047809291413954564631160581269051753953556915775580410671981231638405277556052272223764711883233223099585068971018717504781906533494858423259762256575841898529144717833517322602985786292943465056366932162627673816245957417932698892327220666636081992490988831468529940991386734446049670842442978243630232938910355965601739942201988690257245471401633009612146187208365108688185334060622017099515827070442337042180176696349133695996064322005328873494893135966030424380804565944743335678316727037296363675942169993795216709569239605768464124347542886216245149157793040476753348053033153307521541526385710525422090937728732169921993755078088729411025976039372079494630773816321627677758231545511712133606496443134498613014698318686111929868996577503784519451854724162206976130886307000710449638898858341033555502859580220113658542705557765562668931284762149536288307592916507067735066925352644695336056301100688585609305533142306464911577431203418266408784648989833436453569414451359565299946353194873235833654149912091860340699657865139372140627836385084775887199350057479097575575821175405351435523866639331618523705204967991251182676180080717649555661886440043165185901961567355270606851436442192137316100204985388311981864969315190493719216273102798831337759268776002675993022444055363142019164277411901370175415170402452994379515292362166695619231382936999237019398531726989373859914221290389848610849267471382592106802650550676862778123345733959989844690818355080097898838050307572662908675028309257586145638783656294981053573592917496461623137707802996548502550264310977934737337524379483252699651218500997055530858400309861246730432929767608197353492136895008495286646640838728286016708683549765123021169308056436872386411643645448955160189710984522491878379890966570195078344359051912278712755757733414151965739899834250985394949988141243867834464873827376170542306270476547318264631092291393359618691179772831791867789266428054498091940593562998414835665844886741681797338164265740108940859491300072021588718078252254566398621813980490305216416264740583335375040007401944822542799937106484915540517805980677612154774199779863715955202827504416259521370231996415590408422945370845053182339069574228180267420934592943172176664705528067554152692935177725126373997210446455205841575750464849453827350764901238368245042240627692293459944117496893475532632823427014968216980654553172552398001772054307127018595684369569896821609274381477524861268071826303308720453858655587689811222175453630040489748768999958305726483427590138858476503981930580029789904414320737977684158031959270878986203686850567428253092616139905181459089956386311375579715072615294130317445492402147964746006967031278643019018820326716298212114252367320903055760369513934774922721962527524190979265435827058619143826236169596554570620436214536914822593105671368762112020418219967004586305486471435319876530196330777690285679543242031748695423978897102466863258735101760481858925973866441814562327799457300954367413841317476805534437990136455326858247674930722202900176242045728990633288539907851099363098353777693682699124705280123778232411442696591393016391555798526705894127926299499436463694470124952235021746832175888475755348746313185164231799127100671136990144220424064070263374666063079096224489100129522953604036686289554466354237554841828524675610324706812483024928725253862445798579719593410540608705628706044299291933374984302929767568868612774974045445966764907689233866190175323317470499841583977555955451466511472508792000876600354880200354341610020305183536055028738150423024888224201947289340717085805566897943195571575730871119751374639571086211214874072275776032636482665098692074832278093537135164020890698676221406470136823982545108075317711863228682727633783528212174155204433402435700820641554371716349645643195200892645976028414305198296988235695119621048155662297295589421312543515213365886532922224290456208850741610776952764618857286629967391241027920346745904411550242722281550897848925808723123074856341281625659723015778555980028113681066356892739709682211691075159919634387328632629201508717133440668793907974147464307979333080873035698719317899381257885830615761983975641743625647621763309874170588059999652801469172287371518094117880206138274965442896592604996471821958296214671212080939644348004070447124162488767823158200105878565032378099290417553718057489140300242884391770346048989829471082770577892817470121245176253190918409307162964622812236802973323666124435869331175169666347680294629208522034563496792889670439307806791537848750850066089974053287840422088610933543981332125812323083611244408211512816512732499175306407958978872018917220734679395032969131268824194215802460569242870178218489689038094097461603250984979561010673833099080031030610623273280719103933857898803653226331288587588493359764699655904785345917976519080139726545812480950502874279621264289206096715928928596662751911845516371261980516927830644753500367390898138711962711507442635682622434301099632308185211282094860540532706943313655028782325012426696091909913326994373707341321077502051446264702381406223012585495214299304768475022588429094465242471206017272772932505883443651104529738473935942072626852387931086829030809655595590134562395542392852379311884025935005253481534222953347803554559778610086985318133062573910363923537390428356586131351283884522733674984196822550243685114937855272452177655956877624099053026256134408103683695435680852395523052628815095052507171773415550313877639119316720661902999244435131761416014843172628442837738319446899863061749834282402161930271425770576768541237158716334527693451990427356693545040375254639050787477825025408285191161819606119006659792959080766107210732529588732418057039430458592909920364514194752283577743102434837076492814142717099190128094188185144575359600878748052621212289966216277729848620201718774883691046302905667411677038849683178663211535119560453439860540202932233471619702890985446017052830982478177434296395989471138710305617435238267320650123792262353793696725252438626128226858048556769046513841492021753359156153240673679682599281376318084871440477118608697819703027671908010427058033918425787150417682388147490773175287953555058238774984179040090396562488354393310516827264160271674603139440215805186047972510074232810448465132126640074148806984200355166266846933269740692202640373506831721298994362375926499655227680229389812003725734159634256354158741219975987773579751423646751659964273643626108410171855266867978017425340041413187665416284844621550331942326302128117480852834127160417563426297896186359214732873873672694203634052596734138811832703362713913014107777287016256407669394276622830711711846242982728723021470267633538891167017193105043928258310537830524953904031758742939935394060558147511014286932645500797977023089784096414561911257188068645805256159634380324878116399174282037733688479355234881707888370098132337842673385415646164450171390384335952382039527899069566158301776853193821776129633949579923032979482333075571171457733545429404818067652516223171252457438333367744887838869525767143577591055712194136166155408115021128930500154964397564959583716953040005798235925948481313394223107417643490492590439641988997339959250424052794418453135072420266145400256336790234518361886727697290529885440012309435209845278594333382772208025665227845382614199424900507497393470549069398624053307361720832480251672370005674945925863234852428631673708949656027554570443573407126287237246101565716669486628658233896757493447439056857711282562329844093126286339122564725522333620075830814575611475823947498904444603437982518749703249992081428801157378733772198329275743967801910329116475707903909190179844972963905018286179464372109227030337865606750951106786967420881963441994477648892305324369902046628754616797189374920853292157425000612844800774281587438224317401256447668064171875578517823939138551137344891967236829604273661848321020560659365531063540786458106098743397747314075207840656074324904192163038905312801677704588892990100305442484436567019705245264494523894846061602983157114716045079637049737235748838903287650997996653079191515260766101054634682095026518084184832296266527566193128529460498572374403753167457479414212458293039825006443051575772694917463184109010110962502699903664495440542542142938680559710636467586597514545149935085838170298550606565446562801932139705607568436638967812376807725917423191981470059170449292503170689359987610414971973366352728956501902486157955877439693068990642135651712352823034393312962930161809449424946446233634380764077610280247359325555626601150583490532390819457101781766030810321811084123280098016925436129123628568957535372708515049092313886050683485068187358324479470998838807898590224860402145961136838870016113879350377902827296030054648848968218816327779571067879941099752187115374835211690427013397473702935492108934272861609111274876564778631805825694593498506846804861892691431054019085740014621362634150765122632827059656235013343217457295763251029599466058738619139364920829082521338319912630744635281639360107412906940282230041456107706969125262522452367118800665454226798725068780012622076276164680448052578166659658281787946299088442478823249893385489827514294910419807127863660338552431521603503343280724688204216987891259949287235557145251913128912791488337376465833611234704691419472266538783225937801735894318812009320716444160966358764419135650391210031949190047303195954997009584549393427933945472129273040919897442592158932547139439405295041503895371690130699203969186419522146031577542587690433389856191841420400909836237674679435519286180057627929713441938887903287428188691702246112912096332097497844927767959792704367247345324941138632648231213795395510725925266335319311225031798504735643123236320981602844284985810268768588725781436344140821764710208660069720624136259192674078302148890659103690163364388337285619905484223708596439346341462078222737288453241827483311859770008935494572941950257539156303030028696344894170412527024696127881501205781079718807182758357425794659574284324219790366939726434624042436536310729307714880389288034900303968358879602079891169858149535750079336470125533784262795624716453188038049282759266531180520722668865165588300942936672088325514751047647968479508577883323259681466046399702436699361100613130372497968310621980172277534267485537501140974263922020611802237883594776239188331516109960685515626250611706307922135017901278948349061096832015064692015979205858544340710577726839217845466619801058661646388594466066010764068276437055508206680876329704235849419982144493427454351579420323047670055154794306655993846075177548371277261263525013526247936756745214256645715613073641178194923159923439317388913320647445830149666834224735570506646644303656829076940602600980731503149510619229408674290686255310965727134097568786381333909635949541068903216344621529530400333220491469555961386240368505710908567419591401103664442306531473714057834553739945114867429015804932561301781807974334992811476831893198719549461034105963839610590279089070176242868766784840192269051267101607132870548559355260824521582896921886239985724317241470684480555586554087550113511264600148337069031253281262782854556298781956836384649569365784926399799357951602119435681186450907182504837804921127685751737260383991985187499661987389617246650068471969158883496399488776091656579823201353284993378766190452167766815657421570491775771087861458712080174545650491865100128202643872090015892438188447028140383940206437604450294408420374703108656622696626225539817801824554258186980391397312291173730380444881810364655536871367469097571803137889443280415757167110920467710626431568108399368876966637168009583921696865086973625722852980039565450822764832970381652851098568973976092719100844826713892754235524698742520417075622136751488305153495432164191810248230421938562037006064266984131204995677156433875274315552349364656155903287434976705523947041792961486984692325225711225766397017648662037828260863649917460300179837100454169980511457151376235960239789180907045151135973637650058946986170621152886390290358544208334672178465345352125819989962646744789035794528810579298385673391577266233824937633701990541303637614902688375797233832665213568264484725173110897226617534812008937174010904323064619498661152000335852953264242272212556145543648403899575270456109347342395333284286853933563144676244340656679429983698649711556925280395696757385406288269050581187788585034004537435848006794583908053356265417048502153432986985676834320577489603367137700317737076416019099567915397351663563644314866397901677715953717137699610608457523281237229752928863616532479872590250875158826042510398222252473630015503172974755629131502027578916939223701302499900684123489130293422838284520880638258302570993296142257714690583138179889582652860632352163484076305505843814265954861350982431057373669854000423931062316436742194941691614153265513366042949681928957483325878286630090847642404611487341191544291528775182711970250721769651552726799671666201910109126290476869540096230031405243679322073773821693491315671740797971673810326678869521552590609756378588225156863137116616771095165137325986628075919164590863022524487853881691455772837493407733998332370626698022069400952958611694325174161870610170771915127938031138248720625369017303121324557205065788942661043037752903124818561226901668632437558274897419586865208082394387966881747010831834948853751141792119059218986604945494551683728746750702786785852527334919711299718819308976870836294562412797694892556445784044459237809666563218062766468460212092243096178908163522262130175652095896204932600825473314440746089182103644044859323897240345256964094037683325518778965861024212825138640045018837189108711263540582161807695907829843194165998789707719807731025125024720524764755437880423172056979449817642897280109584960489695517650388029094798249408906199363509093687002477652275738684926502545879949807069508410018931336069491214081956091852396282152536922363336740747470509093665815859201338104121972848609181543115646490998044950795802696404815870919621337351728543419464745333588615288649309067279219429243747392619652834957455991121605023828401240208039989008958218170985076691349132772464741737455580393098691944813127133165142369260089219637587207491461233479513452954327056624164749914333383830716381991325338835188598381348123815310147025626607034269112670574399411057212403736296135701696592299969344569882509688943338678898310910298721753358070915655662953964347403734070871523221578475113178877733397100066561506252647745933136136404608723326298028805443184691324448800777515756256421330973570355830617113976107855074982560675782292146134712503690051521412099467028539444567098593466259506770393912742360382753414880141371910933800001994789406893174247900465740860007483623379105616188482931266222856540297966587648043206200507462841806041638339612637386952136205886976583883993845276947394954200303848968626987018120723592296245816501503714951544369794102437270332756733967105494991111670926786387044532976891261430008782102222165130346640617667820814935234173033505638249928578849223862197708095731168340127166622676294983622799854679994122519585289891834565568999083686692898903953575955931683738650384447666338096609558073702302879548223358626445124857002222198307859722009039136790832201130572531097459937812330650230739198677560540579574945504521176355621872940957048461262734344519248986182545908965139047387787586348450227742284036469619159161953944619720661882981215670502337803726168552584073710543905818996284066689549493362216580473071682773848496256692190105776270831686338301781819142469561842951983248991478897129605148467180929825585216703079555698902614336997406953974255281459507117959340037752354428642942429045487498121883221753423215794327147128648857349591891960709866672619731082824490322683003962622171447010710375347196903133874064876906668406418526929440539470715303267867504460104875902385004773652100350451391994246232998166231781509121101522452464436376794668535192319654182336068931156362457968314874087131778308402948058752467775324795093600413075739261285694181241478829683233569621417998764582671036131228658578615465385482971852864777607136916846190911552606026597855064813896626205197005631051042885521797544795505320148203814303804547529245934671501906821021724904456987016210209980706405622955297001899392886204710789439425469146352468998922990143098360734414432397334828446781546509755531397110067715238096184865130588015958658212957908577485452364993795616923273112090640024130684569170894882950807927493497027995479017670780600601740515558729791262775471568346731305829047228105567275135847834742736139096014498404517512432016643389818328017257561626571932639700788393999676060990609803267526928803220482775084280390791450386951321857461171061677954409071031858935851765861632009325050449815236051663587192359115917528622839139326741244468955900585792285396851127360476248656509819568543553722258336595764030082587676080327691087674812495312784981148755547078046590247610173078522416891717432338033857665552604951046648667974251843986571356514757368844974489198937241159033188370119958551236942389068129198884215037034833951696570167417270942820166998163884390955230276003568201695908776398830427560132353769559200657813954672617319003033215053340684672575416932319121430795421740797048756678884876591195321078312665330817459704546371803386131660689140511227147092123045043967011768793066841193006682970785300001805276517658874678275846984114631016639559964946965821085460499844687510145859578132649723537666991712324429016148657819799352719964674168875842490259539674131139209688215967932967432852826656471791065739966855771711789901186883329517562022835732249426803657581706241225748956424421318666103846265421820025662228985907860372190570323215018899286459672123041586536481071535539000184645608406493724141538945431986305765687643374391218490903553662105863514761975056203816881435224481990124829205994973426032758380390912540399159930947430603486664048528017634801313917668548100694297763534606980869131972157910878703411044367821419523217098751306085546437485024113400992987197857899862416024209288086133411632455004459619696052373090316460013039800940467427605908339070863602331394899334966708568980546857717372445995406902450694832448864481086123781500485239336436644723635377633067983753762187906914968513379403372876842464420090857355027311367080320459544764620966648798588088569909263239068212111652699697283725847815064879823984396569075193011433972230811530469277567070102210167971339935194645657118930874203854356237828052215594963996640314523227580578188566019450020024022883575823698143584629290025253079151549578335611969279387985272545260782148988358730067200834516077811002701989857940532122600909131312325925247336660395108922399836508309484004563892539961790613018061272962518723984178327204050158803234886935878163614859555216415835548685132917227236051063148770879701410194096811051365011691095868372083468082022531881964370624077758547899756463929222302388743240028828127383577619344235178889042034385113709971389335112177381670303168651330470906164183316989820031853057271850105090600296142729408545823281973764245505035274677327406888374108312676849346413923165994210569619485010006629529696272525161445552348350493893381774317553312461939982820869523261480333875328140526423164269924161411408016206283240128846284935534262357630666762972048658761825646222389613558539496082914389177182808443248725230130236668965343878018600360150171649546616087980508155520705129615146270706160124129368417109806278413706772301987968049306800222895907339225526481666399635937641136101551826295817064587277380053822895046407615006334957933550403718553044621161959436128107263461473510839767493348292385068599807037838025308001242086681750199900579562360880008475837829225903510942600593462002825134181524391556805343177145972883250925747615178329297793410342627550328268266513044740176754430872348722865767748980695061159746749879585575818838755558433316821039560065702352035190963002663764779517773071120627195166684631875791300039184796104376414994599597212660860012818584760278706112995199618926904506781219283677274360602249713514199521465737589561703501552822099687754921097942957860951165885859146130994277294392886118714170063093918550921620669063816363371226584819297066129101912009117963828443577937663231695823540864261006812590709702328668499363607754431461433645146639200100449398720913805292282981480243291527099485349936799844687369525832594596061999897846215370058097868444181482571733187303892518281285088829947100699277580733502300150322434942691935892241680486090430784448182794421062603898061054807344139852587410061019043731899400576904324297210493591407877071935212749446577744901052633819042748440971733116341726625524931517108619481864764131542733382230021050412134614828898421403936951155383046343591635832079497360324671531871790188361183474513740450164064203039608908460740099434431307697110650146420024010063431245404207888790391693017340002966710403608907472402538418115072994314958320223564909364084473328356635122335508268301235778780059149101095164014383162168890140763961781667614392295545794687203573968969683961310268724756295175874698266078652415044873043039961616463718029408708255486445499483405649632209103170916008947511188553063235477719719358846498855442696062893505246880013178626279995053377788311304322183943819703616929462346597465222479073401587272547712889255810748299426788706934257404778586574951722474369177797620894291725243683044676600542992454995510524864590955073270242813098889173862442301358041714571168681020693008432137864120882165250856384468202835426079622378104879306160962120900546139277662841273477623132835482172184141905744845181939751054487868198984407496548919098559471969601851758222968887541633347522408378789735773047908577447455612832821602155405827403413161537703062586834998055239041053409033738811097892658493252502816403962513760725633770146069167066532792804227640407793063244111032775696374294484490686818127257488752515929507723255805228951744072483441250997124044245002972241560389945556322416985246776479354588171146372494569645044664389731609845920532205528035042708713870365854532839860009701966815075588650203010222535040361547144307212036939817837395932005593384478099755206914052673265945310464643034539117170528062001382347585137236739411351633235133639414731121721897017894355903863378245820238085197854093837413899482506971560070581869717180488877187305565082199032657991670991375994715548887249049710488091233361596815086654533040897420918972630387979224917195931114681723497697060923389909780265009991656396813591561241167631050181066706074330026215993795136138087227630190138008467497974045326808087116989449828401641550417943378806215167122246384418339274360101226239888614315631640448778569771022755813543242162896665610766537527581122529967858804837843022491722938307559320162340428965920902597501754992326005980149983319280347655975453018792298336082007716307282505275653545578764793060152715159714058331188087203708668056251292305821109172362558488623845891426568076301434954074171517094515892875501695499111840858178229638258010945989540593570094411084063836105458984480043361447062204121053667779781031871209955187841489773469030701494082781643386447987813541928619686560273783351063011495218872477399881442580697720115350360670454497087331991751276747862257512673009834212856975144464400164670719735957723782880028443376649462827806920205928717790754417643349585668123022523683523956609982420767496043227874931810868704880862669249208573923338637614572568695058385974238082935007777350196507173178624443083034379426695131525299861771230396635786393540471239548256712106064485043450762554932488938909032885723540491416759238405957726792202222426334233767555789836316498369396754336479164137489982528729586195359402289266842574275563299728756389707218806777718559959407109028331597378952008787804003656090889867357802861255136036093310424595504144713773464998868544306774262547413990576404184256730735302705795280749855601356089667937425593827736770170883572239008649973041789662616357832225210578257649273739013985013061468168849339312697514100690262033749817867146058598177547428269968309142403958731250168331862961789723822019555503669132671576404928132510283142659583884581706466370843833790284331977185716531490046056470772764986588556555768286522900629386233120247044829976595281900134103219830584999889551861024304761859828979714523322140424299670549403824315205662779874087644156378985822912837278089808934231141976491894603256710914810802226120475657834278037000873143141963486671452722527039769205262274203426581043884495414501633916045920828107512246773473421931989638336413373390377527314999479702122485635854958920294034194178363986068599912714827099719060614751206329526056584307987519858607260899868297608738956007721938884007057775201407943395440100133039027602706916018240425534743865422358849355391881492792266635344554037388205070311199820212782896950964324617745039301384679582379166776660002711876725811989610297886973857047422968098645009043506835883520129038241548742806327037195310231316951437031830207973653212270132062296130332956164946204275360086143034956743430054922822565268407326636888702703347777179944033328576254784971778353979267371144998163339726174014723178325100889932000687150760857757536565656128387642016524913435354028192802514127693003374858178765937801609843662827855002935170401596040567581050304583919773611513930972873970201276524751450151031955317409444619072692633261636665074996040178375438691524973147576183626839083375051101503462344828068198390277441389160304480458017821183778939320922603271351908911928244613374097862142853211600055588341975888889031248819067909709332809915398960728115270295753536259810005325591276382805573065543467446566683564774719472283162317906672736183993223102076533774187715372647019857607705441299419039385427683134132487996815367048275318696287614595842245620435892702812540713583365530859397102704022861473805875320990701516754860372502822702968379548430315028970414603559348258128594050568208301392974321607488467515686008955385940196659205202785744872729589795752587093055935983160549712194166692915660109132226146288364438402453900603780255477798729048162275643016797846870340152676347525045453896570285849270190881702901893916918832796284651896494340641585628156686823359810520385209558615670636005331842256151863798153037563625580288816364427072412695348740831618443504444250888533018092564461609996091113951814430268489089658914088427569555776759816195630973346237300751045582007443281546875858870437836934166677713692663386518957094773112709376713868218124905496375117200881720669675800849753912517665840355747559801401012653081148724607157141352062126076477816230578665967909287973118375383715649233723133615052298569028873611609148291151522304121784160751009496769133398827034261917204042708155506550100511225476199195096393685765737449817253079495698233212936538833653750453306974244999985170886819018304141272644431961860521180580279926409223459508278000136248486483282881941280042156180099757955986853814446976661965062418190589851559890819113416035526750059080140649344466287104441781515942651749186224267662913856810773485680098316368933939766355535250662723749465580314337860980812473002848635642443438612054958308630757080060282543470593538670758352068905994691489504819309729067469040123607128190121721051192425925544251343664294738635977194265029127141898465187233841219398146213085426459916583414896849560360577604472346382310937149931022118475673470244252570669757559134447073008116804928888601345715559344236402544409797674634907611684061106523523332884863643970474132384886541581501970041871391570664678356994681385349172568485894123403079964696165066987819013495010675208425844180548428926368191477823781796776522759175276962455107630104675748554250510193865389994838498242114038312047798115302134713883725786107601427676170007053985046108369740617376663142531058246435525514989280531554273450180064131775570192010541025584709600586040176119502925374307956442661585116506973088914465734425092531287865181095928932703650890649123740617561910400585897524123408697796787262678600440129802190450476624903648952218512743907475705815258309709586983482152728804271677313878158052414139396229624609652281297956518906209844755171733141207710433202360167289075766824337190815842761424833492014409594893413743200400231527146841580713806377736489658756750912983540399956575429683697991345055670901687999952097007530439202253353189258925868878723559869921971701559998677907817273833318769527310721368361037755208841671401782405411825710921378214385014594371719517515485777022717149326225482884645167355015511647148485473029387913480434783909116400398354404904113220686054210671825339866059493855805681997498861581866845444468056131382113021837894169797390075107568749639863882565265007361695012028365859479365258533915606665496587653081949071384420399355868688726891761213619761092093909950365416115225387608416632445477323329453836240037176556443431390021550323742928975979022949741020082910816867856694472128966460572684988767532264651043157035667274282928045787045725205724826617491422460619712514495376294638630924136387795778977213538690053343126475150874186383784282514790729001760646468401147553307645423623467751285448938833353252366455233081775395891021373998608329345810685915202744575522489497359935804919088319926196767741044650823958191495023951917170035664107948818331008762080908566865737950737991174345728323049211096328045739104936032271499507858066128902787111497755375002110385907632250126322956826500148300699364782232756935523363736525868043425602510942239662738207710951863840152261368539721459844239472699351048636518315679159640004767962899840602797803769646565195510632912824846138558541449491700878176674336889221448315853713538117202429630115827478541657887193321382665098982595182876431915561147338895672101403721158211091324804682702387566873433389007826029931680536105659738675603271512754244511630993418852795035036922023696705725893974080648317593535786038332210840201489546644203962291143282590723291993563785329279115440043613420160574142101033824257773560259937083754560113644132438503757775538986755712985293795171358913086016355811609372610924981178517152756131516075986104279968089033995171224203675938612486202300954113346563608193864309737169111369794969439633455972627600543738535562868657173584596351237742461705156535661821886222476503413307182593833480738498518394267243073760944213139476618147339272738069693561428042269937357486099748029882203108760942408901254158047191697990832625336672814006564513795351714919381633561545539078456477032780762450371391335153144154691878224386226021240341610199270766675660831602793913268052539773176806855190162259065531147959507700775601447838277993348291531281141238864255941900982747025058163313332221093689861934977058765715766209264629906738603085557496927223774399842636740457811140641656359381549733355572519858820478811545346370177139011586184071406988743779251501250233568694682065791610895841221901858549525775996990843547565937106654101755787705410076908612171723734437290918917153599160318175938307243908676629866199320432906570127621662462126732384431735155926515250737551297391480840066953247787265825882824483421010122920133853256017878709043278161042188652676197581686286748989696414590607673237568379519437686334619884928423487663783167415673482016486829803423752869310851768962105433223334068749617492604871361302452754703713186344093155220070827390570174768434919190329561481951882795727849225579467420765079108968733369178275046129613285908372709076886322038310783647523324096488338201358370839677770440782949776685554973460822010073112577261682254649355818096203615943701433824183231493238994871593874050712053438407569087608774022578947819566100127690511574424854074623587342483153009703247130930868764779990444043898372249300546673784304063746385348020820301992929205968091793489381912808012512099351276584409455215475405458495795497807405583425162709886752146143778695908451044203937728408359232623473156902834945938220709174547653797529562453012572700422940637704499129888770627786039970984196039143679957460667468922595271867088924973836102810788187754406710059394072469411009917208882698823106326871634596228670560927693613659758771131188581805455584440826882061000978703057439863265357703808781845523419665859799587980032582210763716000432419848091401121343696590277503925882141517374803192838744902155518224947674703369745380001270682402405094347644072797974625036303036812718646556270182936492751146579239957523515939548813450345536007948755959706445713545358650180060434259327869792091572377212034946272749442485328826798107108318996999642094436660030758480481789976708767217811518396290413908394918322333978491879050238300793109634403238134811382999989313693846631153114068606348614394961466524723747162491786728292864742027391106041457060372125846074800789241343133605952266481447135885241970344742052788948946966635113237959785045032384045119402249481509115233933562744795236199209499807647709921082408987752897942950253573451115967129034372161742960116560581173959914518413646655463251032008034829440495626251381465205776439403866273269673894040982196502899480021251373929777265566052982011506402100337496413209332413080399373745446500343836112444749276746862184328285011502047667664006067618727576122619959760318115243462377309908140314842867441307212790729215164740088805763575716712667153744902782452469996477534203128851726514772140655494961404925753687945578594728519609352796176450652244309614690524298802869473571568958411582881656323764511241807798224326311287155807279562044990210409810577485544822475714315868965303765328873277970946969864642683662706655403778291118016360635907510511071070434779778264677257290985079556873149787126805531171661624728040253556598020170866307368918280946004272322268185050724980599660068296853665442794964069659519828763665153080916887165967689481260126771985461187392697493752415106759828490660879878560331312652980260518636912839525151658265212112575407093733996649135415487709716305209234366752412663920977089409685350974074777198499335840528689682752177695102760474700133917543300919945979296426839756484211521232203841272493513858668331527071966345340085153962281654230515984694022038771768751355115934243795126468979877090646956686676025390539075913978536019605809233782477852966332358548303788676374283972479518886325540424855526773290611781759502067109027317639841424288358389326510228371517054205813106140744078162117567207466944902940507460189646238304133309932430813504007604261449575207167527687302208667125634062486670617059004915368318891561632694176158761657227245026909560442210292932647054154079809853872962161781554638498508865625017144982755163221363323300501068084569819400400829688065515818158917750594463526959851791114508432716471319073581837850233003171807795607298589273852089958875077512092747366317868670618951781971236729490958658926547144454328561945852190989882496170960934634003612063597327334251097836759161735349558414482557084854633024804863436468499069398363367645681579317455625739022804809158022726056137262983168352716164789555730700138023737794749143705315711081437617785519631294059170594375337632939234671857145458543794605431394259567523881713566577838453006901070945397208022582009491017573591457541707666280780997337394594179231030077246934753493586065055033033165025717793256415450350242608247060572130998162604981238139455670526161754565317333124857607916324518761152772728887520801839647636113298845493268450708636866919195890185623691060989202425379065122940667355947613696709595135289676748082697610050486293895658233069336379286990112227041100353171109239867537494332145864797320399100634825699956450591799055647328373181342971355048829321799488309872039291105085565592259275434622073383756094587399432670848609884627315051295565419933445765520886027058673236218402847885887292945444782837972110367535636166777242114761886817721910744743911081354545951648958021680012643051456542607854043182586064965638323201467501690978300794946731879745790037944291977794523089833174308980411817750205424034826821035257991655313291719054409105295839375680268838717558672494189760366383581605680293647150231027494419435960115790150199652550449376500138403805574673083641745004969827051484693465241250881273963680132712415829396453428817758179830093450622479243477012867358557295870779095073729181548504617224538983413111821980590135995281486496527171388718449369397555614197090585041646713823903394179805586952919160486564301864877335641673502301206443917165461431962987037368324283046023402477935465626133731260391737730491333262136044808765381233712207322721585128884619956316148572292063117427633580154707248706891344131343316761896992549481950651979828706780200128933432675727957680439357712236082567498217752541695586781074024681623648401433203648351726690213609067805673848486605181563430019174608068153040950096641610517309113926002264539019322642785294602938048624308077226442146174682311854094245374845763563019896567668912965715276169522057572803422952679499742512298233895480339239041622224152879541420842703800538050582065722600311104532700685038664666474116224029261813617764912992018722248294005425777239652336023558209135668062111659406301154136584597880293127216442738580592525456851341067433998881449585830852179430926762754982485424491914926315834125165210386870501634153057437682668002005126580387411832343778307586114068782854251170024751225556534872317464989687404364456810010961539352783782988714987540815387409804243282852200054944279938252102952454864568725120720011614997344101350675547693006382341077529197903466356136617729801034932955958941105740621882401400220325616219774447675703996484778054069633333161116122626262506652429129865626901585177212900063202105524146281341038618864482581265582952781926067357200795729637939872046810287966992617121768775390180548613724081614155801935461326640658277115240997563224437744197491359690573855278021575056620909709818957363364087477717039394808630937849566435017790518545129432334017693173542898385798685400982274318889105524506866751730524485671973798761293256296606280131937237243107076833495589501671578574810839989244961373761536570558359305414638638474126933158746599290697290983311013094817428097675672207881386956450859790443105466474758796257222091279531922043981769819058446150633077747423038328919675016538741487046912601724778042380732839793349808361477938914773959371758803882399651469667966540964342433047959674600458818762864070413218791897092084209485321707724654389878081126633402888672255078157617440093554313821775131090219310445989473656390073085136721567698089118427253118091012203069653433102986505484275445302562220408564173578003309811270636792349580947915656288209821943011824384578694580141843411005201274140078454959540319197150396136541726872302528265468298258262407273630791104602569897286446088724050055026544479330408144478777828453806084843902101417203546085658948930059063754633582927311034259115155091095039782905309481818518621958421894704522068440401246024641350579486249151811443206030071188343947580472966031236608476049819108890796800445622837883789904970340626435937062605182399345527500580107800265500405679247712608990217450341128375304876040449014888799948546989666014639764301657412700225265596148009417830118672159452119562402749472904895999841521087262062180746090345240041108397596043180972387471991375396467514843864400793503132921275839155316898564567867782637235186519120261776051608894803615055794895534932637920561068146596204870513930960761214661650642601280949583051590377341638491080629385361882524986310445627805897749465213013860907030554166359704306845867561417540080879373878206253956030731785404831127997430989649783817668136903669906687282990946701554907086890469785074863433767524208000431363280750500936453985731860258635504009085115842252041308503125606110312631154007571214004043252043132233146285310939468904186423514275401053539339120077790771873692811767031957610482306007748167552907634979317415614166248629188302048662487102750090958614368323149679415141297051889630350718710816076193532705313186752786852882509154207100234568293216211775499936108449075677336027400229792626027360893561199562210780318875496569488097160232183237236656166680058018529818777002383577891405612401221401278819351492442345514542868807264154093692569719789344010108564160004166109397781957914073331376555973050155195628758448917923639374224849511176268451166676272680628811420529719885441717040014668258141315504872303570260445681058393254557548328608654720539504699290667081759506951987707727287011177702896683280158925963237146210799501544711507729926986903146374469093107203590563684736024320634437404923322123068573582369688732365443574458750749213579588932917912174666531863004879153201956135020425645721348442583873537412918991275154243153044427435592615792445782901355772298697228841985546968011854048148416844290838572758341838834786548625551345848465247071496243003086913315457160801858166873133837172730883919847779187048053010834819734270122426199482465884648585125656114932468267127119115299967559475699605095135170499727410687588569477978507779699106520753511476369443340600751240471352338469205090080056742049363786850137131431664300383372803473609355104798771831239221180697764424601519768702894239518783284753970381769540284370443502644344761276169233392347243464623079311286845208976449349369701343509681585695662691864948194433404936406733567678823459898115082080374132161971489742436323091870105601535833617506192480718423475983006759547321767254943934265741669302481394112213984272250286044409957774597752978654286594555411537213336134271247315501821581974543195278055489839548478196199858887992895888716979002923932019292381390041006190793788959026821353634352475108232253703022690482431330668190933973852472772690181219115636309347659962857137441824982811357855301491875360931171385589981310886945368288102318721302062305690730881143916718141775024795481983309536785070602252219485888321425520815169404437023104026812731039731685683214907319829164815620441046412839998898639352429974789280822988326386942547436566054045707661449543779571830254147426670433229843137622229359440510772520039400353220508948265454320980845791387473584639254172774314490517135475091108199697751686629079744729601367355596631921121713986888881630689407615964307586673008280554090450373536985546439545585454574000701135195874682904294190869349494750568307911725968898049308250880616515887092654359128101600032352832948336748061793695525892760883346883416197423760213752362207189601660899841990076272879968971403948650785597226190240638626841951321718972300032038433862363474852671096208082731695622909632018542223857875867917390313794322394429751155638273856128594849111369895692577976645940286677515877002167973307690697487907096304756933695684633436011228218870200774504974933739598929882526266471412252416970007399061061626321267232636064957365257606960612497151811189730954803688070817622004499986297518971301545981076030343431127846100451977530288840247666862889202517669576930624236131917892146347616467626220733268665838873084108641680258038413768130288195971450897608370334611559405527274930958065522330141991221014376431070514464380182007699406827459643950720589906474169299328195902216019170646590148942271648474038129733502747520872158791476564915728942011283058681443582366648322539858277091897817911400181660381713337112482489123746649375889213404329158848587294710225449780945032935537425321114798469440642064369408075806192563193818408791203651942516638238498473773037352218062927286088982804407698621835831833480841215690453186647899637516256052665333209787885091104538903979825119446151788919875443068525111118967992154800667271239245578733454610683545868344945222586465887998810180990769408706990921498312166039302097632697239663555507315910868669042684799278863264388377064066609249367469595502926350057154277638407262564299800066170471435588997793216090998125461043933958763747488285514947342296142105848021957205087724440087448290058779756648202702206029236544081568589116131448371706409845947189303079258747102741916768877450899534035173851124547627411626471297891929532837959165124178260057048022156659825752206827824959204153722464564951996111581104513417480367594438421427960549194504632873824808330581317431553936657814555798536043872379512254853654017099930813527374537336285333449235099064190737978382021694409832582196655698540543247314943699974939605984765366057485585013133501247882675130679068114419758770486576237072643267415808557570258877975957206762626084758322033296455805903742567391176794360458701038072171273628831110552571916446055940583299688818969080613187938647074461215600594475717580453887737489943604586544573321390329032083239754250287817515431515985518120579204900578841627335051614515147283951641032368640412160571690568282608498910635821913991259992719074778622139544968246362708797968377167735426791770393762250233616943433836250593098597197219749257507895143890159289483867021306637634838927219261220558525447872978228023180356103044350062101837973225030138017268865178893129860559624538183482457859576002662560538122794671836466847559083621594765446101526333952875984387346152245071660289855284595363046655671858326399423784465874980284842167935581120111186651461476492320622737386813957260008517404330277740944112203996501634001495354199543323069838119983220496889277311436785279046134523302518416684936801411154798369850681923689845570339313362284507298565387467797155177798778970772274760574814197824919034506858983415654027563559140191580026161857965064624957880035456439733186601713602222590136687941971468496018601347875997356698034731102982318137117650534396555387171837883981690715513399679872472559259968154918218218812507455665933384968705182017210662227015730976024979811541413478320832480222196710219374638830566864882862728697199619742037385944024293730253117417669740167464664648216130235083176864263346928429882444805263831232631725239524189139614258016916401997688627196445848929043946117466322097361095008480920995767912152579563913955161318605577726399171238920446393691390886860966362004369868612323029700530965348830952162421803687061890903975281540867017523906835218200963104370744614554846913758509555624915715022185580783252092734894429530605925434305309099393416631739854104795015740731778462689699526808796937301737322172169350802437594458388061018724233204023006278837432623591874302068773932418524373177039811540612750465498965069360669275814555879243212666098592112215748923858248705588341043048065998934976245780221509704703423408244516873521317338963627226386225998010698122101910438816968747583747542070966866782502686039041208242579162054624296909213984377787940716894630658187860244245688876091464783001215654387838828630819089534214300397033698374275037987935286565647941405791773769882602319445397491414591312651918282363167034529160224175930604002203141163400941533380596431988393795767723181153846998024671983981148487158964744755422376988247869316885504034763981159291953655949940510659033317825415273395608375020308907322163384185719927155616222880553388673935891260915564559950206936421741801177560791536115836685274819079141390450851900609186738463280924690647654716403403378722424965669666817952051543240252546594804505767351812911881227273214086917604041531988029797851332803472234916661032017418452175753240168972111245693951375917426605798684363115254603756631148342047788271110199766275055504611835929266965058593675306998844584555897804654408122191941562420159051126267046810564227247054917324236154192017612613386733896218608839713764543265902381129782117776684444525419179093944514829008065590562031970497583379881900464450975224181383111455315336135004375160141850716279391744396292127915973456573213453004369569785397639392788833121440676473365746922420254858553679616720783247154899582369012652302493100577798740388746504553915942672482987891279946501265516299749921602633154855400253932668932317373931832634471167550439936823665094863928174650202211467406802858148491955864324419201796061251318053080916271549060824291655191127949578183210280263443120571753753474466383718845081465475095772436373363044863448698029228197131358624866869844590922032113438367046567473041736287695387241853208639256130578151518568882122333039581577265887049205450616682756350026741069224557721044445304786654226085191944854530678372358478212353855524074205731479004117817370253195821082586963889788187222448586049432273328237889411348449290870346561059078257289403627562598395585741545610149171887532813581182730748506562329228218594528422961324674165810064739228263737375749609434423787886608594352310408476003661615715922422396120647069243739603390894147889288696054983278690139807782649336224952515705689865151688725830070658713378975228573013917691305790010948432584060944241211928290159219424786946097075131342022738191327685042962240772392388532456048895939825224124372106048053723844779768284768245747877983406461835223713655585227049285444032439476364049739709466164688732838763981838780922631603973542063319891286286051865644910080404832726234294289406012280064110496969115988716075552253948615737441758005967774915817745579475971422126126440122281910054549906948969998525744180669353867417022821064192878495986023466869341427739499801857766613207618582894172587551940999450773375349949928973961060314324409941013011756632990691708726629988511616962434016700636575370956838066503726691744922857282538891593943077285391519519569519905905335240340059776288935928942602654046041226266123741961377142952650455438304330282369918191183160715016250568464776205587071371578732595223888286472532681072268797233623632272050086677777302658384351211552906548170265568857100813255043716236398255971066326139875511941384321903910317917814241346628017217703678356148196848086635058403250049868107784122309730295242799967172073502036877344028293866301156957318278473535301363507032230758259631708183554338410837804714334936971471372298982463749150643532659364499557209342874097865731236182470094548340783679621264213044558731740469100369642326038937596349154177933784989158317234124108092134033550045198406275502824500959555491799978546499461306266064922272877057058150275534730457919840120714449008591337786974658894633311514972313214380801192290765796079877141227973192959599046912477782371492031645870142688881119702900972671171568712873862336423719894199073659606602285576626894388368474833176403394607523749429888581264718921737626680039896079719985312253329432937372420241100893794731051761186032814781889769959161172489203018586610180390784315928590557651490860960160200153257846111866716922516894212071042008499764451999549486534771335860907497883649925591561333302759143153011162751112550808128510502722668623651305973281585413730218199596977755984339302422336588055350130414449664157874841404935883390541040608111132638855650957583743324086251173330402467199947355922933209058646349357587285492070529204692338103008280544367177919348513423194184006679759150370179057484140477927090578982575332540098135042197286727846164758439192085327115245573936626331406594003182305742823727185724113619543425622693462867600702546997806963856236845524791993234424796696411475889488887113689295789461271589880659097688936980738960557098145370677134048547260892455330716553027450905392550493476324940779168669233261528989651750554394355703555701197709623953223465951504724417618537011085335998030384526201967447406351079899064230203547791094378721618943685045176101755199620393415525639610547989211707197863765236856785623928845954086222258887676040123548657318060051858463911611883254015100225360203713263927853577694566418051066210368740632590727828693247577238340432386109204183827783314020078708552011492536338960699341409448644319997557619214414368945083815983038504621811538667152778449904622248634173552253972733497673043886261149563181534677683018726937294546752917443920060724501505830775268970082317117853124750318619575561552918225116809103744884242928895106967473262125066309801360429409852298264340262879267815204355981690825690582365841702833966870402898010384389504599475960629110973988362365695568960696737644117647854332722504966428675407900594218626499893513520604846844410469141891975310016469211517969733773019475776966417316239886554898529614366186386325449348383007203467717684981293650669957002349751351721889636774126643209248891713000240924276283103859157726521710705704046233994536947006237215575387015288947466427587878729619355939645533026864465795163275366993968508220252047983222076690802274830724892600423843803007531147112515797890887422985650549699845685792870534207405348213600758635094680445536563746006018279684671615890141098380832282423203913723901309018715389978340145585501323103939120237869286565513935427549769289296029582997695157445565154292242134664620904502829024810201660444697977492560798518029473829171106664003841069019139268886273494388555556285233685892715634433679695635939322949025764715409005254112196521250856783249610278096828389950079629342654451829259387026651484635526434276110520672594023821467146626968513789721088199049137182917082124617988429524953549235834164655244741090140476742176474285738470325147474743527262230585961591466959675552938693990863688588231071836272270853450967457895625528911353113803723743375369561404822470673938799209574548575005818594309985442265998226419666268835509952914529072522940014142388894611522236768944380055077933771377141252503746583522603079466755553763512225241839702874405432235656714607854244232418370431356633978048651569431492594895030104792451782274299628681386296464805895436070244199465372426880065272667503713802087893018896342440844958170419400068562626301412418605133160156369808880194275385389236420704998571843845220711356339344411703338114423350760442265284985123426887240656943831785087444892190303654771655309008006905616173397664868753953114886480844931057757850921916723261951444986933256251932929306066814838023269234233788332306405883997952747633736485305756404153550440546869546770701313986361613017197755049242043732888027539774077486011830410084108193869990266623157918536823196572867227541906912837155532442879858016592036510948218852974394681191966634584609628958594466363797056278660139069670832373161987566502045108237671321208731827547277760788544187854599785309979312374822005972952793309848458216986957965724903967177873942379918763028707556625197099702659636184788488933979081434969370781125981510919783170703591874077524896763069754774957434405376695833147006638975549359961246437116233216867580734805426542033096403922700641267154452880288158358604497137709441874227429832528945417643885032642322622398614798293008875783904192750128909952441587871326950375500622522584173903196545488026600512841193205652217814518761051100017899432643719449862110816594857146681502168794120476230892340354871218351551004375696227812881952682973786363537921919396285487985418306724026889152846203500476955751375200976962349303223735692736085217348800193411507824541997926208673052836047372739045014667031175405533614021062632592468322105491871568605652239066812139152449362681627908344878379317039968065170813884742268653167900264209665897829117268255434264575819265602301757011698420201462835754404087884954920484806199427793167256149877162981448111578974586002071181548225289646362033227690701211780893526046852848605601374639754889401717969061416645228686740486380978673443270877725271249283358142956663702327890464959968724509021148456961980052307289023444580465679160966703861288014124379377019428663689004364264520248573069750005464345310702305480210495451517670674108795397144120464014510220655142471219985740598979740802785064565998145674505799647429448429776669903220986945952158612486234692709549706343060290420344147603150978174931356174879268341504818357553859326811577492482219996765373849607976649510695274425527361356108552956073632717280772501342797844139225630778306008464549805445487418650240267323624401748996367357619109939048667492621189477722612184612994528160895657229691151264391330151267526767986694135411098554346019516406587741691196672742716061474517474965839764717869294409308995717020433926247705695638876153292240301389305902702232382903948249439405854462823671039920231103448689746861538227247669072755907341975615566324305713914792023608820568050055240177366018747234451653596706831881031822736891027528834934866237870154360033258045885843216156954377630019918491864631260738875544015835352251019770224097403439880771202965428502242152263986856913342928389610975050239592222207471141732327655430702598056079428138494966358259739537714545153941033139729159453210357108923710121775400815155840983905416223035641724025046927134461801357654065835276707307581564382641090501952420805064980732939319142686144934124024462488956465433262709316596820449216169083511044737494431519755058335367679817868855731400876424779331715514385745254158694027373506296414617295672704826774059002045896123333948085723688806704535201080338409986248316757628332877555950458567484638487938568628740866932996100063286889870021175199921980149205066315365262143029008729901253723870863583783020438989227798184563811722013288413825616664386723023456304611574327656228828993017597252345575697317637442122991859356586543286672382294412219859115882110983271824976697377221786794996196823288704137007624981020869273691883366495688795503287159741031121184087352766462347296337407521088215685891355155294533729142885447804012614840927844476681715343870591618382518213111423603303297291122059315325709376029161315897296151710005085235256800368548085888099841076756537903182702376834531404525554933372690610571794111534641339170977289501690914064727232382924979459532753780093874478504822206252279778320936234384399980998320796038772704924802943999801289426668873311853453859137217938479652963433366483794995128659286795991513287641839475705490678451094266234682696180737516475784613600605524756004096068510009092359786625847888233257833227837758476196156738397896950258740369326655352884709844166340301813411168132859386356351922611449375916537559629163840488408589389924735181192105272290122540243987945511900123515897513290937577216070390867368483383952498814094919046988346457435068272519243551406232133543724286749942953129979830093015447265568882222137007186622055795820929276053864128235245777292404611186956686761945161514826522419331755694319305235240540843901483583828557595771348233397969458420350783176599608375388787089566009445593807076368002810048982854252716306212693639704693868150332389437917816838193174109759583862681654966236003801974824932016038744399795307688618491517161259414379870105430715609688014947503117430883679522406488274364486885092697568892686939763645157955577568705051677214787009009429941757321395198620103213575995557319143470831071717244656572310867631136105648564428913703653270596871854361208013302891635540650593201299191664713310256590489823822851811502195859893678172950901315072822566693005678524589741856589422449173879902812407953804255648412547272107217627660696475015926839434752260758221905077714063578366992429073024906070807832917795450249732522433696447451445351076620045402142969745324263328281934794988318817477101494270806520036192865848189916637754643801279030883264762000884104724861689602707035238823289606917024900835315442947529250643570348578416748863252011655213079942982280649666975166641364046385205305193861063946334857291432987012685722231875999634995555481774218606300250936185108907724773913771726088796856782821410551160334381283475087365320922683645362168693801489350542487340880025421063350856490810537293765220540671337175293444575300712001932113809265420895122532507643524204990900872268844573097560837744330000844664561486902256973360668304110249912279407030843496917876454112583357800274206917666457110021156144712651647084466206045757536554878630873418274244186464842867636490858984894374661827806575120706695202524332752842798436017945805154594115386845784580616994947834295402325618536678202380131212109128686370739957785627209646524449137303427737825442700755395151488519444078651800423184936937060490158991481083180457365702246728431376694711731427943423786285120142064858268410268816189753678046441487956234252778698814650221365474239031723635611146590373718068809821780646873877057146447157925156651320625080404444061416541812561724475995694584570522925308493400122941727387483189201258445476026437707722181360179401684078524125964106913541469957411343475306335513281393211065268184713871380203835482157302559249487234211277065227405693689824295781056597281618498189222271405659209702667686732825875867533939373864701717053322172992630631490185958703938114475163654049953432405536071474696028186718763380580572270553805073560185070690147443919472116333012865695110557884915818917674729962722415172097703699529923957256481083784227535385104518721602418538295065352937878496594567970876219111013099582099192992769389761153376984273448971548672706069744810599038454299016654887128633956759180543694081830124187975316898601414612052673150200987956177155833411508267555713660763728064452242752727887268919930770776163706581398897596081354927921082178311368566971429809214432400947079544796568700694499727647913265934499434239667320339400462054894836372964413363771579251594811539594846177981146028316552939530821654665088292128525476561877999048211407927791460438245865209681723686387250632980259674070335469035040794672460597550407394270382627489724131554663644109945070193647882010052259103528894086049803040759980404145278975793799771984055738135291767813705879525724598117163099875768942595259092224367663352459513837127692921703174066256268885399181286534988923149383366728198176678458087028366784514370954027040038292868009052527485451986851362130232043522751683867321585399688378657942048665205471461796333091758021349983988910819106943121512461503338278499677888491441691686098393517082322666841546781317303726168754112928608783773099982968032226759377958869211817678602182379668107337190732851766494848631638286310082392018990627818042227357578739478523297517697491344099714945119079592839706837961085296420561473376060088143157773948022658458953278110036533795298072386394945866169826603142941800525340484463162915327082422919528342282920400953175984980688177693195354525015814750629976482822734433084819392827119826426695052006528108717295770485746467029224246295378631041394738936994550296480209091842867663594185099239580253531333448449028152901855644964319683847758723370792690166871811284663795302649555724368509091089198297154363827471480455661207846670283944983185117196807937988321269735901220299621644076708321675893118963009970415233408511980641166485153321239722696858168052590564984714478315711444843094912877067464731856568506415094123599609365752875607370332702965125344372375513813375631609053611447995815228319584961267788439203740038525077597240525662694515353116170485274139159201397764677274152940594379410891659282275906945512033792658452536462076799180696863593024902354963137463571917900809491241595510200308261348623577981394335313779316055700401641485477951762771768276686984780970808415011132727802235412101429924494380005991358201712237240117910487835019749196733097946717405680121490433093929301490172895386028135118040884927496203176265806555331412952915763168874244523950191830048718600840102415757719645882347662891291448647126962630126157047606866019055411123152554770180212219451978441518278108068282135389547576971940232966175038018638033976582607014203918058916340172599069578781023475338291004957342076218271704072235942106966571923844364068832102945212972886154618690308579793997162957134843106457217096149294828138808631153868125643664808495600317719343966624660594134510510977273904466997838679299986596463953524889392668505781648477685338224172114267428791738533343424280385609879867082885351106641828119730001250946587071380414527050690910940996914924984831626095943189802095441676516430769863332690914378256317675854858005808548536537635627798261136891929343341807671822797247272084379086866660781733249058692693370553818093942168437160930236014606880140594481530805250894292616594395821725545072953664908655162535599381631854259068268949106280285650557334360352290279017540927746913585811718717684627674711470659209880110329052059819412411509810580010879657453867998746619737908461643562617640845736516546261391531732682381034273781107624360087617031651985124850611952577098592739592136478313734361033430788910809393590638052146871713935180329755667070041649309785956621151857977731101993980093562015861643641173016765655140265844938555057311654381354489737236954122817404249688661161543285895518204612708992830509101271244063268869585029313368839518779069933937637323800196174593726630890675642656388958928126475003614831756385218563758927338966051127094205266261789491767287566343237567766859412017778117412753822092198550821826479663252882263072123433943772469769318464180620812535371088879817009043269628395737146543775462710164463868024200152784129956162333402567123102720883767392497071008883406173883917888553304866391546887381366546097531719046464298423742415456445432771748959016888793872041182185825316594366539812515036838735858175205986348800163734371306549357084660841427308388053143564592983709737199196100429606094157545553407360900256595299484533138130908061774807456358447374720903585344486025460413924379673379670325871171697887629540183691233864171204536124072633784073675113799170904656721060100299673507777207848586243682213151300327983784523642277159481761752275193225254699623837456633042228647342842753911534193598476802357764179598228681329951837166521165738707498551008402271835245844359098251791233393988563817715650822651531686558624747159258394882933216959466800972497313207690313723190080331562006949412856902142920846254847015831902729854083318369478169401110922709014200160357371123692224987953093832063432589747543521427524531774105968621174231921097633203068278832533423681553360627252052170556032451825842738775920411935561656629941436572999059414000003429940741895260924241767713711512395542347939430256330901854765209414355155150950385776262546689277137547021043388211968824229787671748417534864771409210681500044404053517414676680838786468844757388352316080428794197426723703673958846723654420915412143966187837737106051412208151736388271056851517124741994585432580500294128194063130939399756359090117810525524436016766338581856931619444891939614875047495056609195407570922495384452712794986666473393762561817302566901180934398337536695616428584979707598000789451075394753744713953396295547331655975254557312174523458949582665250494698242609516043697178420258762126319675469443226822963218148080192885562873677124943486531923152292669955630820043710041492310894116126795396523009353840006209597666383946982075929026765013225113016088032348447568401250885238186064230590943491430688695702583240435795326226317261447703193574102869114835481891060893218294692842298482528345165181055393322639677086615570784052839622330998621011790021538433614118506084000694382353532917389549747155359818711339329601695893082161763616760096189320375777383451363749079450691488063906764561439408274563853762046094048311961930248582624900461838122130149249831874543016748817837503759803233792782190293772892278687084721806803175744914826071537157113132123367106083081534247621678535043045462447197148070518313756063157093481122021125070945570963498207812615299311291304377142497233018769259872012479004745644684445164485077159237508418007181024963645953466496089869507768391055087733471964571665904944634618391357563629215147317697154787137901502697555538264953041472822190798578759012672867973140236432827009088707076301194065934428122092489260869151695360322342966417811234155018086551677641305121814999958946938352644230966850030056546431062447518315234113467977155369958484059818478533901083084474091177192530443960771573883606159970216743511723314905289264799424247155243915188477356726754883283943043750474874163805896883673177018949293444574656216839149352408315601274037993140794919648712368773519170173659658107829306916460040652191139445866849075915230991793265848268542898740052693636605132471891260411505520104503725253287671776934551996944231386506548187591138778872201512266324392832094973979511704042906355024009877663769525395164838115268394507198400989309676185000936064785074766905261295688146796073863656790704900911710191070069781499856234929036986637335134035160596010533086452078720394070017547232312683159080892930190717699029837552205830275869229185395407722773657966579337287774825570069725565813384734478651728946962395766656827382248212483949632354529326929495275889222057004445587678882587617693078079478259047622776241587476140905766140221214971301123143442657442464064042835257172384869097586627684089346508917265210121381041588501264276098328555693680812521025838579018075104677917516956328823998104093776067306056794532226757881199584526147423441214190041623465975372112769043497752815802008252210461448716877757965104919449373749873899481045570871865983956312128181960455518757650212021741895379928950957221102791740764280747030723332794590455591302705187330221430810967410794219471864924910185837074373168680284947272967245693764252932994561847223171809800638407884233202696545893184719733363565397707957098446982763772200700571545715599794675933306155702436417395397999719955183770577329807124087439676017708447873564200487250312947254070123989278631294884934082717346501981216020480989203531691348865185615789249308745352323114554868455803263518406735905415436232119399180520752702449585314976408489792233109718429230411984962317003680212283961827874340192803379150521629366579147090533449480387524273480411886442567171018163583122899366687471182535479374403013786513301407109991726768568321267702338120812110462686186085099426960363736116119558025750246641261990778169751685160674552581670798020552459795005447491153171525113025542633453483355911706532637240623391369127085497589998089813078818975219408474294657176714558966945782540115834520298542304218495597368614401191919296844905173500965585500070583787926655708636087324846225137183630277831855075886201911743516891715573698223137831401179237280407289628759935924482383549666690607516755320966258313979092996231427622002637349646929128659706186346241828753098743854234080930204025287479907684406643666628839221033532135455564990397451452818879219230716093530744028917097121665233478442086785471619977232994564863858373041142299113108274279877254973180638544800171054449712797479313135039578797389782276098114810119062954781760784241322787677843266306697703946077618827269694886666239882224308701467949516934220896143652359475485150503593265732719846376427245095576208886266555594864240835939856988215676522668380827718360258528274597368733267029398184853494329147383441123650980499622998859092816524497613701359307174464814897922585822129110208730846324671854643886441346615102927840564608681514523981941338082125903906497138787108987135336806480382382274289883235592937105319158524950725147903168191327525024235030561814391608460403673643015480512138095744779159165442950027049344701990982841629802388424879646173519532926265513881594946672316132761649554116839808583214506438745363235819911876334346565520475594392866255240100535321819177357420742963369842373691644617421214809691932463303725356709663243555061308361818796146737828885186803954892582305172131758043229887845900684443405074056010019430873566844314643645738793070178000190609931588282886269811009740766006098922299305196727693244028957500452462093395683134101909467035513370885749375161379950918174887414150256523357765962858923910109070641558478153610898379723496547244318124914111960332830648329312201389105933163903599256943315144267939692273012832139859043924359123396787484182223945762915214329457336110815208776888961267557024538650530938280700728543228979827342178662137304140589872209325019530401607682829020075974387509507226437291456344474909937190366283646424357121824745823666478562199186383741120510568876056652192476583014813597230198368349555537011668703825265173947063178538709344076212317756957036576064701771526564820031071888457303568105726982987946475830300114411669572454042981580892727723223671759717327676297345727238258923251832851903377266644527335938904480184442855691000012063747764027730875442411056282734228297839690360953819359465442015668667059586810167018923089350698693501187057252313364036471170032541998147164321795422572525619258030840111058791391446209189138339272434586903682177885393684852482096270844530953855792663200951565189713789109463312984717601717955971341074054261722678172384412164075148163725811996722419347195034056691928088526815502940008988065134925854101331033017391708050757560827006750429410747373527644642962312408986218182253726431160266881257577714007207089923798348677259434748056875528788559203145410510908677954517251377466675280797537791887684350811299916853254450560326918599518013802939577440669807748039727045737536805625150214214773103679897075082441897589346489218216225691023949684254243874843841502974039820703014058344995816904161420347702630675800932105726805322698064564166601514243740842137194588209713753739163572284814563265373991255180433219906843099780615756801463635311817853726950831377638493996921133310610829970688222509429442626140365953426843274966568953281059213454497640028087104756840800551380165558185399964782393012152232181573439471175318504548164999086277309453238414965780912671439613765779486188309736810706276661702520425996039534671472208609284512879184960912427023486333336035855709887508177522844684403220135309407698755649885027083165503653185413834633371187862042687756915457988122349524820201801712203812524479978394564012867038651026916828347681799688894111321488293264162940430867033682881292299469130104927894396962962576841201829106537768690662155155359507169816270099221589458373917115543939263835668644263090649544647692598271821156907132015927778228593138310195334671586780397828225894789687979475274098559726390673260754394534051836452036962139260600186842971602885203652759024568464971355406215992547312505842704734094145552615215245582429160240196009266272505510681227164278671965151801467586040495238090443255587863831892217379344506990106840622332831259930959066945382786251210609732308464830845098287824493674926391920941506698372362943406588530439634626028749846026312493579916406699898815023058432169495158848222425526512710093945056887988310393236589742575633566101038999527385037329619668129209694396173713491736354335023660979886223373011716940403048534037961021865684394637550018394603898287501799114581795118937940336597902271973922446583001390704159834729180831998732424358174124337668007446921599939791716029286500445661973911971057487576206332151912981618044368393060219100670301065834736075124204093663450088054455606842464428035116812796699375183416224854101828648465912330743972228225401249079641754107215563661113753263520887689577560953452054669385352792238162476585668187567163836797658688897760416735959509003023732306158564765661303473107399195769183057636247831519145332003253405162473185525244274045921660678058551219071867744562968490074694634005760802297684142635546004220202289793585613911821005404523512637701583482951343560085903104051713399275091220122199535977601541872524888329790264050871992540940008821134828507639446529254037065670332640347165451613024043376876408251742494807766547129913805685913326098672071558797457464713462340326074001632469979139989442822126107389667956669974855159660211779386475232764053665169641689189227117372005140473324583436437521683502019244328625484527137695658905330039887978039395261449908515084666412372485388442916280363945362222000934081615250515460375104374797177365679172591472509541255791906899370065605534220370082367375720216746822915021793130297017498021535671394395774515379731384331273299756285634329466163479280286497883409939838755613724875180789654060186670936436324213923195599826225970681230820308422137003574483002409094347338448678647441906555133634214267302150124874717058160447933839196278746276997493835431585481343298454347062445774476710116982503770602355036076552729316861244145268534549737418556490564939303792824644554262633559587921491778494139238174066811387422646551254656853267513961179756940093596060556671800809993525647824575812684322488832974174106652827057050959409444447970907666795804211616104777482219110828072571831960199970444525421907812070259985062228823581933557703879852696974964267958930477509089971519047210453235357839651806521892470176840874587735385946149141334516292233407030642167031350761900675607008278140331745361279956804585487878090524271554296811801232595943094828584251261200288416059219078139956966411809210868564812932120622679136189084499868273456481773063917334267150033569097339695075041024612381682946634273380724219780379934480537436697872759755052542918258045974311618453517454681785411117031478728447401359474058834682397542224495861103720070804074661834715653284349797040269544986596623124788995453321502206898835877575870704449406740996900556598060946542889985890657262323302836875242595446307040354678797836450370345398548824312501135431639047319109145524158930479975570037777003313772883579320399693453837847789645485613029940779951317893523547578399932396180123685230400399875653155471639590156117936428616587188808883786210793611386613104905932346578511574179517586269403039249185910023433400293354309441315094371823002128804850498417803506071048040473446619185919198765671502056912398838787440505747514788662234713335484941817877718000446662194264065213927552538405914453194261793241515064615501352910256905527437118581811327187111254745992187426961580508303755567616159610162543331687785733915117166199646562422724690342114375306911518765178936633307085404604605567479875171661733128713225727221434713648216517401136937915025852869500055049260479870059759458735238141038195422754361365898094726615263957670592664555079102384579007648765546909553745333472976609105405047008073812837688530322978632563227087576884802605157045452091905702496488674064071903246634483622169137277264378441003355680362893947112737593513091434200784306898789565620129795974242247053292583518441067074012605013206821057654271086513657390365632517471833937913679017785782463798986115603227207214412329832434580135725336450816126168367361537783413266018263846555591832542084934113256445969013223041233260314654840150061200954243320095028381443331126955597030254657926159231448974180149601992425146284411117404658342590554670608581411157765866289293973141424431080266142362120039792707061220283387887703056661124382643403472626584561149432042613871737959882840145372284102219442735492297345593786012835809374407366812989403743131908248893450135767588738617694468767776128431529210676784202559247186668845534547330006295867343266474830653507858938428764899662568965625396994525320554474550979581989233733329618175255932380245276484650058270591972523492355728915120864888843383099846782618302381885706874464553679181043126745400091225172147277014112442209366036884177272097305283587403358963743550344592434130520950926159550755352827989924184121426765182158295269620695332065580513179066878364330491448533893871351703553026045715023348201566156215047673697142333809737785730250099028959351223766176961790347332376050459447919424931606350238975393727061825882549351644999465022716836659436949511797934583998317149939045428928904284202242997700253550303887273127797802777307699777198165823864375612241095693112327150432452197275928305007033173520434818822556749103642922822876207262629844507162554234215242375897395172544954880081687376898983482411712762157108980123248244152302125405698306372493300914764284057103455185544925622793065999443947666928667484478342101903837034461397124727272480134269155016571131737265708147521322293863967801708763066700949799795593735620568313503276418470116414103580243648120798007866049240112582128366557174533030500435902575953412146488539786835382326411963500296723843234207764304965555550495695627076341116372838661581231036135056424692690875007189144186658766733081622937022958288088080611680591842357002167216591139772041240010965116762463470273449178467726694091708248769788367397495593261067633518140025472120260690459326133712378546315101224886023638946529007820068282000683415145446824602551040109218242599468579620154980762560346148303585588120064363795275896687310426067557054483281610344725097755968761114042451523015527509718589557761989955725092877284202954540398584749830016241663758900170606732587637862399048821336218102919371420012828353838272422261657273373108029541003244088932699607969779263347221072227120649226106457703310773646122087767601149150685031465166854816843809844974168184427473113124014526730157508654232368728894324674003610014775995581484828983223787521753936845051444090345765966812649770870873791470230434030609685238914805796709378002800237336295525260231848778875831295574536401961390165699482235043451398540284248781584349200433008197278650205510368031069578842214336163634442729308304170754930273725855897616833589877116943698615298636685709570080164689153765584383082804136254194804240384570475552884990270384605103403348640630636400189993264374793616857008349025271807573347640419114223154140346804274322160892019161551897479221253712586604366102744674610289972987796703693648767005457025982146733689183779448023373167812234965613881625852935668165090882168828744912375813115954749194334956634506611625724503227791515648846898073757120693541080969668128879143297541409186730458952159460239489529598022228792401505188345795597112443742447598697646138326064433170501519716230170895474222327615685530518987863327864055838058245599936440967888525942834625117992659038339390419458501601046440249597968961606166135307678891643697779926820151489096567014904426573590633298184512693535253408947605390558690122720048272252825623070363322853158798291074834190374898636190517162260987511759618145393818762968016244998195797838818955254745063724880480372027153807488058305911719855823034341177061932182324745747153121648904165111330266036285491345671731156122725023442177280909743622342407277653091936393153341421476341652197566233802596799587691010135622049099513521215750486692295123509489647797073954769351913862984953655746909920352860608962531920186329547950686334407587690964006977593813136950925593710832988913250704161798568176021503704501465236114831646402527557106325604188251140108170944439016566745038282534807821618531440812947774618275927832104600346027175427798275506851696619776930096496651851746874233277381726787114976155680683304489868615730523